Объявления

Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru.
Я оторву свою задницу от всех дел и обязательно Вас активирую! :smile10:
Добро пожаловать на геройский форум! :smile25:

Как создать плагин для HD мода

Герои Меча и Магии III: Возрождение Эрафии, Герои Меча и Магии III Дыхание Смерти, Герои Меча и Магии III Клинок Армагеддона, Герои Меча и Магии III Хроники Героев
offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5579
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2183 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 03 ноя 2021, 18:51

Сейчас (по крайней мере я не встречал на 100% работающих решений) актуально увеличить кол-во городов на карте (опять же, не помню, увеличили ли в HotA) и добавить новые уровни карты. Прикиньте, карта 252x252x252 (уровня). Ну, одной такой на всю жизнь, наверное, хватит. Если говорить о размерах, то 252 не предел, просто требуется больше работы. Например, возможны карты 3600x3600. Давно известно, что редактор карт такие размеры поддерживает (относительно сносно), значит, может и игра. Кроме этих двух ограничений, больше уже, наверное, и нет тех, снятие которых было бы интересно.

Вот только увеличить кол-во игроков реверсерам не под силу :smile29: Хотя уже удивительно, что Герои прожили так долго. Знала бы NWC (а точнее 3DO), что теряет, продавая права Ubisoft... По сути, Ubisoft убила серию своей недальновидностью, недальновидностью аналитиков и маркетологов. Можно было сделать игру AAA-класса и даже в 3D, в которую гоняли бы онлайн и по сей день. Но гений есть гений. Может, просто удача. Не думаю, что JVC не спал ночами, чтобы создать концепцию игры, которая на 20 лет захватит умы и сердца миллионов людей. Когда он делал Тройку, он уже понимал, что у него в руках, но не до конца :smile2: На этой франшизе он мог бы сделать состояние. Даже сейчас, запусти он проект по Героям на Kickstarter, я думаю, собралась бы вполне внушительная сумма. Зачем был нужен Creature Quest? Просто собрал бы команду старичков из NWC, запилил бы пару мотивирующих видео, и сделал бы Герои 5 такими, какими их хотели бы видеть.

То же можно сказать и про KB от Katauri (зачем чёрт дёрнул идти в онлайн?) и про CD Projekt RED, чья команда устала от Ведьмака 3. Да, Cyberpunk, говорят, принёс много денег, но... я думаю, больше бы принёс Ведьмак 4. Видимо, что-то общее есть у студий. Та же Dragon Age: Origins. У вас жар-птица в руках. Нет, в погоне за длинным рублём выпустили Инквизицию, чем и похоронили серию. Я не знаю всех подробностей кухни геймдевелопмента, но мне кажется, тех, кто зарабатывает больше всех (продюсеры, гейманалитики, маркетинг), пора гнать в шею.
Вернуться к началу

offlineАватара пользователя
leiz  
Подмастерье
Подмастерье
 
Сообщения: 187
Зарегистрирован: 15 сен 2018, 07:58
Пол: Не указан
Поблагодарили: 95 раз.

Re: Как создать плагин для HD мода

Сообщение leiz » 04 ноя 2021, 01:50

Цитата:
Sight или Gaze - плохо, потому что не отражают сути заклинания, а Eye of the Magi - существующий объект на карте, изображение которого позаимствовано для заклинания.

Может Revelation подойдет?
Вернуться к началу

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 545
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 129 раз.

Re: Как создать плагин для HD мода

Сообщение void_17 » 04 ноя 2021, 11:06

AlexSpl писал(а):

Сейчас (по крайней мере я не встречал на 100% работающих решений) актуально увеличить кол-во городов на карте (опять же, не помню, увеличили ли в HotA) и добавить новые уровни карты. Прикиньте, карта 252x252x252 (уровня). Ну, одной такой на всю жизнь, наверное, хватит. Если говорить о размерах, то 252 не предел, просто требуется больше работы. Например, возможны карты 3600x3600. Давно известно, что редактор карт такие размеры поддерживает (относительно сносно), значит, может и игра. Кроме этих двух ограничений, больше уже, наверное, и нет тех, снятие которых было бы интересно.


Вообще-то можно добавить только вплоть до 16 максимальных уровней карты с максимальным размером уровня 1024х1024
 
(не нравятся такие ограничения? переписывайте игру с нуля... :smile26: )
В оригинале, как известно, всего 2, а ведь это такой потенциал для интересных карт про "подземные войны"...
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5579
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2183 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 04 ноя 2021, 14:09

А откуда инфа про 1024x1024? Я лично создавал в редакторе 3600x3600 и, думаю, при желании можно получить карту и большего размера.

Догадываюсь, что эти ограничения в игре идут из-за битового поля, хранящего x, y (&0x3FF) и z (&0xF), но хотелось бы услышать Вашу версию.

Цитата:
не нравятся такие ограничения? переписывайте игру с нуля...

Ну, с нуля бы не пришлось, однако получился бы большой фронт работ.
Вернуться к началу

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 545
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 129 раз.

Re: Как создать плагин для HD мода

Сообщение void_17 » 04 ноя 2021, 15:09

Да, 1024 взял не с проста. Особенности структуры type_point. В ней: 10 битов под Х координату, 10 битов под Y и 4 под Z.
Выглядит так:
00ZZ ZZYY YYYY YYYY 0000 00XX XXXX XXXX

Из 32 битов 6 и 2 бита неиспользованные.

3600*3600 это редактор так позволяет, в непатченной игре больше 1024 он просто не обработает(если чутка переписать большое количество функций, связанных с type_point, где 32 бита, то думаю, что можно переорганизовать так:
+3, +3, +2 бита возьмут X, Y и Z соответственно. Т.е. Максимальное значение по X, Y будет не (2^10)–1 = 1023, а (2^13)–1=8191, а по Z.. не (2^4)–1=15, (2^6)=63 ПОДЗЕМЕЛИЙ!
Таким образом будут задействованы все биты. А эта мысль... Можно сделать 8191х8191-патч, а вот как сделать рабочими эти 15(или даже 63) подземелия — вот задачка...

 
Странно, что разработчики оставили так много неиспользованных битов... И целых 4 бита под Z, хотя по их задумкам хватило бы и одного. и проще было бы считывать этот бит — вместо побитового сдвига можно использовать оператор унарного И.
Вернуться к началу

offlineRoseKavalier  
Мастер
Мастер
 
Сообщения: 331
Зарегистрирован: 23 сен 2017, 17:00
Пол: Не указан
Поблагодарили: 234 раз.

Re: Как создать плагин для HD мода

Сообщение RoseKavalier » 04 ноя 2021, 16:14

There are many other things that have a cap on 256 coordinates, for instance a shipyard only stores 8 bits for x/y (the z is not even stored, you have to go through a vector :smile3: ). 0xFF is used in a lot of places as being outside the map area, and type_point is inlined so many places that it's even more of a nightmare. For all intents and purpose, 252 will remain the cap unless someone wants to go GTA on heroes3.
Heroes3 was built on top of Heroes2 which had a lot of DOS restrictions (e.g. 12 char names), presumably type_point is a relic of an older era which they didn't fully get rid of.

@AlexSpl
Replied on HC, I don't log in there very frequently - a PM on this board (which is thankfully not fully archaic as HC stuck in the 1990s) notifies me by email.
Вернуться к началу

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 545
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 129 раз.

Re: Как создать плагин для HD мода

Сообщение void_17 » 04 ноя 2021, 16:28

>for instance a shipyard only stores 8 bits for X, Y

I don't actually remember which function or structure defines such a painfull limit. Name an address/struct, please.

>presumably type_point is a relic of an older era which they didn't fully get rid of.
Btw, type_point didn't really derived straight from Heroes 2. This is actually a pure Heroes 3 thing.

>inlined

Inline functions are hell, indeed, but it turns out, there are only few inline type_point functions:
bool type_point::operator<(type_point & const)const;
bool type_point::operator>(type_point & const)const;
uint type_point::distance_squared(type_point & const)const;

And perhaps type_point::type_point(uint, uint, uint)/type_point::type_point( ) at some places(not everywhere, though).
Вернуться к началу

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 545
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 129 раз.

Re: Как создать плагин для HD мода

Сообщение void_17 » 04 ноя 2021, 17:26

>Вот только увеличить кол-во игроков реверсерам не под силу

Многие говорят об этом, но почему-то никто не поясняет, зачем. Для адских баталий на огромных рандомных карт против over9000 компьютерных игроков? Ходы будут передаваться ооочень долго. Да и 8 игрокам соответствуют 8 цветов. А нужно будет еще нарисовать флаги, плюс добавить палитры для радара(тобишь миникарты) и флажков на объектах и прочее, прочее, прочее.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5579
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2183 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 04 ноя 2021, 18:27

Добавил поддержку языков. Задать язык можно в секции [Language] файла NewSpells.ini, переводы класть в папку Language (пока там только один - English.ini).

NewSpells.zip
(680.83 КБ) Скачиваний: 166
Вернуться к началу

offlineRoseKavalier  
Мастер
Мастер
 
Сообщения: 331
Зарегистрирован: 23 сен 2017, 17:00
Пол: Не указан
Поблагодарили: 234 раз.

Re: Как создать плагин для HD мода

Сообщение RoseKavalier » 05 ноя 2021, 02:16

void_17 писал(а):

>for instance a shipyard only stores 8 bits for X, Y

I don't actually remember which function or structure defines such a painfull limit. Name an address/struct, please.

town for example has 8 bits for its position and for boat position. Shipyards on the advmap as I wrote.
Almost forgot, type_point stores signed values, so -512..+511

void_17 писал(а):

>presumably type_point is a relic of an older era which they didn't fully get rid of.
Btw, type_point didn't really derived straight from Heroes 2. This is actually a pure Heroes 3 thing.

You're probably right, H2 didn't have an underground after-all so no need for this format.

void_17 писал(а):

>inlined

Inline functions are hell, indeed, but it turns out, there are only few inline type_point functions:
bool type_point::operator<(type_point & const)const;
bool type_point::operator>(type_point & const)const;
uint type_point::distance_squared(type_point & const)const;

And perhaps type_point::type_point(uint, uint, uint)/type_point::type_point( ) at some places(not everywhere, though).

Inlined functions would not appear in the symbols (and in fact, symbols do not catch all, there are still plenty of functions called subXYZ) and are difficult to find because there is no call to them.
For instance uint type_point::distance_squared(type_point & const)const is called by ...
advManager::TownGate(TSkillMastery)
hero::IsInIdentifyRange(type_point const &)
hero::IsMobile()
... but if you go in those functions of the sod 3.2 exe you will see the instructions are inlined. Finding all of them is always possible but it's quite a heavy task whereas a much more beneficial mod would be to change the object limit from 16bit to 32bit so that 252x252 maps could actually be filled properly.

btw, I'm not seeing these two signatures ?
bool type_point::operator<(type_point & const)const;
bool type_point::operator>(type_point & const)const;
Вернуться к началу

Пред.След.

Вернуться в Общий раздел

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron