В 2008м году я начал работу над экшном Collapse: Ярость. В игре было довольно большое количество разных боевых возможностей, которые еще и прокачивались по ходу игры. И я не знал, с чего начать работу над балансированием.

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

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

Это статья для тех, кто не знает, с чего начать балансирование. Пишу ее в таком виде, в каком хотел бы прочесть в далеком 2008м.

 

С чего начинать работу над балансом игры

  1. Выпишите цели, которые хотите достигнуть балансом
  2. Постарайтесь свести все игровые сущности к минимальному количеству основных ресурсов или базовых величин
  3. Подберите константы, которые выражают цели баланса, выписанные в пункте 1
  4. Пробуйте подбирать значения для каждого игрового элемента, выражая их через связи с основными сущностями, базовыми величинами и константами

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

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

 

Пример 1 — Collapse: Ярость

 

В чем сложность?

Игроку доступно большое количество совершенно разных боевых умений, каждое из которых должно участвовать в решении игрока “Какой способностью убить следующего противника?”

Одни способности легко было использовать (огнестрельное оружие), другие — сложнее (ближний бой), третьи — требовали планирования наперед (наполнение шкалы для вхождение в режим Ярости, набор энергии для использования энергетических способностей), четвертые требовали правильной оценки ситуации и ловкости при использовании (энергетические способности).

Сначала мне казалось, что можно просто вбить в табличку какие-то цифры из головы, а потом на этапе тестирования их отлаживать. В итоге понял, что лучше вбить цифры каким-то образом посчитанные, а потом — все-равно их отлаживать 🙂

 

Как я решил проблему?

1. Сделал список целей

Вот некоторые из целей:

  • игрок должен всегда стоять перед интересным выбором: каким способом убить следующего противника
  • игру можно пройти только огнестрелом, только мечом и комбинируя эти способности
  • боевые комбо и энергетические способности должны прокачиваться, а огнестрельное оружие — нет
  • огнестрел должен быть равноценным “участником” боя и в начале, и в конце игры, несмотря на то, что другие боевые способности под конец игры становятся чрезвычайно сильными
  • игрок не может максимально прокачать все умения за одно прохождение
  • и т.д.

2. Определил основную характеристику, к которой сводятся другие ресурсы

Изначально мне в голову не укладывалось, как можно выбрать одну характеристику для игры, в которой одно комбо увеличивает энергию, второе — заполняет шкалу ярости, третье — дает много опыта, четвертое наносит сильный урон и т.д. Кроме того, основная характеристика должна была учитывать и энергетические способности, которые были совершенно уникальными. Как совместить между собой остановку времени и отталкивание окружающих противников?

В итоге, оказалось, что в боевой игре основной характеристикой имеет смысл использовать “Урон в секунду” (DPS, damage per second). Остальные характеристике вполне можно выразить через него.

С огнестрелом и энергетическими способностями я довольно легко разобрался:

  • DPS огнестрела:
    • урон от пули * количество пуль / время от начала стрельбы до конца перезарядки
  • DPS энергетических способностей
    • DPS остановки времени: сколько в среднем можно успеть нанести урона, пока противники не двигаются
    • DPS отталкивания: сколько в среднем можно нанести урона упавшим противникам

С комбо ближнего боя было сложнее. Ведь каждое убийство давало ценный ресурс. И даже если текущий урон комбо Опыта был маленьким, то преимущества, которое давало использование этого комбо — было огромным. Вот как я свел некоторые из этих комбо к DPS:

  • DPS комбо смерти:
    • самый простой случай, аналогичный огнестрелу:  урон от удара * количество ударов / время выполнения комбо
  • DPS комбо энергии:
    • кроме того, что комбо энергии наносит урон, за убийства противников оно еще пополняет шкалу энергии
    • так как полученная энергия позволит в будущем использовать любую энергетическую способность, то DPS комбо энергии должен включать какую-то часть DPS будущего использования энергетических способностей
  • DPS комбо ярости:
    • при убийстве противника заполняет шкалу ярости. Когда шкала заполнится, герой входит в режим Ярости, нанося огромный урон мечом. Поэтому, при подсчете DPS комбо ярости, нужно учесть какую-то часть DPS будущего использования режима Ярости

Оказалось, что сведение “будущего” урона к DPS — вполне посильная задача. По ходу тестирования, естественно, придется донастраивать коэффициенты. Это нормально.

Хочу заметить, что так как набор ресурсов зависел от убийства противников, а не от того, что вы просто по ним попадаете, я еще пробовал использовать в качестве основной характеристики “Количество убийств от использования способности”. Например, «Остановка времени» первого уровня позволяет выполнить 2 убийства среднего противника, «комбо Опыта» первого уровня — 1 убийство и т.д.

Но эта характеристика не подходит для сражения с боссами, поэтому, я ее продолжил использовать как дополнительную.

 

3. Ввел основные константы

  • Здоровье самого слабого противника: 6
  • Минимальное количество вхождений в режим Ярости на одной локации: 2
  • Минимальное количество энергетических способностей на одной локации: 3
  • Всего возможных прокачек: 36
  • Средний уровень игрока в конце игры: 18
  • Максимальный уровень игрока в конце игры (если использовал комбо Опыта): 30
  • Количество убийств для первого уровня прокачки: 4
  • и т.д.

4. Начал составлять зависимости между способностями, ресурсами и основной характеристикой

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

 

Пример 2 — Football Tactics

 

В чем сложность?

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

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

Но самым большим источником дохода может быть стратегия “кузницы кадров”, когда игрок выращивает футболистов на продажу, что позволяет ему иметь довольно большое количество денег. Однако, эта стратегия не всем игрокам нравится. Следовательно, нужно учитывать игроков, которые не любят продавать футболистов.

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

 

Как я решил проблему?

 1. Сделал список целей

Вот некоторые из целей:

  • За выполнение условий спонсоров и за первые места в лиге игрок может заработать максимально x3 от того, что заработает за продажу билетов
  • Контракты не держат среднего игрока со средней командой  на грани банкротства, но мешают собирать деньги на дорогие покупки
  • Игрок может иметь в клубе 2-3 футболиста мирового уровня. Удержание бОльшего количества потребует побед в континентальных турнирах и максимального уровня стадиона
  • и т.д.

2. Определил основу, задающую масштаб экономики

Когда мы делали f2p, фактически все игровые ресурсы можно было выразить через “время игрока”. Любая игровая возможность считалась с учетом того, сколько игрок должен потратить времени, чтобы получить эту возможность. 100 000 золота? — 10 дней игры. Футболист 60го уровня? — 3 месяца игры. Навык 3го уровня? — 2 месяца игры. Минус такого подхода в том, баланс получается очень жестким, а развитие — линейным. Это хорошо подходит игрокам, которые играют ради прогресса. Но не подходит тем, кто любит стратегии.

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

Этой основой я выбрал стоимость билетов на матч. Это позволяет нам определить средний доход в домашних матчах. А это позволяет нам в свою очередь определить остальные доходы: спонсорские отчисления, доходы за победы в турнирах, цены на трансферах, стоимости продления контрактов и т.д.

Для прокачки футболистов и других важных механик я использовал другие основные характеристи, никак не связанные с доходами.

 

3. Ввел основные константы

  • Стоимости билетов для каждой из лиг
  • Минимальное/среднее/максимальное количество фанатов для каждой из лиг
  • Соотношение доходов между спонсорами, продажей билетов, продажей футболистов, наградами за победы в турнирах
  • Сколько в год средний игрок может купить футболистов
  • Сколько в год средний игрок продлит контрактов
  • и т.д.

4. Начал составлять зависимости

Для разных случаев я посчитал разные второстепенные финансовые характеристики, которые зависят от стоимости билетов. Например, средний доход для каждой лиги.

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

 

Финальные замечания

Этим постом я хочу помочь тем, кто не знает, с чего начать работу над балансом. Но если вы сейчас не балансируете игру, и хотите что-то полезное вынести для себя на будущее, пусть это будет два базовых шага:

  • Выпишите цели, которых хотите достичь балансом
  • Определите основную характеристику, через которую будете выражать другие игровые ресурсы

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