Current time: 04.06.2024, 11:36 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
The Succession Wars Mod
» мод для Г3 на основе Г2
Author Message
Berserker Online
Administrators

Posts: 16523
Post: #301

feanor, а с чем были проблемы?


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
23.05.2024 17:45
Find all posts by this user Quote this message in a reply
void_17 Offline

Posts: 30
Post: #302

(22.05.2024 13:48)XEPOMAHT Wrote:  Да, смена платформы = полной переделки всей игры. Старая была построена на плагинах Феанора, новую хотят превратить в мод для HD-мода, для чего потребуется написать все dll для мода заново.
Ну, во-первых, H3SW будет состоять всего из двух dll. Один для стартапа, в другом основной код.
Во-вторых, придется действительно написать многое с нуля. Ну да, и что? Я это сделаю на порядок быстрее чем на ассемблере или ERM. И отлаживать такой код очень удобно с современными средствами разработки на C++, например CLion 2024 или Visual Studio 2022. Для своей API я пишу pretty-printer-ы, которые визуализируют контейнеры и прочие вещи.

И да, хота делает также(мод для HD Mod на основе SoD). Играют в хоту сотни тысяч, это качественный продукт.

(22.05.2024 13:48)XEPOMAHT Wrote:  и увеличенные системные требования, к примеру ОЗУ увеличится с 32MB до 400 MB, при использовании спрайтовой графики от HoMM2, а не HD-аналогов.

Это минимум всей машины. В среднем сама игра в вакууме требует 60 Мегабайт. Приплюсуйте сюда стретч фильтры с HD Mod или службы Windows, там будет в районе 200 МБ. 400 МБ это максимально возможная нагрузка.
К тому же, 200 МБ это что вообще за такая цифра для 2024 года? Смех просто, учитывая что сейчас ноутбуки минимум с 8ью гигабайтами выпускаются. Я бы вообще отказался от поддержки Windows XP, но преустановленный работающий на любом тостере рантайм msvcrt.dll и posix-потоки GCC/Clang позволяют поддерживать даже Windows XP, поэтому проблем не возникает.

(22.05.2024 13:48)XEPOMAHT Wrote:  The Succession Wars Mod преодолеет стадию "производственого ада" за 1 год, как они обещают.
Всё зависит только от художников сейчас. У меня всё лето после июньской сессии свободно, я буду заниматься этим модом потому что мне самому безумно интересно.
Разработка на C++ по сравнению с дельфи и ERM одно удовольствие, особенно с современными средствами вроде LLVM. Я молчу про оптимизации, которые настолько мощные, что заранее просчитывают некоторые вещи в компайл-тайме чтобы лишний раз не приходилось считать одно и то же.

(22.05.2024 13:48)XEPOMAHT Wrote:  Намного разумнее было бы привести в порядок текущую версию. (скорее всего от той свалки плагинов просто не осталось исходных кодов, т.к. разработка мода длится уже второе десятилетие)
Эту нестабильную кашу которую кличат платформой? Свалка - это про изотерический язык ERM, который похож на набор случайных символов. Его ни отладить, ни прочитать, ничего с ним не сделать. Или тот же ассемблер. Компилятор такие вещи умеет делать легко(и зачастую гораздо эффективнее вручную написанного ассемблера), в моей базе данных прописаны соглашения о вызовах каждой функции, все что нужно - просто дать функции сответствующий аттрибут(буквально одно слово написать) и код будет работать.
Не нужно думать о низкоуровневом дерьме вроде как и куда каким образом модифицируется или читается стек, за тебя все это сделает компилятор. Твое внимание концентрируется на алгоритмах, структурах данных, на том как собственно сделать так чтобы все работало. Это повышает производительность в разы, особенно с моей API, которую я тоже летом выпущу в открытый доступ.

Как итог - есть современные системы разработки. Есть современный популярный стандартизированный язык программирования(не утверждаю что он самый лучший, но точно лучше этих костыльных решений на дельфи или ERM), у которого куча реализаций и многие из них очень сильно оптимизированы. Зачем мучительно кряхтеть над низкоуровневыми методами из 1998 если современные инструменты предлагают всё это эффективнее, надежнее, удобнее?

(23.05.2024 14:18)feanor Wrote:  строго говоря, переход на сод - это не поднятие планки, а вынужденный откат.
Почему? Игра будет работать быстрее и стабильнее, официально поддерживаться HD Mod, в т.ч. одновременные ходы. А это в т.ч. турниры. У меня активный контакт с бараторчем.


IDA-База HOMM 3 Discord Server
(This post was last modified: 23.05.2024 20:48 by void_17.)
23.05.2024 18:55
Find all posts by this user Quote this message in a reply
XEPOMAHT Online
Moderators

Posts: 2296
Post: #303

(23.05.2024 18:55)void_17 Wrote:  Во-вторых, придется действительно написать многое с нуля. Ну да, и что? Я это сделаю на порядок быстрее чем на ассемблере или ERM.

Понятно, что быстрее, чем на ERM (который совершенно не годится для глобальных модов, т.к. было разработано чисто под картоделов) и Ассемблере (т.к. да, долго и задротно + антивирусы не дадут спокойно жить). Но всё равно это - время. Профессинальные программисты долго в геройском сообществе не задерживаются - всё же важнее своими навыками заработать денежку, чем годами заниматься очень старой игрой. Когда у тебя появится девушка, на следующем уровне - жена, потом дети, наконец работа на 8-часовой рабочий день, то на HoMM3 времени точно не останется. Поэтому я считаю перезапуск The Succession Wars Mod на базе патчера с HD-модом не очень хорошим решением, т.к. желающих энтузиастов продолжить разработку на SoD, несмотря на все удобства для профи (коих скорее исключение из правил, нежели норма в сообществе моддеров) могут не найтись. Надежнее было бы вносить изменения эволюционным путём, а не резать всё под корень.

Возьми в пример DoR - огромный мод-долгострой, который тоже делают на SoD, используя собственную уникальную платформу, и доделать никак не могут, хотя там тоже - отличные программисты и отличные художники.

(23.05.2024 18:55)void_17 Wrote:  И да, хота делает также(мод для HD Mod на основе SoD). Играют в хоту сотни тысяч, это качественный продукт.

HoA делают с 2007 года. Крови и пота в этот проект вбухано немеренно. Даже если бы они сделали в качестве основы WoG, то на популярности это никак не сказалось бы (платформа особо не имеет значения, главное - грамотность написаного кода, высокое качество графики и интересные идеи).

(23.05.2024 18:55)void_17 Wrote:  Это минимум всей машины. В среднем сама игра в вакууме требует 60 Мегабайт. Приплюсуйте сюда стретч фильтры с HD Mod или службы Windows, там будет в районе 200 МБ. 400 МБ это максимально возможная нагрузка.
К тому же, 200 МБ это что вообще за такая цифра для 2024 года? Смех просто, учитывая что сейчас ноутбуки минимум с 8ью гигабайтами выпускаются. Я бы вообще отказался от поддержки Windows XP, но преустановленный работающий на любом тостере рантайм msvcrt.dll и posix-потоки GCC/Clang позволяют поддерживать даже Windows XP, поэтому проблем не возникает.

У меня ПК слабый. Каждый мегабайт на счету. Хотя памяти 1,5 Гб, но она жутко тормозная, т.к. планки памяти я поснимал с разного говна.

(23.05.2024 18:55)void_17 Wrote:  Всё зависит только от художников сейчас. У меня всё лето после июньской сессии свободно, я буду заниматься этим модом потому что мне самому безумно интересно.

А когда энтузиазм закончится, что тогда? А так же участие в делах HotA Crew? Например Бастион сегодня по-прежнему находится на самоизоляции, когда лидер разработки с головой ушёл в HoA, просто не потянув 2 больших мода одновременно. Даже на forum.df2 запостили издевательский смешок по этому поводу.

(23.05.2024 18:55)void_17 Wrote:  Разработка на C++ по сравнению с дельфи и ERM одно удовольствие, особенно с современными средствами вроде LLVM. Я молчу про оптимизации, которые настолько мощные, что заранее просчитывают некоторые вещи в компайл-тайме чтобы лишний раз не приходилось считать одно и то же.

Феанор делал свои плагины на Си++, разве нет? Разве нельзя применить все эти плюшки с бубенцами к его коду?

(23.05.2024 18:55)void_17 Wrote:  Эту нестабильную кашу которую кличат платформой? Свалка - это про изотерический язык ERM, который похож на набор случайных символов. Его ни отладить, ни прочитать, ничего с ним не сделать. Или тот же ассемблер. Компилятор такие вещи умеет делать легко(и зачастую гораздо эффективнее вручную написанного ассемблера), в моей базе данных прописаны соглашения о вызовах каждой функции, все что нужно - просто дать функции сответствующий аттрибут(буквально одно слово написать) и код будет работать.

Видел я, какой бардак пишет Майкософтский компилятор в dll, в подавляющем количестве планов на Си, да что там, сам SoD-овский код спокойно сжимается после ручной оптимизации на Ассемблере после чистки от мусора и просто забытых програмистами "хвостов". За удобностью си-шного всегда стоит избыточный код в самой dll, съедающий тонну памяти и времени ЦП на его обработку. По этой же причине я не использую Патчер от Бараторча, т.к. дедовская система хуков работает гораздо быстрее, особенно на моём ржавом железе. И сказки о быстрый код после компиляции от Массифсофта разобьются после жалоб игроков про медленный ход ИИ в игре - проблема, которую даже хотовцы решить не смогли.

(23.05.2024 18:55)void_17 Wrote:  Не нужно думать о низкоуровневом дерьме вроде как и куда каким образом модифицируется или читается стек, за тебя все это сделает компилятор.

И не нужно думать - берёшь реверсированные под СИ функции целиком и пишешь всё что хочешь. Т.к. твой мод - глобальный и совместимость со сторонними dll тебе не нужна. Кроме как с Бараторчем, с которым ты всегда можешь договориться, т.к. вы с ним в одной команде.

Да, простым смертным на ERA придётся парится с совместимостью. И супер-пупер компилятор в этом ничем не поможет. Патчер Бараторча как раз реально облегчает задачу, в отличии от заверений про крутость (или тупость) компиляторов, которые не лишины недостатков.

(23.05.2024 18:55)void_17 Wrote:  Как итог - есть современные системы разработки. Есть современный популярный стандартизированный язык программирования(не утверждаю что он самый лучший, но точно лучше этих костыльных решений на дельфи или ERM), у которого куча реализаций и многие из них очень сильно оптимизированы.

Завтра то, что ты считаешь современным, уже устареет. Появится новый энтузиаст, который придумает что-то более крутое и современное. Вплоть до приведения си-шного диаасемблированного кода в полностью рабочий вид (пример - GTA3, код которой смоли полностью восстановить в высокоуровневом виде на Си с помощью диассемлирования). Когда-то давно и WoG был революцией в мире моддинга.
(This post was last modified: 24.05.2024 01:17 by XEPOMAHT.)
24.05.2024 01:12
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 624
Post: #304

(23.05.2024 17:45)Berserker Wrote:  feanor, а с чем были проблемы?
С наличием программистов, конечно ))
24.05.2024 01:21
Find all posts by this user Quote this message in a reply
void_17 Offline

Posts: 30
Post: #305

(24.05.2024 01:12)XEPOMAHT Wrote:  Понятно, что быстрее, чем на ERM (который совершенно не годится для глобальных модов, т.к. было разработано чисто под картоделов) и Ассемблере (т.к. да, долго и задротно + антивирусы не дадут спокойно жить). Но всё равно это - время. Профессинальные программисты долго в геройском сообществе не задерживаются - всё же важнее своими навыками заработать денежку, чем годами заниматься очень старой игрой.
Ну да, но я таким макаром накапливаю опыт. Для меня это первый крупный проект. Я научусь пользоваться git, научусь выстраивать архитектуру проекта, и прочее. Для меня это опыт, который я в будущем применю на работе. Да и тем более, мне самому это интересно, и время есть. Почему бы и нет?

(24.05.2024 01:12)XEPOMAHT Wrote:  У меня ПК слабый. Каждый мегабайт на счету. Хотя памяти 1,5 Гб, но она жутко тормозная, т.к. планки памяти я поснимал с разного говна.
Речь про то что H3SW столько же памяти будет потреблять, сколько и ванила с HD Mod, я по сути привел минимальные требования HD Mod. Просто появилось еще одно требование - инструкции SSE2, которые мне очень нужны для ускорения кода.

(24.05.2024 01:12)XEPOMAHT Wrote:  А когда энтузиазм закончится, что тогда? А так же участие в делах HotA Crew?
Ну, не знаю. Меня это не особо волнует. Буду заниматься чем-то другим. От них зависит.

(24.05.2024 01:12)XEPOMAHT Wrote:  Например Бастион сегодня по-прежнему находится на самоизоляции

Лично мне старые города не интересны.

(24.05.2024 01:12)XEPOMAHT Wrote:  Феанор делал свои плагины на Си++, разве нет? Разве нельзя применить все эти плюшки с бубенцами к его коду?
Он сидит тут, и у меня они есть. Могу сказать что мне не нравится как все организовано, не в обиду ему, это совершенно понятно почему так получилось, т.к. в то время по-другому нельзя было ведь не было трезвой API и базы данных.

(24.05.2024 01:12)XEPOMAHT Wrote:  Видел я, какой бардак пишет Майкософтский компилятор в dll, в подавляющем количестве планов на Си, да что там, сам SoD-овский код спокойно сжимается после ручной оптимизации на Ассемблере после чистки от мусора и просто забытых програмистами "хвостов". За удобностью си-шного всегда стоит избыточный код в самой dll, съедающий тонну памяти и времени ЦП на его обработку. По этой же причине я не использую Патчер от Бараторча, т.к. дедовская система хуков работает гораздо быстрее, особенно на моём ржавом железе. И сказки о быстрый код после компиляции от Массифсофта разобьются после жалоб игроков про медленный ход ИИ в игре - проблема, которую даже хотовцы решить не смогли.

1. MSVC? Потому что это игрушка, а не компилятор(да еще и с закрытым исходным кодом). Я пользуюсь открытым GCC, им серьезнейший софт компилируют, там каждый чих и пук контролируется строжайшим образом, иначе полетят сервера на линуксе на которых половина интернета работает. Оптимизации там мощнейшие, в наше время ручным ассемблером все равно что море лопатой черпать, серьёзно. HD Mod и HotA пользуются MSVC потому что в то время не было clang-cl, а SEH не был доступен для MinGW в привычном синтаксисе. Вот и всё.

2. Причина медленного кода зачастую в том что страдает кэш. Лоухуки ооочень больно бьют по нему. Сначала сохраняем значения регистров, прыгаем на гигантские расстояния вперед, восстанавливаем регистры. Лицо branch predictor-a и кэша процессора можно не воображать. И таких лоухуков на одну функцию может быть штук 10, зачастую больше. А еще они могут быть например внутри цикла. Тогда действительно страдает производительность. Но так в том-то и дело, что это вопрос стратегии проектирования. Я предпочитаю только высокоуровневый подход с минимальным количеством хуков. Т.е. переписывать многие вещи с нуля, потому что так проще чем за всем этим уследить. Так не только проще, такой код будет выполняться быстрее.
Еще дело в плохих алгоритмах, структурах данных, т.е. не важно на каком компилируемом языке писать. Главное сделать это грамотно. Просто лично мне С++ больше нравится чем какой-нибудь Go или Rust, например.

3. "Мусор" это скорее всего речь про CRT, нужен для запуска .dll и его нормальной работы исключений, fpu настроек и прочего, большинство функций запускаются во время начала работы и потом не используются, это не сильно влияет на производительность, точнее даже практически никак.

(24.05.2024 01:12)XEPOMAHT Wrote:  Завтра то, что ты считаешь современным, уже устареет. Появится новый энтузиаст, который придумает что-то более крутое и современное. Вплоть до приведения си-шного диаасемблированного кода в полностью рабочий вид (пример - GTA3, код которой смоли полностью восстановить в высокоуровневом виде на Си с помощью диассемлирования). Когда-то давно и WoG был революцией в мире моддинга.
Какое отношение это имеет к вопросу? Все равно такой подход это лучше ERM и Delphi. А они не развиваются в отличии от С/C++. Я же не утверждаю что это панацея впринципе, но конкретно в создании модов для героев они однозначно лучше, с большииим отрывом.

Просто изучите си. Это правда не сложно. Компилятор есть, mingw, скачайте, он доступен хоть под Windows 98. Вот ссылочка: https://github.com/fsb4000/gcc-for-Windows98


IDA-База HOMM 3 Discord Server
(This post was last modified: 24.05.2024 02:36 by void_17.)
24.05.2024 02:17
Find all posts by this user Quote this message in a reply
orzie Offline

Posts: 365
Post: #306

Quote:А когда энтузиазм закончится, что тогда? А так же участие в делах HotA Crew? Например Бастион сегодня по-прежнему находится на самоизоляции, когда лидер разработки с головой ушёл в HoA, просто не потянув 2 больших мода одновременно. Даже на forum.df2 запостили издевательский смешок по этому поводу.
Каждый делает выбор, что ему важнее и интереснее - это нормально. Я бы давно уже перестал заниматься проектом (и практически переставал в один момент), пока в один момент не почувствовал, что мне просто хорошо, когда я это делаю, процесс так же важен, как и результат. Если бы не нейросетевой бум - проект был бы уже заморожен, я бы рисовал куски чисто потому, что мне это нравится. Сейчас, когда производство графики возможно ускорить в десятки раз и ещё и параллельно улучшить её качество, шанс на полноценный релиз есть.

У меня, к примеру, есть единственная на этой планете кампания для Lords of Magic: Special Edition, которая закончена процентов на 40 и заброшена. Потому что а) вырос и понял, что её дизайн не очень хороший, т.к. я был молод и только начинал и б) я нашёл себя в H3SW, у которого игроков в тысячи раз больше, на моддинг-сцене много интересных и прикольных людей, а кайфа от разработки столько же, если не больше. Свои планы по созданию аддонов для Might&Magic 8 и второго Фоллаута я положил в полку "мечты из другой жизни". Возможно, лет в 50 раздуплюсь и на них. Или нет - у меня полно дел ИРЛ.

Image: MVw9FGr.png

Доцент, мир праху его, попиливал портреты в H3SW и Хота от этого нисколько не пострадала. Творческий отдых у человека такой был. А у нас это одни из лучших портретов в результате - и все останутся в игре.

Ну и раз уж тут пошла тема "вот повзрослеешь - и что тогда?" - то надо и другую сторону того же самого прикладывать: почему тогда кого-то должны волновать чьи-то издевательские смешки? Взрослому человеку уже всё равно, что кто-то считает, что он "лох и не справился". Потому что он уже не мыслит такими категориями. Если будет - круто. Не будет - understandable.

Я ещё раз обозначаю, что другого пути, кроме трансфера, у проекта не было. Рассматривались все варианты, и VCMI в том числе. Этот форум в курсе этой истории, и теперь видит её логическое продолжение - никаких сюрпризов.
(This post was last modified: 24.05.2024 04:57 by orzie.)
24.05.2024 03:05
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16523
Post: #307

void_17, да, чем меньше инструментов и технологий задействовано (и сторонних скомпилированных модулей), тем легче отлаживать и разрабатывать. API, который наработаешь, думаю, может оказаться многим полезен в будущем. У RoseCavalier для C++ очень много разобрано функций и структур, у Бараторча и Сава тоже. Возможно, что-то удастся переиспользовать.

Минусов тоже хватает, конечно. ЕРМ мы подняли до версии 2.0, да и Луа работает, просто без поставляемой обвязки. В целом за годы в Эру было добавлено много возможностей, упрощающих создание дополнений и мини-модов. В любом случае, это просто игра и саморазвитие, так что всецело желаю успехов в этом деле и в карьере в дальнейшем.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
24.05.2024 15:59
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group