Объявления

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

Моды

Обсуждаем, делимся впечатлениями, новой информацией
offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5538
Зарегистрирован: 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)
Поблагодарили: 2155 раз.

Re: Моды

Сообщение AlexSpl » 22 июн 2012, 00:52

Готова альфа автопатчера. Работает для Героев 2.1 от Буки. Пока для редактирования доступна только вкладка "Существа".

1. Выбираем исполняемый файл HMM2PL.exe: Файл -> Открыть...
2. Меняем характеристики
3. Сохраняем: Файл -> Сохранить как...

При сохранении файла характеристики автоматически корректируются, если не попадают в допустимый диапазон. С характеристикой "Свойства" осторожнее: это, на самом деле, битовый набор флагов. Например, если поставить крестьянам свойство "Летающий отряд" (4 = 00000100), то в начале боя игра завершится ошибкой, т.к. для стреляющих крестьян не предусмотрено соответствующих ресурсов.

Universal Balance Patcher
Вернуться к началу

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

Re: Моды

Сообщение AlexSpl » 22 июн 2012, 07:28

Обратите также внимание на параметр "AI". Он используется исключительно компьютерным AI. Не разбирался в тонкостях, но, похоже, это что-то вроде эффективности юнита с учётом его стоимости. Например, у паладина AI = 78, тогда как у крестоносца AI = 58 только. Полагаю, этот параметр влияет на то, как комп формирует армию. В целом, чем лучше юнит, тем больше величина "AI". Но бывают и исключения, как в случае с паладином и его улучшением.

Есть гипотеза, что AI примерно равен удесятерённому отношению рейтинга существа к его стоимости. Так, для крестьян AI[approx.] = 330/20 = 16.5, для паладина - AI[approx.] = 4704 * 10 / 600 = 78.4, для крестоносца - AI[approx.] = 5822 * 10 / 1000 = 58.22. Заметьте, что если округлить все эти значения, получим точные значения AI, что только подтвержает, что AI - это отношение "абсолютная сила / стоимость" в некотором масштабе. Но такая формула справедлива не для всех существ. Пример тому титаны: AI[approx.] = 22933 * 10 / 5000 = 45.866, в то время как реальный "AI" титанов - 79. Возможно, в формуле не хватает чего-то, а возможно, рейтинг/стоимость титана корректировались вручную.

Внимание! Объявляется конкурс на лучшую аппроксимацию рейтинга существ :D Необходимо найти наилучшее приближение рейтинга в зависимости от других параметров юнита, т.е. получить аппроксимирующую функцию Rating = f(Attack, Defense, MinDmg, MaxDmg, ...), которая давала бы значения рейтинга максимально близкие к реальным.
Вернуться к началу

offlineQwerty  
Подмастерье
Подмастерье
 
Сообщения: 198
Зарегистрирован: 20 янв 2012, 12:04
Пол: Не указан
Награды: 3
Наградной знак (3)
Поблагодарили: 67 раз.

Re: Моды

Сообщение Qwerty » 22 июн 2012, 09:58

Да, думал над этим, но именно этой задачей заняться в уме по пути на/с работы не получается - я помню характеристики юнитов, а вот рейтинг лишь очень очень приблизительно.
На работе полный завал, но попытаюсь придумать.
Ключ в гномах. Проблема в том, что безабилитьные войска заканчиваются на чемпионах. Буду думать пока что над безаибилтными пешеходами, если найду - дальше будем взвешивать абилити.
PS. Надо сравнить конников и мечников, оттуда ещё формула должна получаться, не только из гномов. Буду думать, но здесь математики собрались посильнее меня видимо.
PPS. Надо ещё минотавров посравнивать с конниками/чемпионами, оттуда вроде тоже что-то должно получиться.
Вернуться к началу

offlineQwerty  
Подмастерье
Подмастерье
 
Сообщения: 198
Зарегистрирован: 20 янв 2012, 12:04
Пол: Не указан
Награды: 3
Наградной знак (3)
Поблагодарили: 67 раз.

Re: Моды

Сообщение Qwerty » 22 июн 2012, 10:15

1. Одна единица в сумме параметров "весит" больше, чем 1 единица разницы в скорости.
Вернуться к началу

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

Re: Моды

Сообщение AlexSpl » 22 июн 2012, 12:39

"Свойства" юнита

Младшее слово
00000000 00000000 = 0 - обычный юнит
00000000 00000001 = 1 - двухклеточный юнит
00000000 00000010 = 2 - летающий юнит
00000000 00000100 = 4 - стреляющий юнит
00000000 00001000 = 8 - юнит с продолженной атакой
00000000 00010000 = 16 - юнит без права хода, "юнит-препятствие", после боя исчезает
00000000 00100000 = 32 - неизвестно/не используется
00000000 01000000 = 64 - неизвестно/не используется
00000000 10000000 = 128 - неизвестно/не используется
00000001 00000000 = 256 - фантом
00000010 00000000 = 512 - юнит приобретает красный оттенок (возможно, используется как часть заклинания "Жажда крови")
00000100 00000000 = 1024 - нежить
00001000 00000000 = 2048 - неизвестно/не используется
00010000 00000000 = 4096 - неизвестно/не используется
00100000 00000000 = 8192 - юнит приобретает коричневый оттенок (для чего это нужно, неизвестно)
01000000 00000000 = 16384 - юнит приобретает серый оттенок (графический эффект "Окаменения")
10000000 00000000 = 32768 - неизвестно/не используется

Старшее слово
Возможно, здесь хранятся эффекты заклинаний или оно даже не используется.
Вернуться к началу

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

Re: Моды

Сообщение AlexSpl » 23 июн 2012, 19:41

Дописал автопатчер. Контроль за вводимыми значениями должен осуществляться пользователем.

Скачать UBP 1.1

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

offlineQwerty  
Подмастерье
Подмастерье
 
Сообщения: 198
Зарегистрирован: 20 янв 2012, 12:04
Пол: Не указан
Награды: 3
Наградной знак (3)
Поблагодарили: 67 раз.

Re: Моды

Сообщение Qwerty » 26 июн 2012, 08:08

Продолжение.

Зомби.
Медленные, с маленькой для своего уровня защитой, небольшим уроном. Юнит, который чаще всего используется лишь потому, что приходит со стартовым героем. Нужно ли его усиливать? Не факт. Дело в том, что пехота в замке некромантов представлена суперотрядом скелетов, да и третий уровень вполне приличный. ИМХО здесь речь должна идти скорее о коррекции стоимости, чем об изменениях существа.
Зомби грейда. Когда мы говорим об этом юните, прежде всего думаем о штурме кладбища. В связи с этим опять же видимо имеет смысл скорее корректировать стоимость существа, а не его параметры.
Гномы. Гномы вытянули великое множество сражений. Приём "ставим 5 негрейженных гномов по 1 и армагеддон" стал в достаточной мере стандартным. Гномы являются как хорошим защитником для стрелков, так и отличной пробивной силой против быстрых летающих отрядов. Насколько имеет смысл здесь что-то менять? Видимо всё же с учётом очень медленной скорости стоимость несколько завышена.
Абгрейженные гномы. Отличный для своего уровня юнит, превосходная пехота. По поводу стоимости есть сомнения, можно также подумать о стоимости постройки абгрейда.
Гаргулья. Ещё один ярко выраженный дисбалансный юнит. При небольшой атаке и уроне гаргулья характеризуется иными плюсами. Прежде всего это скорость в сочетании с полётом. Гаргулья является непревзойдённым тактическим оружием во вторых героях, о чём Qwerty давно уже хочет написать материал "Песнь о гаргулье". Помимо этого гаргулья является рекордсменом своего уровня по защите - 7. Я бы сказал, что такой показатель защиты более характерен для 4 уровня войск. Соответственно, перед нами возникают следующие вопросы. Нужно ли снизить защиту хотя бы до 6, нужно ли менять стоимость юнита, нужно ли менять стоимость отстройки.
В целом второй уровень характеризуется атакой 5, защитой 4, уроном 2-4, количеством жизней для пешеходов 20, летунов 15, стрелков 10.

Уровень 3.
Волки. Легко строющийся, недорогой, быстрый юнит ярко выраженной атакующей направленности. Атака 6. защита 2, причём при двойной атаке - это просто квинтэссенция варвара. Я бы предложил не делать с ним ничего - лёгкость отстройки компенсируется тяжестью отстройки высших юнитов, невысокая стоимость - это единственный спорный вопрос.
Мумии. Хороший юнит. Гармоничная стоимость, гармоничный параметры и скорость.
Мумии грейда. Тоже хороший юнит, вносить изменения в который явно излишне.
Грифон. Отличный юнит. Лёгкость отстройки, возможно чрезмерная. Параметры юнита изменять смысла нет, а вот 5-10 дерева для отстройки - вопрос для обсуждения.
Копейщики. Дисбалансный юнит, якобы соответствующий идеологии рыцарского замка. Да, защита 9 (как у костяного дракона) - это в духе идеологии. Атака 5. Ну честно говоря, это не слишком много. 15 жизней. В сочетании с 200 золотых это внушает определённую печаль. Урон 3-4. А вот это, в сочетании с параметром атаки просто навевает тоску. Здесь явно нужно что-то делать. А теперь разберёмся с идеологией замка. Да, это замок защитный. Но и в атаке он должен быть не последним, это ясно хотя бы исходя из вероятности прокачки рыцаря. Далее. Что может быть гармоничнее для рыцаря, чем благословение? А при уроне 3-4 благословение даёт не самый большой эффект. Таким образом, нужно изменить как минимум урон, а как максимум атаку, и ещё количество здоровья. да и стоимость можно немного подкорректировать.
Копейщики грейда. То же самое. Дорогой юнит с небольшим уроном. Изменения надо будет принимать в комплексе с копейщиками.
Голем. Яркий юнит. Колоссальная защита 10, 50% от молнии и луча льда, 30 жизней ... 5 атаки при уроне 4-5 (малоэффективно проклятие) не портят картину. Единственный нюанс - немного дороговатая отстройка в плане ресурсов, и всё же для скорости 2 чуть-чуть дороговатая цена ... Надо думать.
Голем грейда. Юнит практически без слабых мест, идеальный защитник стрелков, убийца летунов. Оригинальная стоимость абгрейда в плане ресурсов (единственный юнит третьего уровня, на отстройку которого требуется "дорогой" ресурс - ртуть). С этим юнитом не надо делать ничего - ИМХО.
Эльф. Хилый и дорогой, правда стреляющий 2 раза. Пробивная сила ниже, чем у лучников.
Гранд-эльф. Пробивная сила как у лучников. Явно что-то не так. Видимо количество жизней здесь можно и не трогать, а вот а с атакой либо уроном нужно что-то делать.
В целом уровень характеризуется 6 атаки, 6 защиты, урон 4-5, количество жизней для пешеходов 25-30, для летунов 25, для стрелков 15. Необходимость в увеличении количества жизней у копейщиков достаточно очевидна.

Продолжение следует ...
Вернуться к началу

offlineQwerty  
Подмастерье
Подмастерье
 
Сообщения: 198
Зарегистрирован: 20 янв 2012, 12:04
Пол: Не указан
Награды: 3
Наградной знак (3)
Поблагодарили: 67 раз.

Re: Моды

Сообщение Qwerty » 28 июн 2012, 11:51

Уже после рассмотрения первых трёх уровней войск мы можем сделать следующие выводы.
1. Урон от стрелков в целом несколько выше, чем у остальных отрядов.
2. Количество жизней у летунов немного ниже, чем у пешеходов.
3. Количество жизней у стрелков заметно ниже, чем у пешеходов.

Данные выводы действительны в основном в отношении халфингов, лучников, эльфов и гранд-эльфов. С другой стороны, кентавры ясно дают понять, что исключений будет значительное количество.
Также выявились недостаточно полезные юниты, такие как крестьяне, негрейженные зомби, стрелки, орки.

Уровень 4.
Ну это просто поле чудес.
Мечник. 25 жизней для 4 уровня войск - это просто смешно. Урон кстати тоже не воодушевляет. Защита 9 не может не радовать, к этому вопросу мы ещё вернёмся.
Мастер мечник. Здесь картина намного лучше, 30 жизней хоть как-то похоже на что-то, хотя всё равно маловато. Опять же к этому вопросу вернёмся позже.
Рухи. Наконец-то титанический замок в компенсацию за жёсткие цены и специфические полубалансные юниты получил идеальный гармоничный юнит с отличной стоимостью.
Огры. В общем-то больших вопросов нет: нормальные параметры при очень низкой скорости. Стоимость вроде как немного занижена (всё же сумма параметров 14), но и использование их довольно-таки ограничено.
Огры-лорды. 60 жизней для 4 уровня - это перебор. Урон в соответствии с уровнем, а вот прирост в соответствии с 3 уровнем:))). Зачем это было сделано, разберём позже, но всё же отметим, что это явно точка дисбаланса.
Друиды. Стрелок как стрелок - малохеллсовый, дорогой, с низкой защитой. Отмечу, что в связи с требованиями ртути к абгрейду лично я достаточно часто использую эти войска без абгрейда
Друиды грейда. Прежде всего отметим, что улучшения здесь не слишком велики. Да, увеличивается защита и скорость. Но бесшабашное войско из грандэльфов, фениксов и апдруидов отличается крайне малой стойкостью в прямом контакте, а вот скорость единорогов и друидов одинакова. А в остальном ... Нормальный стрелок для своего уровня, кстати, довольно гармоничный, хотя и дорогой.
Минотавры. Великолепная сумма параметров 17 сочетается с уроном 5-10, это показатель 5 уровня. Здоровье 35 в сочетании с вышеизложенным делает этого юнита больше похожим на варварский.
Короли минотавров. Шикарный быстрый 45хеллсовый юнит, под благом разрывающий противников в клочья.
Вампир. Хороший юнит. Честно говоря, мне даже немного жаль, что он так редко используется.
ВАмпир-лорд. Здравствуй, мистер-дисбаланс! История здесь такова. Вроде и характеристики в принципе средние. Вроде и стоимость высокая. Но всё дело в абилити. А реальная эффективность абилити очень серьёзно зависит от количества вампиров-лордов, сила их возрастает нелинейно.

В целом четвёртый уровень характеризуется 7-8 атакой, 7 защитой, количество жизней у пешеходов ... Каким? Как считать здесь? Должно быть у негрейженных 35, у грейженных 40. А на деле у грейженных не совсем 40 получается ... Стрелки 25, здесь всё понятно, летуны 40, что в общем-то многовато (30-35 было бы в самый раз), ну да ладно, видимо это компенсация за отсутствие летунов в 5 уровне.
Ну и конечно множество дисбаланса.

Уровень 5.
Кавалерист. Дешёвый юнит, с нормальными в общем-то параметрами (сумма параметров 19, урон 5-10). Но 30 здоровья никак не соответствует уровню.
Чемпион. Тоже дешёвый юнит, у которого немножко маловатый урон компенсируется ультрабыстрой скоростью.
Единорог. Неплохое абилити, отличный урон, особенно под благом. Об остальном поговорим позже.
Гидра. Юнит яркий, тормозной, с массовым безответным ударом, непревзойдённый защитник замка, с 2-3 простыми заклинаниями первого уровня становится мегомонстром, гроза летунов, приоритетная цель для боевого телепорта. Помимо всего этого ещё и 75 жизней. ВОзникает чувство, будто что-то не так, обсудим совместно.
Далее целая группа стрелков.
Маги. Сочетание 11 атаки с уроном 7-9 при 30 жизнях и защите 7 сразу же вызывает воспоминание о лучниках и прочих хоббитах.
Архимаги. 12 атаки при 35 жизнях - отличный и типичный стрелок.
Лич. Абилити массового удара при хорошем уроне 8-10 - штука интересная. Здоровья 25:)), а защита 12. Скоро обсудим.
Архилич. 35 здоровья, защита 13!!! (больше лишь у титанов и чёрных драконов).

сорри, работа завал, продолжение следует ...
Вернуться к началу

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

Re: Моды

Сообщение AlexSpl » 28 июн 2012, 13:08

Аппроксимация рейтинга
Найти красивую формулу для расчёта рейтинга существ, которая давала бы приемлемые погрешности, сложно. Мы даже не знаем, какие именно параметры существ учитываются, а какие нет, при расчёте их рейтинга. В исходном коде такой формулы, разумеется, нет (все рейтинги прописаны таблично), поэтому искать её там бесполезно. Выйти на связь с программистом NWC, который занимался составлением этой таблицы, тоже уже практически нереально. Остаётся два метода: гадать и подбирать формулу вручную или на основе уже существующих значений рейтинга найти аппроксимирующую функцию, которая давала бы приемлемые погрешности. Первый метод требует огромного количества времени, вторичного навыка "Орлиный глаз" и удачи +3, зато даст красивую формулу (в идеале - ту, согласно которой составлялась таблица рейтингов). Второй метод, предполагающий подключение одного из существующих алгоритмов многомерной интерполяции, никогда не даст красивую формулу, но зато мы получим возможность приближённо находить рейтинги для тех существ, параметры которых подверглись изменению. В существующих патчах рейтинг существ не затрагивался, в то время как менялись параметры, что есть неправильно. С помощью интерполяции мы сможем рассчитать новый рейтинг для изменённых существ, таким образом не нарушая механики игры.

Одним из простейших методов многомерной интерполяции является метод Шепарда:

Изображение

Определившись с размерностью пространства, мы получим возможность рассчитывать рейтинг для существ с изменёнными характеристиками. Для начала можно рассмотреть 7-мерное пространство характеристик: атака, защита, мин. урон, макс. урон, здоровье, скорость, рейтинг или даже 6-мерное: атака, защита, средний урон, здоровье, скорость, рейтинг.

У нас уже есть 66 "точек" (существ) в этом пространстве, для которых значения рейтинга уже известны. Значения рейтинга для любого существа с изменёнными характеристиками будут получаться путём их подстановки в аппроксимирующую функцию. Планирую включить расчёт рейтинга путём многомерной интерполяции методом Шепарда в новую версию UBP, чтобы при изменении характеристик существ автоматически менялся и их рейтинг.
Вернуться к началу

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

Re: Моды

Сообщение AlexSpl » 28 июн 2012, 14:37

Если же говорить о точной формуле, я бы отталкивался от урона существа при атаке другого существа с защитой 0:

(1 + 0.1 * Att) * (MinDmg + MaxDmg) / 2,

т.е. связал бы Атаку со Средним уроном, а Защиту со Здоровьем. После чего можно было учесть и остальные характеристики, такие как скорость, кол-во выстрелов и т.п.

Так, для Крестьян, (1 + 0.1 * Att) * (MinDmg + MaxDmg) / 2 = (1 + 0.1 * 1) * (1 + 1) / 2 = 1.1.
Вернуться к началу

Пред.След.

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

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

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

cron