Объявления

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

ПАТЧ ТЕ!

Обсуждаем, делимся впечатлениями, новой информацией
offlineАватара пользователя
VDV_forever  
имя: Дмитрий
Администратор
 
Сообщения: 3862
Зарегистрирован: 22 мар 2009, 12:36
Пол: Мужчина
Поблагодарили: 986 раз.

Re: ПАТЧ ТЕ!

Сообщение VDV_forever » 22 июн 2022, 14:56

AlexSpl писал(а):

До порта на мобильные устройства очень далеко. В отсутствие исходного кода порт возможен только при переписывании игры с нуля.

Это да. А мне было бы интересно принять участие в такой работе. :smile1: А то дипресуха надоела :smile26:
http://www.handbookhmm.ru- Познай все тонкости игры!
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 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)
Поблагодарили: 2185 раз.

Re: ПАТЧ ТЕ!

Сообщение AlexSpl » 22 июн 2022, 20:47

Да, были времена :smile20: Гоняли турниры, некогда было грустить. Столько адреналина перед объявлением результатов, а какие потом интересные обсуждения были и жаркие споры :smile16: Каждая мелочь в игре была важна... Я рад, что успел стать частью всего этого.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 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)
Поблагодарили: 2185 раз.

Re: ПАТЧ ТЕ!

Сообщение AlexSpl » 23 июн 2022, 15:20

Значит, загорелся я идеей полностью переписать combatManager::DoSpellAI(), ибо то, что сделал Phil, очень примитивно, его код даже Fireball нормально не кастует. Класс philAI я почти разобрал. Во многом помогла база Героев 2 с сигнатурами. Код на 80% идентичный. Думаю, сделаю перерыв и запилю сташный-страшный AI, который будет кастовать так, что мало не покажется :smile20:

Кстати, Вы уже можете наблюдать мой прогресс. Хочу, чтобы это стало для Вас сюрпризом, поэтому подробно описывать не буду. Но чекните как-нибудь, что произойдёт, если Вы откажетесь от предложения героя AI об откупе, если у него в запасе есть ударные заклинания :smile2: Вот это, я понимаю, выбор цели, а не то, что есть сейчас в оригинальной игре.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 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)
Поблагодарили: 2185 раз.

Re: ПАТЧ ТЕ!

Сообщение AlexSpl » 23 июн 2022, 16:36

Как я пришёл в Герои 1? Моя любовь к пошаговым стратегиям началась ещё с игры Сергея Прокофьева "King's Bounty-2". Теперь она кажется примитивной, а тогда это был целый "новый дивный мир", 90% которого, конечно, ты сам дофантазировывал :smile1: В те далёкие уже дни, когда мне выпадала возможность поиграть часик-два в KB2, теперь кажутся самым счастливым временем. Да, я был наивен, беззаботен, но я был счастлив, и это чувство нельзя повторить, я не могу его повторить, казалось бы, тогда, когда у тебя всё есть, и только играй себе в KB2 :smile4:

Далее, я стал случайным свидетелем хот-сит партии в Героев 2 в универе. И с завистью наблюдал, как двое старшекурсников играют в то, что я тогда определил как "в сто раз круче, чем KB2". Самое прикольное, что тогда уже вышли Герои 3, но далеко не все могли в них играть. А когда я смог - буквально отбирая комп у моего одногруппника - я окончательно влюбился в Героев. Они украли бессчётное кол-во ночей, которые я провёл в самой настоящей сказке. Может, Вы читали о подвигах милорда VSK. Вот его энтузиазм и восхищение игрой в точности описывают мои тогдашние чувства.

А после, когда все кампании были пройдены, я вспомнил, что есть же ещё и другие части. И теперь я мог в них почти свободно играть :smile1: Двойка казалась настолько другой по стилю, настолько "волшебной", что я года на два забыл о существовании Героев 3 :smile2: Кампании за Роланда и Арчибальда - это шедевры, я засыпал, просчитывая дальнейшие ходы, которые буду делать завтра. Я ждал завтра, чтобы поиграть в Героев 2 :smile14:

А потом случились Герои 1. И они были настолько "ламповыми", что сначала я даже не играл в них, а просто рассматривал экраны городов, слушал музыку и читал доступную тогда инфу об игре, медитируя на характеристики существ :smile1: Видимо, есть во мне что-то, что позволяет видеть красоту старых добрых игрушек. И я рад, что успел стать частью коммьюнити, которое тоже видело эту красоту. Герои 1 были довольно популярны в окрестности 2010-го года. Думаю, многим после Двойки и Тройки они казались чем-то новым, многие механики были другими и это подкупало. А постоянные турниры ещё больше сплачивали игроков. Были и победы, и поражения. Но, конечно же, хотелось побеждать, а когда ты всерьёз чего-то хочешь, каждая мелочь становится очень важной. Человек, который никогда не играл турниры, вряд ли сможет понять, насколько эти мелочи были тогда важны. Каждое новое знание имело практическое применение, и ты играл всё лучше и лучше.

Жаль, конечно, что время Героев ушло. Если начистоту, то осталась только онлайн Хота, последний бастион Героев. Я не верю в то, что серию можно возродить. Каким бы большим ни казалось геройское коммьюнити, оно по-прежнему остаётся крошечным по сравнению с коммьюнити других шедевров, и это один из факторов, которые останавливают разработку новой части AAA-класса. Сейчас время другое. Инди-девелоперы делают годноту, но без графония, а студии с репутацией делают ****, но с графонием. А нам нужно что-то посередине, но, увы, в наше время пропасть между инди и AAA огромная. А в те далёкие времена она почти отсутствовала: все были инди и AAA одновременно :smile1:
Вернуться к началу

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

Re: ПАТЧ ТЕ!

Сообщение void_17 » 23 июн 2022, 17:20

Цитата:
Инди-девелоперы делают годноту, но без графония, а студии с репутацией делают ****, но с графонием.

Так, вообщем-то, нетолько с играми.
Вернуться к началу

offlineАватара пользователя
Sub-Zero  
Новичок
Новичок
 
Сообщения: 18
Зарегистрирован: 01 дек 2009, 07:53
Пол: Не указан
Награды: 1
Победителю турнира по HMM1_TE (1)
Поблагодарили: 1 раз.

Re: ПАТЧ ТЕ!

Сообщение Sub-Zero » 24 июн 2022, 04:58

AlexSpl писал(а):

Цитата:
Единственное, что хотел бы предложить, это (как говорил ещё в самом начале (не помню, где)), что в таком случае логично было бы не обнулять МР при сбегании, а оставлять его "актуальным" на момент сбегания

Согласно турнирным правилам остаток хода должен обнуляться. Это даже логически можно обосновать: после побега с поля боя герою ещё до таверны нужно добраться и восстановить силы.

Не соглашусь.
Турнирные правила подгонялись под существующую реальность.
На мой взгляд, логично иметь возможность тратить все возможные МР полностью.

AlexSpl писал(а):

А если не обнулять, получается следующая картина: "Эх, вижу, что мне не победить. О, идея! Сгоняю-ка я лучше в таверну (где же мой свиток телепортации, а? точно же помню, что брал!), пропущу пару бокальчиков эля, загляну в гильдию магов выучить пару заклинаний (читал, что маги сейчас работают над проектом "Мана-1", говорят, это будущее всей магической системы, и скоро заклинания не нужно будет даже забывать; во как!) - и снова в бой! Армия у Джо Ивановича Джоша, конечно, крепкая, но за нами - магия! Главное, эля не перебрать, а то ещё мувов на пять побегов осталось" :smile1:

Да. В этом и смысл. Опять же, на мой взгляд, такая возможность логична и оправдана.

AlexSpl писал(а):

С сохранением остатка MP есть ещё и технический момент. Необходимо его помнить для каждого сбежавшего и т.п. героя. В течение одной игровой сессии проблем не будет: эту информацию спокойно можно держать в памяти плагина. Однако что делать с сейвами? В структуре героя попросту нет места для этой информации. Здесь два пути: либо пытаться ужать какое-то поле и засовывать туда остаток MP, либо менять формат сейва, а этого очень не хотелось бы. Так что, казалось бы, простая задача требует изменения целого формата сейвов.

Это аргумент.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 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)
Поблагодарили: 2185 раз.

Re: ПАТЧ ТЕ!

Сообщение AlexSpl » 24 июн 2022, 07:59

Цитата:
На мой взгляд, логично иметь возможность тратить все возможные МР полностью.

Думаю, сделаю опцию сохранения остатка хода после побега/откупа. А что с уволенными и погибшими? Тоже оставлять текущие MP?

Цитата:
Это аргумент.

Придётся добавлять байтик в сейв. Сейчас размер сейва 77,663 байта. Байтик на хранение статуса побега/сдачи для 36 героев - это ещё 36 байт, т.е. размер сейва возрастёт до 77,699 байт. Можно битовым полем сделать, но удобнее привязать этот байт к структуре героя. Записываешь в сейв структуру героя - последним добавил байт побега/откупа, читаешь героя - сразу пишешь во внутренний массив побегов/откупов. Будут расширения .XGM* и .XCGM для сценариев и кампаний соответственно.

Целый байт под побег/откуп ещё хорош тем, что туда можно писать подробности: например, уточнять, каким образом герой вернулся в таверну/пул героев (побег, сдача, увольнение, поражение в бою). Это может быть важно потом или даже сейчас, если мы будем различать побег/сдачу и увольнение/поражение. Теперь можно сделать даже так, чтобы при попытке найма откопанного уволенного/погибшего в текущий день героя появлялось сообщение о невозможности этого действия. UPD Совсем забыл, что параметры уволенных и погибших героев сбрасываются на исходные. Т.е. технически уволенный или погибший герой - это новый герой первого уровня, ничем не отличающийся от стартовых, поэтому, думаю, нужно разрешить его найм немедленно с полным запасом хода.

Если есть ещё пожелания по мелочам, пишите. Думаю запилить ещё один небольшой патч 2 (кумулятивный) на выходных.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 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)
Поблагодарили: 2185 раз.

Re: ПАТЧ ТЕ!

Сообщение AlexSpl » 24 июн 2022, 23:23

Почему разработчики решили хранить в классе army не остаток здоровья воина, а здоровье минус остаток? Раньше мне это решение казалось немного нелогичным, пока я не узнал настоящее название поля - residualDamage. Никто из реверсеров не догадался его так назвать, кстати. Так вот, residualDamage в переводе означает "остаточный урон" и нужен для оптимизации формул урона.

Например, если отряду наносят урон damage, то количество погибающих воинов в отряде и остаточный урон верхнего воина считаются максимально красиво:

Код: Выделить всё
numTroops = (damage + Army->residualDamage) / Army->hitPoints;
residualDamage = (damage + Army->residualDamage) % Army->hitPoints;

Т.е. целая часть и остаток. Если вы знаете, как выполняется инструкция целочисленного деления, то должны понимать всю красоту такого подхода. Целая часть в eax, остаток в edx. Это не просто красиво, но ещё красиво с точки зрения ассемблера, т.е. одна инструкция деления будет возвращать сразу два необходимых параметра.

Пример, имеем 10 Фениксов (100 HP) с остатком здоровья 54 (остаточный урон 100 - 54 = 46). Наносим урон 267. Тогда кол-во Фениксов, которые погибают, равно (267 + 46) / 100 = 3. И остаточный урон верхнего Феникса равен (267 + 46) % 100 = 13. Только после того, как я узнал оригинальное название поля, я понял, настолько это удачное решение.
Последний раз редактировалось AlexSpl 25 июн 2022, 12:12, всего редактировалось 1 раз.
Вернуться к началу

offlineАватара пользователя
Владимир  
Эксперт
Эксперт
 
Сообщения: 1057
Зарегистрирован: 30 окт 2012, 18:37
Пол: Не указан
Награды: 3
Высшая медаль (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (1)
Поблагодарили: 638 раз.

Re: ПАТЧ ТЕ!

Сообщение Владимир » 25 июн 2022, 06:19

Мне вот интересно, почему этот "residualDamage" не обнуляется, когда отряд умирает. Понятно, что в Героях 1 это не важно, но в Героях 2 происходит всё то же самое.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 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)
Поблагодарили: 2185 раз.

Re: ПАТЧ ТЕ!

Сообщение AlexSpl » 25 июн 2022, 12:29

Цитата:
Понятно, что в Героях 1 это не важно, но в Героях 2 происходит всё то же самое.

Не изучал механику воскрешения в Героях 2 подробно. Вы хотите сказать, что при воскрешении отряда после его гибели учитывается остаток здоровья на момент гибели отряда? Например, добиваем 1 Гидру с остаточным уроном 51. И теперь Воскрешение на 50 не может её поднять? А если бы остаточный урон был 49, то Воскрешение работало бы? Если есть разница, то действительно важно обнулять, если нет, то какая разница?
Вернуться к началу

Пред.След.

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

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

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