Проектирование боевой системы: как гейм-дизайнеру рассчитать основы
С чего следует начинать работу над боевой системой, а также, какие формулы использовать, — рассказал Константин Сахнов, основатель инди-студии Vengeance Games и автор курса «Основы гейм-дизайна».
Одна из игр Vengeance Games
Константин Сахнов
Терминология
Для начала определимся с терминами.
Боевая система — игровая механика сравнения двух сущностей для определения победителя.
Самый простой способ что-то сравнить — сопоставить числа (в нашем случае — выраженные в числах параметры сущностей).
У кого число больше, тот и победил.
Давайте назовем это число мощью (или боевой мощью).
Мощь — единая величина, характеризующая силу сражающегося субъекта.
Вот только, если боевые механики сводились бы исключительно к сравнению двух чисел, в них вряд ли было бы интересно играть. Поэтому гейм-дизайнеры значительно усложняют подобные систем.
Например, разработчики MMORPG делают так, что при сражении двух персонажей победа более сильного героя не «гарантирована», а «более вероятна».
Дело в том, что в расчет исхода боя добавляют дополнительные переменные:
- характеристики персонажа;
- навыки игрока;
- случайность.
Гейм-дизайнеры их не только добавляют. При настройке боевой системы (и в целом в зависимости от того, какого она типа) они также определяют их степень влияния на результат.
Условно, чем важнее случайность, тем ближе игра к азартным развлечениям. Чем важнее умения игрока, тем потенциально ближе проект может оказаться к киберспортивным дисциплинам.
В итоге боевую систему любой игры можно представить как точку в условном треугольнике, где каждая из вершин представляет собой одну из описанных переменных.
Влияние и учет случайности и навыков игрока на шанс победы — это отдельная тема для обсуждения. Сейчас же мы остановимся на характеристиках.
Когда характеристика одна — посчитать мощь просто, но обычно боевая система учитывает множество параметров.
Посчитать мощь из характеристик — наша основная задача в рамках этого материала.
Но, помним, что мощь, собранная из характеристик, не определяет исход боя на 100%. Скорее, мы говорим о том, что на бесконечном количестве итераций игрок с большей мощью победит других игроков с меньшей мощью и разными скиллами с большей вероятностью.
Основная формула расчета боевой мощи
Обозначим мощь персонажа как P. Тогда условие большей вероятности победы игрока 1 над игроком 2 будет выглядеть так:
Формула 1
Это база. Те самые два простых числа, о которых мы с вами говорили в самом начале.
Только ведь в играх все ими не исчерпывается, в них, как минимум, у персонажей есть здоровье и то, какой урон они друг другу наносят.
Так что давайте введем две новые характеристики:
- H — эффективный запас здоровья персонажа
- D — эффективный урон персонажа.
Эффективными мы называем их потому, что к ним каким-то пока неизвестным для нас образом будут сведены все остальные боевые характеристики. Они учитывают все другие параметры, примененные эффекты и модификаторы, но не включают навыки игрока.
Получается, раз у нас есть две основные характеристики и мощь, которая по данному нами определению включает в себя все, кроме навыков игрока, то по методу базисных характеристик может утверждать, что:
Формула 2
Простейшая модель
Рассмотрим случай сражения двух персонажей, игроки которых имеют равные навыки.
Тогда игрок 1 имеет H1, D1 > 0
Тогда игрок 2 имеет H2, D2 > 0
Побеждает тот, кто своим уроном первым доведет запас здоровья противника до нуля. То есть:
Формула 3
Т.к. все величины тут положительные, неравенство можно переписать, как:
Формула 4
И тут мы вспоминаем формулу 1. Получается, что в самом простом случае мощь персонажа — это произведение его эффективного запаса здоровья на эффективный урон.
Формула 5
Преобразование характеристик
Пора разобраться с эффективными характеристиками и прийти к чему-то более привычному.
Наша задача — определить список характеристик игрока и свести их все к базовым:
- эффективному H;
- эффективному D.
Для этого удобно использовать таблицы конвертации:
Таблица 1
Пусть у нас будет 4 производных характеристики:
- сила;
- ловкость;
- интеллект;
- выносливость.
Для каждой обозначим, на какую базовую характеристику они влияют (показано в Таблице 1).
Кстати, преобразование характеристик — вовсе не самое муторное, что есть в боевых системах. На своих лекциях в WN Academy я рассказываю про то, как посчитать придуманные вами способности, боевую систему стратегий с сотнями юнитов и другие прикольные фишки, касающиеся не только боевки, но и всех аспектов гейм-дизайна.
Итак, вернемся к теме. Обратите внимание, я добавил в таблицу Crit и Dodge. Но эти параметры вовсе не участвуют в формуле мощи. Это значит, что мы также будем должны свести их к эффективным H и D.
Как посчитать, сколько должна давать каждая характеристика?
- Задать масштаб единиц: сколько HP и DMG будет давать 1 характеристика.
- Задать динамику боя N: сколько ходов, секунд, ударов и т.д. нужно для победы.
Чем больше N, тем более медленный получится бой.
Формула 6
Пусть N = 5, а масштаб характеристик – k1 = 2. Тогда берем характеристику, конвертирующуюся только в HP или DMG, в нашем случае это выносливость:
Формула 7
Базовое условие эквивалентности вклада всех характеристик в мощь:
Рисунок 1
Тогда сила суммарно может дать 2 единицы урона или 10 единиц запаса здоровья. Пусть сила дает 1,5 урона, тогда коэффициент при запасе здоровья будет:
Формула 8
Значит силу можно расписать как:
Формула 9
Тогда исходная таблица 1 будет выглядеть следующим образом:
Таблица 2
Аналогичным способом посчитаем остальные характеристики.
Теперь вернемся к Crit и Dodge. К примеру, Crit можно учесть как:
Формула 10
Где D0 — изначальный урон до учета крита, а CritFactor — коэффициент увеличения урона при крите. Обычно это х2.
***
Во многом боевая система — это история про формулы, про расчеты результатов боя. Без них не обойтись.
Однако важно помнить, что боевку исключительно к цифрам сводить нельзя. Это и сама механика с управлением, динамикой, тактильностью, многообразием сущностей.
Визуализация сражения, анимации и VFX — это тоже боевка, как и многое, многое другое.
Рисунок 2
Но главное: боевка — это фан. Механика боя — это то, с чем игроку предстоит сталкиваться в игре множество раз. И совершенно непростительно, если она будет навевать тоску и отталкивать своей бесполезностью.