Курс Молодого Геймдизайнера: как считать баланс персонажей и снаряжения без математики

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.


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

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

Статья будет полезна тем, кому надо заняться балансом, но не знает с чего начать, а также начинающим геймдизайнерам, которые будут выбирать специализацию. Ну и всем, кто просто интересуется, чем занимаются ГД, когда не придумывают новые виды лутбоксов.

Не будем слишком глубоко вдаваться в детали конкретных расчетов. В интернете достаточно практических советов: есть цикл статей по балансу на Манжетах ГД, в блоге нашего продюсера Анатолия Шестова есть переведенные лекции Яна Шрайбера. Там можно найти ответы на многие вопросы, если они появятся по ходу чтения. Советую, если не пугают обилие цифр и расчеты.

А я расскажу, куда смотреть и на что обращать внимание. Потому что точность расчетов — дело техники и опыта. Главное начать.

Основа основ


В любой игре со сражениями есть боевые единицы. Юниты в 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 у нас треть врагов были гоблинами, то в шутере нам надо знать сколько процентов от карты составляют коридоры, а сколько — тесные комнаты. Но принцип от этого не поменяется.

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

Этот принцип можно распространить дальше. Есть много причин, по которым оружие может считаться бесполезным в определенный момент времени. Возьмем дробовик и проследим за его жизнью:

  1. Игрок появился на точке спавна. Оружие бесполезно, потому что рядом нет и не может быть врагов.
  2. Игрок приблизился к центру карты и увидел противника. Противник слишком далеко — дробовик бесполезен.
  3. Игрок идет на сближение. На средней дистанции можно стрелять, но из-за разброса половина дробин летят мимо. Дробовик полезен лишь наполовину.
  4. Игрок добрался до противника и стреляет в упор. Максимальная эффективность.

Теперь среднюю силу силу дробовика снова можно посчитать как сумму площадей прямоугольников:



Для другого оружия можно построить еще одну хронологию. Например, со снайперской винтовкой игроку не надо сближаться с противником, надо только встретиться. Поэтому у винтовки максимальная эффективность будет в середине «жизни». И уменьшенная эффективность в конце:



Это намеренно упрощенный пример. Всегда можно посчитать точнее, используя гладкие математические функции, зависящие от дистанции и точности оружия + учитывать больше условий эффективности и зависимостей. Эффективность оружия в какой-то момент может быть равна не 100% или 50%, а 37% или 42. А площадь считать интегралом от этих функций. Но общий принцип от этого не изменится.

Чтобы правильно посчитать баланс, в первую очередь надо знать не математику, а как и по каким правилам работает ваша игра. Понимать, что и в какой момент происходит, как развиваются события. Мы знаем, что на баланс оружия влияет момент его выбора (до того, как известна карта или после), точки спавна, левел-дизайн и развитие матча по ходу игры. Задача посчитать баланс — это задача понять игру.

Предварительные итоги


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

  • Поставить цели. Потому что расчеты не делаются в вакууме.
  • Понять, как работает ваша игра. И какие в ней правила.
  • Представить, что происходит в игре в каждый момент времени.
  • Определить, как эта ситуация влияет на силу того, что вы хотите сбалансировать.

А в следующей статье я затрону более глобальнее вещи, которые связаны со всей игрой: взаимодействие баланса, экономики и прогрессии игрока. Еще будет про динамику развития и влияние фундаментальных правил игры, таких как правила боя.
Источник: https://habr.com/ru/company/pixonic/blog/459504/


Интересные статьи

Интересные статьи

Всем привет! Меня зовут Олег Петров, я руковожу группой R&D в Центре речевых технологий. Мы давно работаем не только над распознаванием речи, но и умеем синтезировать голоса. Самый пр...
Завсегдатаи Хабра могут вспомнить несколько конкурсов игр для ZX Spectrum (8-битный компьютер, основанный на CPU Z80), которые здесь освещались: Retro Games Battle 2014 Твоя игра 5 Yandex Re...
От скорости сайта зависит многое: количество отказов, брошенных корзин. Согласно исследованию Google, большинство посетителей не ждёт загрузки больше 3 секунд и уходит к конкурентам. Бывает, что сайт ...
Если вы последние лет десять следите за обновлениями «коробочной версии» Битрикса (не 24), то давно уже заметили, что обновляется только модуль магазина и его окружение. Все остальные модули как ...
В этой части перевода учебного курса по React мы поговорим об архитектуре React-приложений. В частности, обсудим популярный паттерн Container/Component. → Часть 1: обзор курса, причины по...