Целесообразность создания мода на основе HotA |
Здравствуйте, гость ( Вход | Регистрация )
Целесообразность создания мода на основе HotA |
13 Oct 2016, 19:20
Сообщение
#1
|
|
Newbie Сообщений: 7 Спасибо сказали: 9 раз |
Исходные данные: есть мод для героев, содержащий большое количество изменений (характеристики существ, стоимости и зависимости в замках, специализации героев, стоимость и доступность заклинаний и т.п.). Некоторое изменения уже делаются не правкой файлов, а прямой прошивкой в запущенную игру из стороннего процесса. Сделано это пока кустарно - процесс нужно периодически перезапускать во время игры.
Для того, чтобы реализовать весь необходимый функционал в моде, требуется, чтобы сторонний процесс запускался в начале каждого хода каждого игрока как минимум, а то и чаще (требуется динамическое изменение карты приключений). Вопрос в том, на основе какого клиента целесообразно делать мод. Ванильных героев уже рассматривать глупо, нужно брать как минимум HD Mod (сразу вопрос, можно ли облегчить некоторые задачи за счет HD Mod, например не так сурово прошивать клиент со стороны). WoG не рассматриваю. Но больше хотелось бы HoTa, в первую очередь не из-за нового замка (он для моего мода как раз создает дикую головную боль с балансом), а из-за очень здоровских новых объектов на карте и в целом из-за большого количества хороших правок. Поэтому хотелось бы узнать, как устроен ехе HotA и насколько это реально? |
|
|
13 Oct 2016, 19:25
(Сообщение отредактировал Etoprostoya - 13 Oct 2016, 19:25)
Сообщение
#2
|
|
Etoprostostatus Сообщений: 8 527 Спасибо сказали: 15833 раза |
Откройте для себя Эру. http://wforum.heroes35.net/showthread.php?tid=3155
Команда ХотА, насколько я понял, хочет оставить её, ХотУ, немодифицируемой. -------------------- Etoprostopodpis'
|
|
|
13 Oct 2016, 20:31
(Сообщение отредактировал arseniy - 13 Oct 2016, 20:32)
Сообщение
#3
|
|
Newbie Сообщений: 7 Спасибо сказали: 9 раз |
Вроде уже пробовал когда-то, но не срослось. Как я понимаю, если не брать в расчет простоту установки/возможности иметь несколько модов сразу, era от wog по упрощению модификаций ушла недалеко. То есть, это тот же набор erm скриптов, так? Можно ли из erm скрипта работать с данными в файлах (не игровых, а сторонних)? Можно ли из него вызвать C++ код, который что-нибудь посчитает? Насколько это медленней, чем напрямую фигачить С++ прошивающими вызовами из другого потока?
|
|
|
13 Oct 2016, 22:01
Сообщение
#4
|
|
Etoprostostatus Сообщений: 8 527 Спасибо сказали: 15833 раза |
>>То есть, это тот же набор erm скриптов, так?
Нет. >>Можно ли из erm скрипта работать с данными в файлах (не игровых, а сторонних)? Да, через ERM там теперь можно вызывать любые внешние функции. >>Можно ли из него вызвать C++ код, который что-нибудь посчитает? Да, это, пожалуй, основная "фишка" Эры. >>Насколько это медленней, чем напрямую фигачить С++ прошивающими вызовами из другого потока? Собственно Эра тем и занимается, что "напрямую фигачит". Подробнее лучше на том форуме спросить, там её активные пользователи и создатель. Хотя здесь тоже есть, но по теме общаются не в этом подфоруме, а в "Модах". -------------------- Etoprostopodpis'
|
|
|
13 Oct 2016, 22:02
Сообщение
#5
|
|
Immortal Сообщений: 2 768 Спасибо сказали: 959 раз |
arseniy, если хочется что-то без erm, то посмотри в сторону mop
|
|
|
13 Oct 2016, 22:39
(Сообщение отредактировал baratorch - 13 Oct 2016, 23:05)
Сообщение
#6
|
|
Immortal Сообщений: 2 412 Спасибо сказали: 4617 раз |
Да, команда хота, не хочет чтобы хоту модифицировали, и не хочет делится ее элементами.
ХД мод облегчить модинг не может (разве что если мод сделать плагином для хд, то не надо будет парится как присоединять свою модификацию к игре), а вот например мой инструмент patcher_x86.dll может. А еще сильнее могу облегчить модинг я) поделившись наработками, но только если тебе по душе тот же лагерь модеров ) 1 лагерь - вог, эра. если нужна база вог и ерм. 2. лагерь хд, хота, если фичи вога совсем не нужны и хочется модить непосредственно оригинал (SoD), хочется максимальной совместимости с ХД, а так же если предпочитаемый ЯП - с++ 3. MoP, если нужны фичи вог, редактор монстров, редактор еще чего-то там, но не нужен ерм, не нужен ХД мод и любишь ассемблер. -------------------- |
|
|
14 Oct 2016, 00:04
Сообщение
#7
|
|
laughed as one fey Сообщений: 12 166 Спасибо сказали: 20585 раз |
Цитата Вроде уже пробовал когда-то, но не срослось. Как я понимаю, если не брать в расчет простоту установки/возможности иметь несколько модов сразу, era от wog по упрощению модификаций ушла недалеко. То есть, это тот же набор erm скриптов, так? Можно ли из erm скрипта работать с данными в файлах (не игровых, а сторонних)? Можно ли из него вызвать C++ код, который что-нибудь посчитает? Насколько это медленней, чем напрямую фигачить С++ прошивающими вызовами из другого потока? Нет, не только, эра позволяет подключать дллки с любым желаемым кодом и предоставляет двусторонний интерфейс нативный код <-> ерм Самой адекватной для моддинга платформой является связка эра+бараторчевский патчер, чуть хуже - сод+хд+бараторчевский патчер. |
|
|
14 Oct 2016, 00:47
Сообщение
#8
|
|
пират с чёрной меткой Сообщений: 23 645 Спасибо сказали: 12919 раз |
(сразу вопрос, можно ли облегчить некоторые задачи за счет HD Mod, например не так сурово прошивать клиент со стороны) HD-mod поддерживает подгрузку dll, устанавливающей хуки на различные функции, в том числе на функцию начала нового раунда, а уж dll может обеспечить и существование постоянного активного процесса, вносящего изменения в игровые данные. Причём это примнимо как под СОД, так и под Хоту.Но больше хотелось бы HoTa, в первую очередь не из-за нового замка (он для моего мода как раз создает дикую головную боль с балансом), а из-за очень здоровских новых объектов на карте и в целом из-за большого количества хороших правок. Поэтому хотелось бы узнать, как устроен ехе HotA и насколько это реально? Команда НЕ ПРИВЕТСТВУЕТ моддинга Хоты. Но можно сделать модификацию под СОД, которая и под ХотУ будет работать тоже, в результате чего будет доступен и Причал. Но, ещё одно "но" - крайне маловероятно, что такой моддинг (с использованием триггеров начала раунда в бою) будет совместим с хотовским мультиплейером в целом и одновременным ходом в частности. (Нет, оно-то возможно, только если досконально разобраться в работе этого ОХ, а код его не является открытым, и им команда не поделится точно). -------------------- Давший быка на убой не выпросил и печень на жаркое.
|
|
|
14 Oct 2016, 05:59
(Сообщение отредактировал arseniy - 14 Oct 2016, 08:21)
Сообщение
#9
|
|
Newbie Сообщений: 7 Спасибо сказали: 9 раз |
Спасибо всем за ответы.
Писать на ассемблере я не готов. С++ предпочтительнее, но я посмотрел патчер и понял, что далеко не факт, что изучение api патчера (точнее, как этим пользоваться) займет меньше времени, чем erm (а скорее, существенно больше). Хотелось бы примеры применения. То есть, плюс скриптов в том, что за тебя уже знают куда писать и в каком виде, а с патчером нужно откуда-то и эту информацию брать. С другой стороны, нужных мне скриптов может не быть в принципе. Мне в любом случае нужна поддержка HD мода, поэтому термин "максимальная совместимость с ХД" меня волнует. Я опишу более предметно, что нужно сделать, если вы можете точно сказать, с помощью чего это сделать проще, если вообще возможно, то здорово. Критические фичи: - возможность менять тип почвы на карте клетками каждый ход (я уже это делал прошиванием в код, так что то, что это возможно, сомнений не вызывает, вопрос, как делать это оптимально) - получение координат и данных всех объектов с флагом и нейтральных отрядов на карте каждый ход - изменение родных почв замков, - изменение почвы замка при осаде (статично - на родную почву из предыдущего пункта) - изменение эффектов родной почвы (изменение значений характеристик существ в битвах), - изменение типа замка при его захвате (если невозможно - какой-то аналог воговского разрушения-отстройки) Фичи, которые желательны: - изменение штрафов передвижения по различным почвам - дополнительная характеристика существ инициатива (просто задающая порядок хода в бою вместо скорости, а не как в пятых героях) - дополнительная характеристика существ подвижность - влияет на очки перемещения героя вместо скорости - удаление специализаций героев (так как возможна альтернатива - замена на специальность, не дающую в большинстве ситуаций никаких преимуществ, не критично) - запрещение появления в таверне героев других фракций |
|
|
14 Oct 2016, 09:59
Сообщение
#10
|
|
Immortal Сообщений: 6 260 Спасибо сказали: 12647 раз |
Критические фичи: - возможность менять тип почвы на карте клетками каждый ход (я уже это делал прошиванием в код, так что то, что это возможно, сомнений не вызывает, вопрос, как делать это оптимально) - получение координат и данных всех объектов с флагом и нейтральных отрядов на карте каждый ход В ERM есть - изменение родных почв замков, http://forum.df2.ru/index.php?showtopic=32...st&p=638606 - дополнительная характеристика существ инициатива (просто задающая порядок хода в бою вместо скорости, а не как в пятых героях) - дополнительная характеристика существ подвижность - влияет на очки перемещения героя вместо скорости Вот внедрение инициативы на форуме обсуждали. Пока самым реализуемым подходом кажется, когда в начале раунда существам выставляются нужные скорости инициативы, а при наступлении хода существа скорость сбрасывается на стандартную. Полагаю, с перемещением можно сделать аналогично. А вообще, тебе, с такими хотелкам - в VCMI, а не в моддинг -------------------- |
|
|
14 Oct 2016, 10:59
(Сообщение отредактировал baratorch - 14 Oct 2016, 11:26)
Сообщение
#11
|
|
Immortal Сообщений: 2 412 Спасибо сказали: 4617 раз |
Мне сложно сказать что для решения этих задач есть в эра-ерм. Например инициативу и подвижность, мне кажется либо не сделать с помощью erm, либо реализация будет очень черезжопной. Но я могу ошибаться.
В любом случае, если тебе нужно сделать то, что еще никто не делал, то придется значительное время потратить на реверсинг кода игры. Работа с патчером - это именно, как ты выражаешься "прошивание в код" игры. Просто патчер делает этот процесс стандартизованным, удобным, минимизирует "баго-потенциал" этого процесса, а так же позволяет знать кто и куда еще шьет в игру (например ХД), позволяет разным модам шить в одно и тоже место без конфликта, дополняя функционал друг-друга а не заменяя. Интерфейс патчера простой и логичный. Примеры должны прояснить всё. И здесь, да, нужно ориентироваться в коде оригинальной игры, чтобы понимать что и где менять. И если не писать, то читать ассемблер, все равно придется (хотя в основном приходится читать все же Си-стайл код HexRays'а в IDA). Здесь еще момент, era - плохая платформа, если ты хочешь хорошую работу мода при игре по сети. Если игра по сети тебя не волнует, то и "максимальная совместимость с ХД" не нужна, той совместимости что есть для era будет достаточно. -------------------- |
|
|
Текстовая версия | Сейчас: 23 April 2024 - 23:55 |
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |