Вот уже почти год прошёл с момента правок предыдущей статьи. Я наконец-то заставил себя написать продолжение, которое должно было выйти спустя пару месяцев после выхода основной статьи. Поэтому на всякий случай оставляю ссылку на предыдущую часть.
Неидеальные статы
Как я уже неоднократно говорил, как такового идеального соотношения не существует, но нам ничего не мешает стремится к этому идеалу. В предыдущей статье делался очень слабый акцент на вариативности боёв, а если быть точнее, то я вообще ничего про это не сказал.
Напомню, что в предыдущей раз мы с вами пришли к тому, что идеальное соотношение можно вычислить, опираясь на число стат, средний процент решимости и ХП противника. Если вы вобьёте интересующие вас циферки в калькулятор стат, то безусловно вы получите наиболее рациональное распределение при заданных вами числах (вот ссылки на калькуляторы: на сайте; в экселе). Как ни старайся - лучше вы не найдёте, но данные статы будут лучше всего подходить только для заданного вами момента боя. Да, конечно, можно задать некоторые усреднённые значения, которые будут практически идеально себя показывать (особенно в ПВЕ), но не всё так гладко. Ведь эти усреднённые значения нужно ещё как-то задать. Вы когда-нибудь задумывались, какой у вас средний процент решимости в бою, как сильно влияют скачки статов во время боя (крылья, дудка) и когда стоит прожимать бурсты? Всё это оказывает большое влияние на дамаг и требует тщательного анализа. Поэтому давайте попробуем подробно остановиться на каждом из этих пунктов.
Средний процент решимости
Наверное многие из вас замечали, как скачет решимость во время боя. Если после убийства босса в ПВЕ мы с вами откроем ДПС-метр, то мы там скорее всего увидим в графе, предназначенной для средней решимости, число 99 или вообще 100. Но при этом далеко не многие обращают внимание, при каком пуле решимости они наносят дамаг. В предыдущей статье я уже говорил о том, что даже при беспрерывном избиении манекена имеет место быть просадка пула решимости со 100 до 90%, а если быть точнее, то эта просадка происходит каждую секунду и составляет 10% от набранного пула решимости. Но беда тут заключается в том, что одной секунде в Аллодах равен ещё и глобальный кулдаун (ГКД) и на выходе мы получаем игроков, которые первым своим скилом повышают пул до максимума, но к моменту нажатия второго скила пул решимости уже равен 90%. Конечно, данные отклонения не то чтобы сильно влияют на игровой процесс, особенно в свете наличия дотов, турелей, петов и т. д. Но факт остаётся фактом.
Если говорить про ПВП, то тут ситуации могут разниться, но всё-таки выскажу пару мыслей. Давайте представим бой, где ваша решимость скачет от 40 до 80%, а среднее значение составляет 61% (если смотреть по аддону). Думаю будет логично предположить, что до 80% пул решимости будет подниматься после какого-то мощного удара, после которого могут идти как и последующие добивающие удары, так и какие-то слабые скилы, которые нужны только для накопления ресурса. Получается, может выйти так, что когда у нас 61% и больше - мы практически вообще не наносим дамага, чего нельзя сказать о зоне с меньшими значениями пула решимости. Такая же ситуация может быть и в точности до наоборот, но я надеюсь вы поняли основную мысль моих слов.
Вся проблема заключается в том, что все аддоны усредняют пул решимости по времени (как я предполагаю). В то время как нас в первую очередь интересуют значения в непосредственный момент нанесения дамага и количество единиц урона, а все значения между ударами - это просто лишний шум.
В данной ситуации при вычислении среднего процента решимости справедливее всего будет суммировать весь нанесённый дамаг и сравнивать его с дамагом, который мог быть, если бы пул решимости был 100% с учётом количества залитых стат.
Средний процент ХП
Не совсем уверен, что об этом факторе будет справедливо говорить конкретно тут, но так или иначе... Дело заключается в том, что в разные моменты боя, как бы это очевидно ни звучало, у противника разное кол-во ХП, а значит и разный буст от беспощадности. Если во время боя появляются какие-либо усиления, то это вносит некоторые сложности в вычисления. Чтобы стало понятнее, приведу конкретный пример.
Предположим, что у нас имеется усиление на +20% к урону от следующей атаки. У следующей атаки базовый дамаг составляет 100 единиц. Давайте сравним урон с использованием усиления во время, когда у противника 90 и 20% ХП.
Как видим, разница в уроне при базовом уроне в 100 ед. вполне солидная. Если говорить более простым языком, то гораздо выгоднее сходить 30 боёв под медалькой, орденом и улыбкой, чем 10 под медалькой, 10 под орденом и 10 под улыбкой. Конечно, тут ещё следует учитывать не только урон, но и тот фактор, что использование усиления при 90% ХП приведёт к более быстрому накоплению пула беспощадности (а может и не нужно учитывать, я пока ещё сам не знаю ).
Безусловно, приведённый выше пример может скорее наталкивать на вопрос о том, когда нужно использовать бурсты, а не какие статы нужно заливать. Так или иначе в игре присутствует масса усилений, срабатывание которых от нас почти не зависит и под которые мы должны подстраиваться.
Количество стат
Как мне кажется тут и так всем всё понятно. Думаю, ни для кого не секрет, что допустим в каком-то коротеньком бою, где у вас крылья держатся большую часть времени, можно распределять статы из предположения, что у вас уже залито N стат в мастерство. Конечно да, это пожалуй самый тривиальный пример, но он довольно хорошо показывает, что бусты статами нельзя обходить стороной.
Пути решения
В предыдущей статье мы с вами выводили идеальные соотношения двумя разными способами: при помощи функции множителя стат (назовём этот метод аналитическим) и на основании простого перебора стат при помощи программы (численный метод). При решении вышеуказанных проблем можно применять всё те же самые подходы к решению, однако всё не так гладко.
- Если говорить про аналитическое решение, то в прошлый раз нам достаточно просто и точно получилось найти функцию множителя стат. В этот раз я вообще не представляю как может выглядеть данная функция с учётом всех вышеуказанных проблем. Чтобы найти эту функцию нужно думать, а это сложно и не интересно
- Что касается численной модели, то ещё в прошлой раз многие могли заметить, что для нахождения численного решения практически напрочь можно отключить мозг, а все сложности вычислений сбросить на вычислительные мощности компьютера.
Численная модель
На данный момент мне хочется несколько переиначить первостепенную задачу. Теперь моей основной целью будет нахождение не идеального соотношения стат, а нахождение времени, которое потребуется для убийства противника. На вход данной модели будут идти следующие переменные: базовые значения урона от используемых умений, их процент решимости и ХП противника. Данная модель будет составлена для барда. На самом деле данная модель будет работать по незамысловатому принципу: по очерёдности мы будем вычитать из ХП противника урон от умений с учётом всех стат. Подобные расчёты можно найти и в предыдущей статье, в разделе, где мы исследовали средний ХП противника, однако та модель строилась только на беспощадности и одном скиле.
Шаг 1
В первую очередь нам нужно определиться со всеми скилами и вникнуть в их механику работы. К каждому умению нужно подобрать базовые значения дамага (кол-во урона, которое наносится при нулевом значении стат и постоянном числе могущества) и уровни решимости, при которых будет наноситься дамаг.
Дабы не перегружать статью лишней информацией, которой тут и так полно, не буду вдаваться в подробности, как я вычислял средний пул решимости и базовый дамаг, а просто выпишу циферки
- Дисгармония: 43579 и 92% решимости
- Соло: 59305 и 95% решимости
- Танцующий Клинок: 64850 и 90% решимости
- Поющий Клинок (мука): 27791 и 92% решимости
- летающий клинок: 113880 и 95% решимости
- Глубокая Рана: 50758 и 95% решимости (вешается дотом после ЛК)
Хочу отметить, что пул решимости при нанесении дамага может зависеть от того, как быстро или медленно вы прожимаете кнопки, от скорости вашей сети, от скорости обработки информации сервером и т.д.
Шаг 2
После того, как мы с вами разобрались со всеми дотами и скилами, можно приступить к написанию программки. В этот раз мой выбор пал на Lazarus, где я буду в состоянии вывести более наглядные результаты.
На этом шаге следует расписать посекундный дамаг.
- 1-я секунда: ЛК
- 2-я секунда: ТК+ТК
- 3-я секунда: ГР+ТК+ТК
- 4-я секунда: Дис
- 5-я секунда: ГР+Мука(1-й тик)
- 6-я секунда: Мука(2-й тик)
- 7-я секунда: Дис+ГР
- 8-я секунда: Соло+Мука(3-й тик)
- 9-я секунда: Дис+ГР+Мука(4-й тик)
Каждое из этих умений перемножается с функцией множителя стат, который в себе учитывает все внесённые статы. Не хотелось бы останавливаться на том, как выглядит функция множителя стат. Думаю, из предыдущей статьи всё и так понятно.
Шаг 3
Подготовка интерфейса и прочей лабуды... По итогу у меня получилось так:
Шаг 4
Следующий этап - подгонка. Я надеюсь вы не подумали, что я прям так сразу подобрал нужные циферки базового дамага и среднего пула решимости
Шаг 5
Тут я просто хочу похвастаться тем, что у меня сходятся циферки (ну или почти сходятся):
Погрешность
Многие люди могут посмотреть на результаты боя в ДПС-метре и сказать, что больно уж они отличаются, и будут правы. Дело заключается в том, что существуют некоторые факторы, которые очень сильно раскачивают мою модель. Среди них можно выделить:
- Отсутствие базового дамага у Дисгармонии и Соло (даже при нулевом значении стат Дисгармония и Соло будут колебаться в довольно широком диапазоне. В своей модели я взял за базу ср. арф. из собственных тестов).
- Решимость (данная модель построена из предположения, что все скилы наносят дамаг из расчёта заранее прописанного пула решимости. Т. е. если в реальном бою скил будет использован дважды при 100% пуле и восемь раз при пуле в 90%, то в модели умение будет наносится всегда под пулом в 92%).
- Беспощадность (вышеуказанные факторы очень даже хорошо будут раскачивать множитель от беспы).
- Удача (думаю, тут даже объяснения излишни. Госпожа Фортуна всегда крайне непредсказуема).
На раскачку данной системы влияют ещё какие-то непонятные для меня факторы. Даже при постоянном значении пула решимости и хорошо определённом базовом дамаге и отсутствии в статах удачи и беспощадности сумма дамага от скила у меня достигала погрешности порядка 0.05-0.1 %. С чем связана данная погрешность, я так и не смог разобраться. Также ещё хочу отметить, что при наличии удачи модель очень хорошо раскачивается, и при одних и тех же входных числах на выходе мы имеем всё время разные результаты.
Так или иначе, на мой взгляд данная модель способна справляться со своей целью. Также хочу отметить, что пусть модель и построена для конкретного класса, умозаключения, которые мы будем делать, будут справедливы и для остальных.
Тесты с использованием модели
Дабы статья не выглядела как просто рассказ о построении модели, разноображу её этой маленькой главой.
Проверка Удачи
В прошлой статье я сумел показать, что КПД удачи составляет 4% за каждые 100 стат. Проверить это очень легко. У барда Господство, как и удача, даёт 4% за каждые 100 стат. Это означает, что 500 стат в господстве эквивалентны 500 статам в удаче.
Хочется отметить, что результат картинки справа получился не с первого раза. Потыкав кнопку "Рассчитать" около минуты я получал результаты в диапазоне от 88 до 94 секунд.
Прожатие бурстов
Для того, чтобы узнать, когда выгоднее прожимать бурсты, в данной модели нужно будет добавить пару строк.
Выделенные числа на скриншоте обозначают, что будет прожато умение на +100% к дамагу в момент времени 0 сек. и это усиление будет действовать ровно 10 сек. При заданных числах противник будет убит за 1013 сек. Теперь давайте посмотрим на скорость убийства, если мы прожмём бурст ближе к концу боя в момент времени 900 сек.
И как мы видим несколько изменились числа в ДПС-метре, однако время убийства моба осталось тем же. На самом деле результаты лично для меня получились несколько неожиданными. В этом подпункте я планировал привести кучу графиков зависимости времени убийства от момента прожатия бурста, однако что-то пошло не по плану и поэтому я вынужден констатировать следующее:
Ну или более простыми словами: нет разницы, когда вы будете прожимать буст. Однако, хочу заметить, что этот факт не означает, что усиления можно беспорядочно прожимать. Не стоит забывать о том факте, что все бусты следует прожимать в один и тотже момент времени для того, чтобы суммарный процент усиления был максимален. Хотя, насколько я знаю, практически все так и делают.
Для скептиков приведу следующее равенство, которое, пусть и не строгое, но показывает справедливость вышесказанного утверждения
$$
\begin{aligned}
& X\left[1+\text { КПД }\left(100-\frac{H P-0}{H P} 100\right)\right]=X \\
& X+X\left[1+\text { КПД }\left(100-\frac{H P-X}{H P} 100\right)\right] 1.2=1.2 X+X\left[1+\text { КПД }\left(100-\frac{H P-1.2 X}{H P} 100\right)\right]
\end{aligned}
$$
Раскроем квадратные скобки, разделим всё на Х и вынесем 100 из круглых скобок
$$
1+1.2+120 \text { КПД }\left(1-\frac{H P-X}{H P}\right)=1.2+1+100 \text { КПД }\left(1-\frac{H P-1.2 X}{H P}\right)
$$
Разделим на КПД и разобьём дроби на суммы
$$
\begin{aligned}
& 120\left(1-\frac{H P}{H P}+\frac{X}{H P}\right)=100\left(1-\frac{H P}{H P}+\frac{1.2 X}{H P}\right) \\
& 120 \frac{X}{H P}=100 \frac{1.2 X}{H P}
\end{aligned}
$$
Использование умений на статы
Когда вы уже раскинули все статы, в бою уже не важно, когда у вас сработали крылья или когда вы прожали умение на + к господству, т.к. любой бонус к стату можно представить в виде использования умения на +N% к дамагу (наподобие умений мощь и мелодии войны). Так можно сказать про все подобные скилы, кроме умений, которые дают беспощадность. На данный момент я знаю одно такое умение: Гимн Победы или Мастер План сапортов (или дудки сапортов), которые дают по +70 к мастерке, решке и беспощадности. Связано это с нелинейным возрастанием беспощадности, о которой мы говорили в предыдущей статье. Однако разница во времени прожатия будет столь минимальной, что будет практически не заметна и вряд ли будет превышать 1 секунду. Также следует отметить, что при параллельном использовании дополнительных бустов разница во времени будет увеличиваться.
Что касается того, какие статы нужно залить с учётом появления доп. стат во время боя - это уже немного другой вопрос, который можно решить с использованием калькулятора стат, основанном на данной модели. Этот калькулятор будет похож на предыдущие, с той разностью, что тут критерием отбора будет не максимальный множитель стат, а минимальное время убийства.
Заключение
В завершение своего обзора хочу сказать, что построенная модель позволяет решить очень многие проблемы, связанные с расчётом статов (включая проблему с уникальностью господства), затрачивая при этом минимум времени и моих нервных клеток. Надеюсь, что данная статья помогла кому-нибудь приблизиться к пониманию стат.
На этом у меня всё. До новых встреч!
- 3
- 2
- 1
Рекомендуемые комментарии