Рассылка «Heroes: Новые Идеи»

  «Мой профиль»  

Уважаемые Посетители!

...

Alex_soldier
(alex_soldier@mail.ru)
Зона Поиск Шедевры Творчество Самоделки Сокровищница

ВЫПУСК 57: Формула победы

[ Рассылка | Общее | Расы | Юниты | Магия | Науки | Битва | Артефакты | Постройки | Карта ]

Сегодняшняя тема выглядит, на первый взгляд, несущественной, но ведь ради нее (позиции в галерее славы) игроки проходят примерно каждый второй сценарий! Даже я, обычно не уделяющий внимания конечному счету, частенько мучил ту или иную карту, пытаясь пройти ее как можно скорее!

Здесь-то и проявляется главная несправедливость жизни - на конечный счет влияют всего несколько параметров: сложность карты, сложность игры, количество дней. При этом, игрок может задать только второй параметр, а третий - как получится. Так было во Вторых Герояв, в Третьих, по-моему, тоже ничего не изменилось. Про Четвертых не знаю.

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

Редко, очень редко, когда кто-то приближается к отметке 500 баллов в рейтинге. На моей памяти такого вообще не было. Разве что пройтись рашем на маленькой карте с максимальной сложностью. Но ведь хочется же более объективной оценки - возможности получить ранг Черного Дракона (HMM2) или Архангела (HMM3), даже если играл на базовой сложности, но очень истово!

Первое, что приходит в голову - это сохранить существующую систему оценок, и просто выполнить пересчет нормы длительности прохождения для каждой сложности. Т.е. автор создал карту, а дальше - компьютеру необходимо оценить ее проходимость (порою даже на S-ке такого нагромоздят, что быстрее пройти иную L-ку).

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

Потом из полученных результатов компьютер найдет средне-взвешенное значение длительности и сам назначит его для данной сложности карты. Такая оценка может оказаться более точной, чем субъективное мнение автора. Разумеется, если специально не будет иметь место подгон рейтинга (типа, тормозить, пропускать ходы, увеличивать длительность).

Такой подход имеет право на существование, но я склоняюсь все же к другому: расширить список ключевых характеристик и качественно оценить все достижения игрока. Вот что бы я стал учитывать:
A. Сложность карты - пусть от 0.5 до 2.0
B. Сложность игры - пусть тоже от 0.5 до 2.0
C. Монстров уничтожено - отрядов в сумме по всей карте
D. Золото - накопленная наличка
E. Дневной доход - сколько вы зарабатываете в день от всех золотых шахт, артефактов, городов и экономистов (мельницы, сокровищницы и прочие разовые источники - не в счет)
F. Ресурсы - сумма по всем неденежным
G. Дневная добыча - сколько вы добываете в день со всех шахт, артефактов и героев (мельницы опять не в счет)
H. Ваши артефакты - все, что накопили к финалу
I. Не ваши артефакты - оставшиеся на карте или у врага (в минус)
J. Заклинания - в сумме изученные всеми вашими живыми героями
K. Количество ваших героев - опять-таки живых и здоровых
L. Ваших героев повержено - за всю игру с учетом ваших побегов
M. Вражеских героев побеждено - за всю игру с учетом их побегов
N. Количество дней - а как же без этого?
O. Количество построек в ваших городах и замках - в сумме
P. Процентов карты открыто - от 0 до 100 баллов
Q. Количество городов и замков под вашим флагом
R. Не ваши города и замки - оставшиеся неподконтрольными (в минус)
S. HP всех войск - сумма по всем монстрам в вашей армии
T. Прирост HP в неделю - сумма по всем вашим замкам и монстрятникам на карте
V. Уровень прокаченных наук - сумма по всем вашим героям
U. . . . . . . . . . . . - что-то еще

В итоге, получается следующая формула, учитывающая возможные максимумы по каждому из перечисленных критериев:
Ball = (A+B)/N * ( C + P + (M-L) + (Q-R) + (J+V+H-I)/K + D/(E+1000) + S/(T+100) + F/(G+10) + O/(Q+1) ) * Kкорр

Полученный результат весьма неоднозначен, он может и не дотягивать до заявленного максимума = 1000, но его еще предстоит умножить на какой-либо корректирующий коэффициент.

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

И, наконец, о рангах (от крестьянина до архангела). Во-первых, количество градаций зависит от количества типов юнитов в игре. А как вы заметили на примере HMM 3.5 WoG, оно имеет тенденцию к увеличению. Но для простоты будем считать, что оно фиксировано и равно N.

Для удобства возьмем шкалу баллов 0...1000. Тогда простейшая схема распределения рангов - линейная:
Rang = Ball * N / 1000 = 0...N - номер соответствующего юнита

Но и тут вскрываются неоднозначности. Во-первых, округления после деления. У одних юнитов границы будут чуть больше, у других - чуть меньше. Не совсем справедливо. Во-вторых, а что если на какой-либо карте игрок умудриться набрать балл значительно больше тысячи? Произойдет переполнение ранга - ошибка. Конечно, можно поставить "заглушку" вида:
Если (Rang > N), то сделать Rang = N

Это правильный и логичный выход, но мне долгое время не давало покоя желание подобрать формулу, не требующую подобной "хирургической коррекции".

На ум приходит функция ARCTAN(X) - ее график "зажат" на интервале Y=[-pi/2 ; pi/2]. Если ее немного подкорректировать: приподнять над осью OX, растянуть до N в высоту и подвинуть немного вправо, то получится плавная возрастающая функция, выходящая из нуля и бесконечно стремящаяся к N (как раз достигнет с учетом округления).

Попробую вчерне изобразить ее график (для 20 градаций ранга):

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * *
* * * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * *
* * * *
*

По горизонтали - баллы от 0 до 1000 (а вообще - до бесконечности), по вертикали - ранги от 0 до N = 19. Причем наибольший интерес вызывает середина интервала - там даже незначительное различие в баллах может сильно повлиять на итоговый ранг. А ближе к обоим краям ситуация стабилизируется, там позиция больше определяется "талантом" игрока (как в плюс, так и в минус)!

Обсудить выпуск в форуме  >>>

Список выпусков  > Следующий выпуск  >>>

∙ Форумы ∙
∙ Космос ∙
∙ Игры ∙
∙ Heroes ∙
∙ WEB ∙
∙ AML ∙
∙ Delphi ∙
© Copyright 1998 – 2009 by Alex_soldier
Сайт сделан по технологии AML

РАЗДЕЛЫ САЙТА

Главная страница Мира Идей
Лаборатория WEB-мастера
Уголок Программиста
Игровая Зона
Статьи о Космосе и Вселенной

РАССЫЛКИ САЙТА
(Content.Mail.Ru)

Обзор интересных рассылок

Web-мастерство для каждого

Космос: Новости Вселенной

Чего нам не хватает в играх?

Heroes: только Новые Идеи

HTML, CSS, JS в примерах

Самые-самые убойные
анекдоты сети




Получить архивы на e-mail (RAR ~ 2 Мб)