Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 30 Января 2015 Это популярное сообщение. Поделиться Опубликовано 30 Января 2015 (изменено) Судя по регулярно происходящему в других темах - таки нужна.Вот здесь как раз можете спросить про "зачем создали эту тему ?" А также про ООП, про как заниматься моддингом и его устарелости неустарелости, кто как его себе представляет и т.д. В общем, для много слов "обо всем". Что в более специализированные темы не лезет, но поговорить давно хотелось и хочется. Но таки да, пп 2.0, 2.1 и даже 2.5 правил здесь вполне таки действуют. Изменено 30 Января 2015 пользователем Dennis_Chikin 5 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Азраэль 142 Опубликовано 27 Ноября 2014 Поделиться Опубликовано 27 Ноября 2014 В скриптах особо не силен. Именно в написании. Но чисто имхо.Использование SGM таймеров, более простое, да и разумнее наверно тоже. Пользовался, для реализации жажды, и прочих вещей. Отлично работают. Да и голод в чн ими реализован.Амк конечно хорош. Но там черт ногу сломит. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 2 Декабря 2014 Поделиться Опубликовано 2 Декабря 2014 (изменено) Ну... Жрет вызов функции. Факт. Жрет выборка из таблицы в зависимости от размера таблицы. 2 выбора из таблицы жрут больше, чем 1 выбор из таблицы, даже довольно большой, но меньше, чем вызов функции. Мораль: обратно ломать, чтоб все как было - ничего не будем. И, да, если нечто используется довольно часто, и есть форма записи, которая быстрее, чем другая - почему бы и не использовать более быструю ? Изменено 2 Декабря 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
RayTwitty 492 Опубликовано 2 Декабря 2014 Поделиться Опубликовано 2 Декабря 2014 И, да, если нечто используется довольно часто, и есть форма записи, которая быстрее, чем другая - почему бы и не использовать более быструюПотому что в лучшем случае, с одного вызова у тебя будет выигрыш 30 тысячных наносекунды, а править лишний раз файлы, ломая совместимость - мягко говоря на логично. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 2 Декабря 2014 Поделиться Опубликовано 2 Декабря 2014 (изменено) Ломая совместимость чего ? И мне казалось, что profile_timer() выдает результаты в микросекундах. Изменено 2 Декабря 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Desertir 202 Опубликовано 2 Декабря 2014 Поделиться Опубликовано 2 Декабря 2014 (изменено) @Dennis_Chikin, дели на 10000, но про тысячные наносекунды я не буду говорить. Совместимость - имеется ввиду существующие моды. На самом деле ничего не будет с пары глобальных переменных. Вообще про совместимость лучше не начинать, под одну гребенку все не причесать. Спор вроде ни о чем. Уже выяснили, что оптимизировать надо другие вещи. А рефакторингом пусть занимаются сами разрабы модов, в некоторых случаях нету однозначного ответа, что надо писать именно вот так, а не иначе. Кому-то вообще венгерка по вкусу... Изменено 2 Декабря 2014 пользователем Desertir ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
Zander_driver 10 333 Опубликовано 3 Января 2015 Поделиться Опубликовано 3 Января 2015 Читаю потихоньку ваши труды. Ну вот правда, где РЕАЛЬНО вы видели циклическое размусоливание system_ini() или math.random по 10000 раз за апдейт? Для неких практических нужд. А если видели, ну, вызовите доктора тому кто такое написал. Страдает же человек. По факту никто такой ерундой не занимается, я думаю. У меня вот спавнятся мои аномалии, замерял, жрут что-то около секунды на генерацию всей локации. Только секунда эта, в загрузке уровня находится. Ну сокращу я допустим эту генерацию с 1000мс до 600мс. кому-то от этого жарко или холодно станет? Нет.На самом деле даже огорчает, что столько времени и сил вы тратите на выигрывание каких то миллисекунд там где они не решают ничего совершенно. Дело ваше, но неужели ничего более полезного не нашлось? неужели там в солянке все коды так "идеально" организованы, что больше нечего оптимизировать кроме этого.Гораздо полезнее было бы наверно, прочесать коды и выкинуть циклы оттуда где они не требуются, вычистить простыни из 100500 if .. then странного содержания, и превратить их в нечто более благородное и лаконичное. Пользы будет в разы больше. Не говоря уж о том что на ясном, лаконичном и кратком коде, проще создавать что-то новое. Удобнее, знаете ли. 2 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Zander_driver 10 333 Опубликовано 3 Января 2015 Поделиться Опубликовано 3 Января 2015 А вообще таймеры не нужны. Нет Просто мало кто умеет их готовить. Полезным (и незаменимым!) может быть что угодно. 1 3 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Struck 61 Опубликовано 3 Января 2015 Поделиться Опубликовано 3 Января 2015 @Zander_driver, практика показывает, что все по своему вычищают простыни и всякий мусор, т.к. уже вычищенные скрипты крайне не понятны и требуют (порою немалого) времени для "разобраться", прежде чем что-то начать на них делать ("пиксельные" выдергивания оптимизированного кода разве что будут). Допустим два человека тут уже выложили свои скрипты, ты сам лично на них начал-бы разработку? Ссылка на комментарий
Zander_driver 10 333 Опубликовано 4 Января 2015 Поделиться Опубликовано 4 Января 2015 (изменено) О ком идет речь, если не секрет?) Если о том что лежит в этой теме - пардоньте, тут либо идет погоня за миллисекундами в процессах вроде загрузки уровня, либо то что мне совершенно не надобно, т.к. имеется свой аналог такой же или лучше.Я разработку веду давно, используя повсеместно для всяческих нужд скрипты Артоса. Ну и плюс Кираг, другие авторы по немножку, свои где мне чего-то не хватает. уже вычищенные скрипты крайне не понятны и требуют (порою немалого) времени для "разобраться", прежде чем что-то начать на них делать Это да, имеет место быть. но наверно эту проблему мог бы решить автор "чистки" - подробными комментариями что где и зачем. Артос вот завел себе привычку прикладывать к своим скриптам понятный любому ридми - и почему то проблем с использованием его работ у меня нет. Изменено 4 Января 2015 пользователем Zander_driver Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Murarius 10 533 Опубликовано 4 Января 2015 Поделиться Опубликовано 4 Января 2015 На мой дилетантский взгляд идея рефакторинга (или реинжиниринга, как угодно) в нашем конкретном случае очень даже полезна. Ибо, как говорил Денис, разбираться в чужом восьмисоткилобайтовом скрипте априори сложнее, чем в шестидесятикилобайтовом. Это даже не то чтобы сложнее, а просто зануднее. такие переделки либо для каких-нибудь любителей красивого кода Вот-вот, только Денис, как я понимаю, пытается объяснить, что дело не в красоте, а в сокращении времени загрузки и предвидении разумного количества постпотраченного кем-то, кто будет разбираться для каких-то своих целей, времени. А рефакторингом пусть занимаются сами разрабы модов Такой вопрос: а когда они создавали те скрипты, рефакторинг которых показывает сейчас Денис, они чегой-то не занимались этим? А товой, что они в тот момент были на свете всех милее, всех румяней и белее. По крайней мере, их зеркало им об этом говорило. Ну, вы понимаете. И лучше сейчас этой статьей показать подводные камни тем, кто начинает, чем потом заставлять их все переосмысливать. Эти грабли для начинающих в целом сейчас гораздо более опасны, чем раньше, когда на очень многое закрывались глаза. Или я не прав? Литературка (избранное): "Координаты избушки" (2023) --- "Колобок времени" (2019) --- "Пиво и жлоб" (2018) --- "Лекарство против морщин" (2013) --- "Когда все пройдет" (2013) Креатив (бесперспективное): Dominanta --- Сон на земле Досвиданьице (слезное): Смена администратора (2024) Ссылка на комментарий
Nazgool 250 Опубликовано 4 Января 2015 Поделиться Опубликовано 4 Января 2015 (изменено) @Murarius, Вот потому и занимался PiL, что нужно хотя бы пытаться писать правильно, а "как всегда" оно само получиться. Т.к. (по аналогии выходит) если писать "как всегда", то в итоге получим "плохо" Я всегда был за! усовершенствование кода. Только с этим делом нужно не переусердствовать. "Выпиливать " целый день код, который работает от силы несколько раз, или даёт минимальный положительный эффект - неразумно. Разве что личная неприязнь к "простыням" или моральное удовлетворение от красивого кода (я в этом числе ) ). @Dennis_Chikin, В любом случае, я (например) за. +1. Изменено 4 Января 2015 пользователем Nazgool Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 4 Января 2015 Поделиться Опубликовано 4 Января 2015 (изменено) "Выпиливать" иногда приходится элементарно для того, чтобы разобраться, как оно вообще работает. Многое выглядит, как прогнанное через обфускатор (а может быть и не "как"). Плюс начинаешь разворачивать, а там такое... От банальных опечаток и до, действительно "надо доктора вызывать". Изменено 4 Января 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Zander_driver 10 333 Опубликовано 4 Января 2015 Поделиться Опубликовано 4 Января 2015 Если глянуть по ссылке, про "историю пессимизации" - там вообще-то 10-15 секунд загрузки на вычищенных конфигах, и аж минуты на невычищенных. Плюс "хромота" непосредственно в игре. Плюс 10 секунд (до 2-х минут на ОПКМ) той же загрузки на "торговле", + 4 на тайниках, + 4 на ящиках, плюс 10-30 загрузки и лаги непосредственно в игре по 2 сек на звуках. Ага, вот это у нас называется нынче "гоняться за наносекундами", и "делать ничего не надо". Запуск игры по 4 минуты и перезагрузка по полторы-две после каждой смерти... На не самом древнем железе. Ну нифига ж себе - "неважно"... Не говоря о десятках и сотнях мегабайт памяти при разборах этих конфигов. Да, я понимаю, можно сказать и про "сначала конфиги зачисти". Ага, во всех солянках, всех дмх, всех опах и что там еще наплодили, я вот должен бегать и конфиги чистить. Офигеть... Ну я не говорю вообще-то что в таком тяжелом случае за сокращением времени гоняться не надо. но вы согласитесь, это же случай в самом деле ужас какой тяжелый. Вы этого лагодинозавра любите и хотите его лечить - дело ваше. Я бы наверно не стал. и если б мне предложили разобрать и привести в благообразный вид 800кб чужого кода из мерзких if-then портянок, ну, я бы задал вопрос "А что оно вообще делает?" и написал бы свое для этих целей, с нуля. А разжиревшего динозавра - просто в корзину. Struck, ну да, о публично выложенных Артосом модулях речь и идет. Но суть от этого не меняется же. Где есть доступные, понятные комментарии - то и удобнее использовать, при условии конечно, грамотной структуры кода. А кому как не автору писать такие комментарии. Эти грабли для начинающих в целом сейчас гораздо более опасны, чем раньше, когда на очень многое закрывались глаза. Ну как посмотреть. от того что 5 лет назад по ним все топтались как по проспекту, они ведь граблями быть не переставали. Просто это считалось как бы нормой. И сейчас многое за норму считают, что по хорошему - не должно ею являться. Весь вопрос в том, хочет ли разработчик сделать мод лучше, или его устраивает так и ходить по граблям. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Struck 61 Опубликовано 5 Января 2015 Поделиться Опубликовано 5 Января 2015 @Nazgool, в полном переписывании всех скриптов игры есть один существенный плюс. В конце ты разбираешься что и как делает каждый скрипт. Хотя-бы ради этого я думаю стоит заниматься этим делом. И да, в общем и я сам из касты любителей прекрасного, правда навыков нет пока ничерта, но стараюсь разбираться и хоть как-то пытаться писать вменяемый код. или его устраивает так и ходить по граблям. Ну допустим если ты делаешь какой-нибудь сюжетный мод, то тут оно и не надо на мой взгляд. Все зависит от вектора твоего проекта. Ссылка на комментарий
Zander_driver 10 333 Опубликовано 5 Января 2015 Поделиться Опубликовано 5 Января 2015 (изменено) Вот, в точку! проекты совершенно разные бывают, с разными целями у разработчиков. Некоторые вообще без скриптера в команде обходятся, и ничего. Кстати, приведу одну цитату, ко всем "не надо ничего !" "Вовсе нет, просто с тех пор как я научился что-то самостоятельно делать, я не перестаю удивляться, сколько же простых, как бревно, вещей, никто и нигде не удосужился сделать за все годы модостроения.Этим и занимаюсь - делаю простые как бревно, вещи, которых никто почему-то не сделал. Очевидно потому что считали - не нужно, и так хорошо. А я считаю что - нужно. То что было в АМК 1.4.1 лично меня не устраивает." dc Изменено 6 Января 2015 пользователем Dennis_Chikin Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Serge! 127 Опубликовано 5 Января 2015 Поделиться Опубликовано 5 Января 2015 (изменено) local c_wnp = _G.c_wpn or {} -- здесь должна быть табличка clsid стволов. Хороший посыл. clsid стволов - (т.е. просто константы) для оригинала прошиты в движке (см. lua_help.script), и таки кто-же возмётся их всех прописать (с учётом модификаций оригинала) в такой супер табличке? У Вас есть кандидаты на такой подвиг? А как Вы думаете? почему никто не правил function isWeapon(object)? из _g.script? да именно по этой причине. Оптимизаторы... Да. кстати, предупреждение по 2.1. Пока без r/o. Тут недавно люди и за меньшее получали. С баллами. dc Изменено 5 Января 2015 пользователем Dennis_Chikin Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 5 Января 2015 Поделиться Опубликовано 5 Января 2015 (изменено) Вот это - function isWeapon(object)local clsid_weapon = { [clsid.wpn_ak74_s] = true, [clsid.wpn_bm16_s] = true, [clsid.wpn_grenade_f1] = true, [clsid.wpn_grenade_fake] = true, [clsid.wpn_grenade_launcher] = true, [clsid.wpn_grenade_rgd5] = true, [clsid.wpn_grenade_rpg7] = true, [clsid.wpn_groza_s] = true, [clsid.wpn_hpsa_s] = true, [clsid.wpn_knife_s] = true, [clsid.wpn_lr300_s] = true, [clsid.wpn_pm_s] = true, [clsid.wpn_rpg7_s] = true, [clsid.wpn_shotgun_s] = true, [clsid.wpn_svd_s] = true, [clsid.wpn_svu_s] = true, [clsid.wpn_usp45_s] = true, [clsid.wpn_val_s] = true, [clsid.wpn_vintorez_s] = true, [clsid.wpn_walther_s] = true,} return (object and clsid_weapon[object:clsid()])end - по Вашему - ЧТО ? Только заполнена неправильно, и реализация, опять же, странна (создание таблицы при каждом вызове). Плюс к тому, за заведомый бред, запощенный в этот раздел, про lua_help в частности, хотя скриптовые классы на самом деле определяются в class_registrator, будете отправляться в r/o каждый раз, как оттуда вылезете. Изменено 5 Января 2015 пользователем Dennis_Chikin 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Struck 61 Опубликовано 5 Января 2015 Поделиться Опубликовано 5 Января 2015 @Dennis_Chikin, еще по моему в 2010 все сделали эти массивы ВНЕ функций, а строили их на "старт колбеке". Сама же функция проверяет юзердату, либо готовый клсид (у меня так). Кстати подобного ужасающего кода просто валом, и в модах в том числе. Добавлено Dennis_Chikin, 6 Января 2015 Здесь просто первый попавшийся фрагмент из чего под руку попалось. В качестве примера на "кто-же возмётся их всех прописать". Ну а в скрипте, который обсуждается, оставлена просто пустая таблица, именно по тому, что мало ли у кого как, и как называется. Скажем какое-нибудь IAmAWeapon или еще что. В общем, просто вписать. 3 Ссылка на комментарий
Zander_driver 10 333 Опубликовано 6 Января 2015 Поделиться Опубликовано 6 Января 2015 (изменено) @Serge!, lua_help.script вообще движком не читается. это файл-справочник, который когда-то был нужен разработчикам. почему никто не правил function isWeapon(object)? из _g.script? Почему вас посетила столь странная мысль, что никто этого якобы не делал... Изменено 6 Января 2015 пользователем Zander_driver Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
xStream 86 Опубликовано 23 Января 2015 Поделиться Опубликовано 23 Января 2015 Скорость? С нетпакетами? Вы серьезно? О_о Библиотека нетпакетов создавалась для использования on demand, а не в polling режиме. Все, кто стоит на моем пути: идите нахрен и там погибните! © Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти