Как стать автором
Обновить
84
0
Эреб @Ereb

Пользователь

Отправить сообщение
Ага) Причём девушка сидела на краю с самого старта… Всё-таки не зря у CRW Dogs такая репутация)
Спасибо вам за статью, было очень приятно читать.
я бы посоветовала «Аэроград» (это в Коломенском районе)
Согласен, стоит побывать: одна из самых больших дропзон в Европе. Конечно же там, где много народа, и аварий больше случается… Когда я там словил свой первый отказ (сам укладывал), то для дропзоны это был шестой за день. Всё прошло хорошо, даже POD в поле нашёл. У двух вингов, разбившихся в ту неделю, дела обстояли намного хуже :(

Зато там своя атмосфера
image
Вчера вышло обновление 2.1.5, есть изменения в балансе. По всей видимости, у юнитов категории X после улучшений интервал становится меньше времени анимации. Это приводит к тому, что стрелки подвисают после первого выстрела и перестают стрелять: видео.
Ага. Мне понравилось, что в Age of Empires II интерфейс заявляет у японцев +25% к скорости атаки пехоты, а на деле их самураи рубят на 33% чаще. Должно было быть t/1.25, а сделали t*0.75.
Согласен. Ещё меня интересует, как это осталось незамеченным.

В данном случае следует учитывать, что скрипты игры до сих пор активно дорабатываются (что не может не радовать). Например, в версии 2.0.8 файл unit.script имел размер в 131 KB, а в анализированной здесь версии 2.1.4 — 546 KB.

внутренняя механика продолжает считаться в тиках

Насколько я понял, тики всё же атавизм, движок третьих Казаков работает с секундами. Скорее всего, раньше параметр интервала хранился в тиках и пересчитывался в секунды непосредственно перед применением в _unit_ApplyAttackPause(). Потом в каком-то обновлении, скорее всего, изменили логику и стали хранить интервалы сразу в секундах, но вот код применения апгрейда оставили тем же.

…кроме того случая, когда между вами и оф.сервером находится корпоративный NAT с брандмауэром. И да, я не слышал, чтобы игроки SC2 были рады такой «фишке».
Игроков — нет. А вот разработчиков, продающих свои игры на территории РФ, скорее всего волнуют.
Пожалуйста! Мне этот момент тоже был очень интересен, вот и решил описать поподробнее.
Интересно, мне казалось, что движок специально для третьих Казаков и писали.

Сборщик мусора — уже приговор для сильно нагруженных игр-
Вовсе необязательно. Скриптовый API ведь нужен в первую очередь для описания «правил» игры, а не для хранения данных, или? К тому же, тот же Lua, например, позволяет откалибровать свой сборщик через lua_gc().
Не уверен, что
На человечка потратил несколько дней — моделировал в блендере
попадает под «выдирание арта». К тому же, Warcraft 2000, если я не ошибаюсь, никогда не являлся коммерческим проектом.

…вы мне, кстати, напомнили историю про то, как ребята из GSC когда-то предложили представителям Blizzard помочь последним с разработкой Warcraft 3, а то движок у Warcraft 2 тянул уж слишком мало юнитов на карте. И в качестве PoC показали им упомянутый Warcraft 2000. В итоге ребята из Blizzard обиделись и не стали дружить с GSC ^_^
Спасибо!

А вы знаете, по каким причинам было решено писать свой интерпретатор для скриптов и делать движок на Delphi, а не использовать довольно распространённую в геймдеве связку из C++ и Lua? С производительностью у последнего, вроде бы, всё в порядке.
С удовольствием :)

  1. Располагает ли ИИ в любой момент всей информацией о текущей игре или же играет «по честному», видя только в пределах тумана войны?
  2. Принимает ли ИИ решения лишь на основе доступной игрокам информации (т.е. практически «визуально» — по расположению юнитов), или же он моментально в курсе того, что игрок, например, отдал своим юнитам приказ атаковать конкретное здание?
  3. Выше вы писали, что для Казаков 3 вам понадобился C++. Разве там движок не на Delphi написан? Каким образом происходит взаимодействие с вашим ИИ?
Было бы интересно почитать о вашем опыте в разработке ИИ ;)
Во-первых — гитхаб не для вареза :)

Во-вторых — исполняемый файл вам ничего не даст. Я немного изменил систему загрузки ресурсов, т.к. с существующеми архивами могут возникнуть проблемы (см. пункт «тонкости языка»).

В конце статьи есть несколько ссылок с дополнительной информацией, которые, возможно, вам помогут.
Ух ты, респект!

На счёт проекта — извините, но я пас. Я с Казаками в последнее время уже натерпелся ;)

Но тема интересная, желаю удачи, если всё же возьмётесь.
Вылет при большом количестве юнитов на экране я пофиксил. На счёт тормозов точно сказать не могу, мне не довелось протестировать сетевую игру с 8.000+ юнитами. При ~5.000 юнитах тормозов не заметил.

Возможны артефакты при большом количестве трупов на экране — временно пропадают деревья, анимации выстрелов и огня. Раньше это так же приводило к вылету, теперь нет ;)
Спасибо за информацию, не знал.

И да, я не совсем понял, где собственно у вас был реверс-инжиниринг? У вас же были исходные коды.
Реверс был в первых трёх статьях, до обнародования исходников. Назвал так, потому что эта статья логичное завершение начатого проекта. Ну и код местами довольно необычный, так что реверс тут был хотя бы мысленный ;)
Здравствуйте,

с «Heroes of the Storm» я не знаком, но судя по вашему описанию всё обстоит именно так.

Альтернативным методом была бы передача полного состояния игры (расположение и даные всех юнитов, экономика и пр.) в момент реконнекта. Это заняло бы слишком много времени, другим игрокам пришлось бы ждать. К тому же в играх один на один вы бы полностью доверились другому клиенту при реконнекте, а так игра восстанавливается по записи с вашего клиента, затем догоняет пропущенные события (если я правильно понял).

Информация

В рейтинге
Не участвует
Откуда
Германия
Дата рождения
Зарегистрирован
Активность