По опыту, многие начинающие геймдизайнеры избегают работы с балансом, словно это черная магия или нужно иметь серьезное математическое образование. Специалисты поопытней уже авторитетно заявляют, что математика не нужна.
В первую очередь надо разбираться в самих играх, а потом уже уметь что-то считать. Поэтому я расскажу о работе с балансом без использования математики — на палках урона посмотрим, как уравновесить силу оружия, чем танк отличается от разбойника, и как точки спавна влияют на винрейт.
Статья будет полезна тем, кому надо заняться балансом, но не знает с чего начать, а также начинающим геймдизайнерам, которые будут выбирать специализацию. Ну и всем, кто просто интересуется, чем занимаются ГД, когда не придумывают новые виды лутбоксов.
Не будем слишком глубоко вдаваться в детали конкретных расчетов. В интернете достаточно практических советов: есть цикл статей по балансу на Манжетах ГД, в блоге нашего продюсера Анатолия Шестова есть переведенные лекции Яна Шрайбера. Там можно найти ответы на многие вопросы, если они появятся по ходу чтения. Советую, если не пугают обилие цифр и расчеты.
А я расскажу, куда смотреть и на что обращать внимание. Потому что точность расчетов — дело техники и опыта. Главное начать.
Основа основ
В любой игре со сражениями есть боевые единицы. Юниты в RTS, персонажи в RPG, противники в шутерах. У них есть боевые параметры, которые зависят от целей дизайна: хотим ли мы сделать единицу пушечным мясом, эпическим противником или еще чем-то.
Так как мы говорим о боях, то у юнитов должна быть сила урона. Представим этот урон палкой. Эти палки одноразовые — когда юнит ее использует, она исчезает.
Скорее всего у юнита несколько таких палок. Их количество зависит от того, как долго он живет. Если юнит живет 5 раундов и тратит одну палку за раунд, значит у него 5 палок урона.
Вместе они составляют боевую силу юнита, и если приложить палки друг к другу, получится прямоугольник:
Поэтому первое, что надо запомнить:
Сила юнита = Урон юнита * Время жизни (его HP)
Все остальное мы возьмем из знания игр и здравого смысла. Допустим, прямоугольник на картинке описывает силу некого юнита. Например, Паладина в RPG.
Обычно в ролевых играх гораздо больше параметров, чем HP и урон — есть шансы крита и уворота, дистанция атаки, скорость и так далее. Но так или иначе все эти свойства можно свести к эквиваленту урона или времени жизни. Двойная скорость атаки означает, что за раунд юнит наносит двойной урон, а шанс уворота 50% добавляет юниту столько же времени жизни, как если бы мы вдвое увеличили его HP.
Слишком много математики, вернемся к палкам. У разных юнитов палки урона могут быть разной длины (силы). И время жизни (раунды) тоже бывает разное:
Это типичные классы персонажей в RPG. Воин обычно самый средний. Танк долго живет, но наносит меньше урона. Разбойник — это стеклянная пушка, живет недолго, зато наносит огромный урон.
Но как понять, сбалансированы ли эти классы между собой?? Ответ вы могли уже узнать — надо просто посчитать площади прямоугольников. Если они одинаковые, значит у классов одинаковая сила и они в балансе между собой.
Теперь сделаем нашего танка поинтересней. Подумайте, что это за персонаж:
За этой фигурой скрывается Берсеркер — танк, который получает бонус к урону, когда у него остается мало здоровья. Его сила также равна площади фигуры на рисунке — она считается, как сумма двух прямоугольников.
Первый навык балансера — видеть геймплей за абстракциями. За прямоугольниками, за наборами цифр. Если научиться описывать геймплей в схемах (даже таких примитивных), цифрах и параметрах, это заработает и в обратную сторону — глядя на цифры, начинаешь представлять, как это будет играться.
Баланс снаряжения
В RPG есть не только персонажи, но и снаряжение. Например, мечи. Как посчитать баланс меча? Точно также.
У меча есть некий урон, но нет времени жизни. Меч «живет» столько, сколько игрок захочет им пользоваться, и мы не знаем, сколько это. Ну и ладно. Просто скажем, что меч живет 100% своей жизни.
Таким образом, сильнее будет тот меч, у которого больше урон (потому что все мечи живут 100% времени). Но что, если у нас в руках Потрошитель Гоблинов, который наносит им двойной урон? Как понять, насколько он сильнее обычного меча?
Мы знаем, что меч живет 100% времени, но не знаем, какая часть из этого — обычный урон, а какая — двойной. Это мы легко можем узнать у наших коллег, которые занимаются миссиями/уровнями.
Допустим, треть всех врагов в игре — это гоблины. Значит, одну треть своей жизни меч наносит двойной урон и две трети — обычный. Теперь можем сравнить его с обычным оружием. Стандартный меч имеет 1 урона * 100% = 1 силы. Потрошитель Гоблинов имеет 1 урона * 67% + 2 урона * 33% = 1,33 силы. То есть он на 33% сильнее обычного меча. И если мы захотим сделать его равным по силе обычному мечу, придется просто уменьшить обычный урон Потрошителя Гоблинов.
Ничего сложного. Если вы умеете считать площади прямоугольников — значит вы знаете с чего начать баланс юнитов и снаряжения.
Ситуативный баланс
Достаточно легко сравнить по силе 2 меча. Они работают одинаково, только с разным уроном. А если у нас шутер, автоматы, дробовики и снайперские винтовки? Они по-разному работают, дают разные ощущения и требуют разных стратегий. Их сила зависит от ситуации, в которой вы оказались. Например, дробовик бесполезен на дальней дистанции, а со снайперкой тяжело управиться, когда враг мелькает прямо перед носом.
Если упростить — снайперская винтовка всегда выиграет на дистанции, а дробовик всегда выиграет вблизи. Как узнать равны ли они по силе?
Допустим, в игре всего два вида оружия — дробовики и винтовки. И две карты — лабиринт и коридор. Игрок обязан выбрать оружие до того, как ему выпадет карта.
На первой карте сила винтовки равна 100%, а дробовика 0% (винтовка всегда выигрывает). На второй наоборот. Чтобы понять, равны ли они по силе в среднем, нам надо понять, как часто выпадает та или иная карта. Если шанс выпадения каждой карты равен 50%, то оба вида оружия будут равны между собой. В любом случае ваш шанс победить будет 50%.
Если заметили, я упустил часть важных правил — точки появления игроков. Даже если вы играете в коридоре, но появились очень близко друг к другу, дробовик выиграет. Поэтому правила появления игроков тоже надо держать в голове.
А что если мы поменяем правила, и игрок сможет выбирать оружие после того, как узнает тип карты? Тогда он сможет выбрать лучшее на этой карте оружие. В этом случае убедиться в том, что у игрока не будет однозначно самого лучшего выбора — это задача левел-дизайнера. Ему надо сделать так, чтобы на каждой карте было равное количество секций, в которых винтовка или дробовик будут иметь преимущество. Теперь уже от навыка игрока будет зависеть, сможет ли он перетащить стычку туда, где у него преимущество.
Балансер в свою очередь должен представлять структуру карты, понимать, как много секций того или иного типа на карте и вносить соответствующие изменения в силу оружия (как в примере с Потрошителем Гоблинов).
Если в нашей RPG у нас треть врагов были гоблинами, то в шутере нам надо знать сколько процентов от карты составляют коридоры, а сколько — тесные комнаты. Но принцип от этого не поменяется.
Силу оружия можно посчитать таким же образом: умножить урон на процент времени, когда оно обладает преимуществом на карте. Поэтому вполне возможно, что дисбаланс какой-то пушки (слишком сильная или слабая) связан не с настройками, а левел-дизайном.
Этот принцип можно распространить дальше. Есть много причин, по которым оружие может считаться бесполезным в определенный момент времени. Возьмем дробовик и проследим за его жизнью:
- Игрок появился на точке спавна. Оружие бесполезно, потому что рядом нет и не может быть врагов.
- Игрок приблизился к центру карты и увидел противника. Противник слишком далеко — дробовик бесполезен.
- Игрок идет на сближение. На средней дистанции можно стрелять, но из-за разброса половина дробин летят мимо. Дробовик полезен лишь наполовину.
- Игрок добрался до противника и стреляет в упор. Максимальная эффективность.
Теперь среднюю силу силу дробовика снова можно посчитать как сумму площадей прямоугольников:
Для другого оружия можно построить еще одну хронологию. Например, со снайперской винтовкой игроку не надо сближаться с противником, надо только встретиться. Поэтому у винтовки максимальная эффективность будет в середине «жизни». И уменьшенная эффективность в конце:
Это намеренно упрощенный пример. Всегда можно посчитать точнее, используя гладкие математические функции, зависящие от дистанции и точности оружия + учитывать больше условий эффективности и зависимостей. Эффективность оружия в какой-то момент может быть равна не 100% или 50%, а 37% или 42. А площадь считать интегралом от этих функций. Но общий принцип от этого не изменится.
Чтобы правильно посчитать баланс, в первую очередь надо знать не математику, а как и по каким правилам работает ваша игра. Понимать, что и в какой момент происходит, как развиваются события. Мы знаем, что на баланс оружия влияет момент его выбора (до того, как известна карта или после), точки спавна, левел-дизайн и развитие матча по ходу игры. Задача посчитать баланс — это задача понять игру.
Предварительные итоги
Мы обсудили баланс отдельных сущностей, персонажа или оружия. Пока что я рассказал про самые основы — с чего начать, когда надо что-то сбалансировать:
- Поставить цели. Потому что расчеты не делаются в вакууме.
- Понять, как работает ваша игра. И какие в ней правила.
- Представить, что происходит в игре в каждый момент времени.
- Определить, как эта ситуация влияет на силу того, что вы хотите сбалансировать.
А в следующей статье я затрону более глобальнее вещи, которые связаны со всей игрой: взаимодействие баланса, экономики и прогрессии игрока. Еще будет про динамику развития и влияние фундаментальных правил игры, таких как правила боя.
Автор: Иван Звонарев