DTF.RU - Статьи [http://dtf.ru/articles/]

Баланс возможностей в играх

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

http://dtf.ru/articles/read.php?id=47074


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

Заказать еще четырех пехотинцев или танк?
Выбрать для героя класс мага или воина?

Вопрос, мешавший автору играть в компьютерные игры в 13 лет.

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

Понимание, пришедшее потом.

My mama said: "Life is like a box of chocolates;
you never know what you gonna get"

Forrest Gump

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

Баланс возможностей в играх бывает трех типов:

  1. Баланс возможностей с равным противником. Обычно это боевые столкновения Player vs. Player в мультиплеерных режимах, либо в онлайновых играх. Также это баланс в большинстве стратегиях, где обе стороны поставленный в сравнимые условия. Определить этот тип очень просто: если обмен противников местами не выбивается из общего видения игры - это баланс с равным противником.
  2. Баланс возможностей с неравным противником. Обычно это игры жанра action и другие игры, где противник превосходит числом. Определяется по аналогии: если явный противник есть, но обменять с ним игрока местами нельзя, то это баланс с неравным противником.
  3. Баланс возможностей без противника. Игры, где нет явного противника (тетрис, большинство представителей жанра casual), либо есть баланс разных путей к одной цели (накопительство денег в CRPG играх, нелинейные механизмы прохождения).

И еще несколько понятий:

  • Принцип нетранзитивности - если А "круче" Б, а Б "круче" В, то это НЕ означает, что А "круче" В. Поставьте вместо "круче" любое слово.
  • Фаворит - явно лучший выбор из предложенных вариантов.
  • Полом - нахождение в игре Фаворита.

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

Делая всех равными, мы стремимся попасть каждым вариантом в точку равновесия - B. Но из школьного курса математики известно, что количество точек рядом с B (попадающих в пунктирный круг) бесконечно велико. А значит, вероятность промазать мимо B стремится к 1. Воспользовавшись принципом нетранзитивности, ни в какую точку попадать не надо, а надо лишь, чтобы на каждое действие было свое противодействие. Данная тема довольно обширна, и ее раскрытие займет не одну статью. Здесь же проводится обзор схем балансировки с равным противником. При этом подразумевается, что нам надо сбалансировать ограниченное число вариантов.

Как же делается баланс возможностей с равным противником? Начнем с первого, что обычно приходит в голову - варианта "Камень-Ножницы-Бумага".

"Камень-Ножницы-Бумага"

Метод состоит в построении направленного графа, где узлами являются игровые объекты, а ребрами - отношения в исследуемом отношении. Звучит, наверное, слишком сложно, так что объясню подробнее. Рисуется вот такая схема:

Она означает, что А всегда побеждает Б, Б побеждает В, ну а В побеждает А. К вопросу, почему кружков всего три, мы еще вернемся, а сейчас поговорим об особенностях реализации этой схемы.

Она встречается практически везде - яркими ее представителями являются "Воин-Маг-Лучник" и "Конница-Лучники-Пехотинцы". Рассмотрим первый вариант. Воин побеждает Мага, который побеждает Лучника, который побеждает Воина. Для того, чтобы это было возможно, нужно обеспечить соответствующие условия. Простейшим приемом было бы простое сравнение классов и выдача результатов боя, но так "не поймут-с". Поэтому надо что-нибудь придумывать, и проще всего начать с приписывания к каждому ребру графа преимуществ, обеспечивающих выигрыш.

  • Больший DPS (Damage per second, урон в секунду) - большое количество урона в секунду, она же скорость нанесения урона. Позволяет при равной Выживаемости уничтожить персонажа противника быстрее, чем он уничтожит персонажа игрока.
  • Большая скорость передвижения - позволяет держаться на расстоянии, что в сочетании с невозможностью противника атаковать на большом расстоянии позволяет не получать от него повреждений.
  • Большая Выживаемость - позволяют выжить дольше противника, даже если у него больший DPS.

Далее необходимо проконтролировать, чтобы преимущества не конфликтовали друг с другом. Действительно: DPS, позволяющий Магу победить Лучника, не сможет помочь им против воинов - ведь этот DPS можно учесть при выставлении Воину Выживаемости. Скорость не поможет лучнику против Мага - ведь последнему не помеха большое расстояние. Ну а большая Выживаемость не поможет Воину, который все равно не может ударить лучника.

После этого становиться более-менее понятно, как реализовывать баланс: в боевой системе должно быть как минимум характеристики, отвечающие за DPS, Выживаемость, Расстояние между персонажами и Скорость сближения персонажей. Давайте распределим их (числа обозначают важность параметра):

  Маг Воин Лучник
DPS
1
3
2
Выживаемость
3
1
2
Скорость
3
2
1

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

Преимущества схемы:

  • На каждого "мега-воина" гарантированно может найтись "мега-лучник". Все поломы баланса видны заранее, достаточно просто свериться со схемой и понять, подходит ли способность под концепцию или нет. Например, Воину нельзя давать способность замедлять противников, поскольку это противоречит преимуществу "Большая скорость" у лучника.
  • Она сама дает подсказки по дизайну способностей. Просто берем описания преимуществ и причин их неконфликтности и перерабатываем их в способности. Например, в способность стрелять на бегу у Лучника или в возможность затормаживать противника у Мага (но тут надо проследить, чтобы она не помогла ему обогнать Воина).

Недостатки:

  • В ней нет места полубоевым (если речь идет о балансе боя) персонажам.
  • Она ограничивает выбор игрока всего тремя вариантами.
  • Она угнетает, поскольку "Ни один Маг никогда не сможет победить Воина".

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

Проблема №2 сложнее. Решением ее может стать создание вариаций основных классов. То есть введение Мага Огня, Мага Воды и Мага Правого Тапка. Они могут быть почти похожи, среди них даже может быть фаворит - это не важно, поскольку все они не могут победить Лучника, и это главное. Но лучше все же применить систему "Камень-Ножницы-Бумага" и тут: Маг Воды заливает Мага Огня, который сжигает обувь Мага Правого Тапка, которым можно вычерпать Мага Воды.

Есть другой вариант решения этой проблемы, он заключается в увеличении количества узлов. Количество ребер вычисляется по формуле n(n-1)/2, где n - количество узлов. При 3 узлах, ребер тоже 3, при 4 - уже 6, а при 5 - целых 10. Это называют "комбинаторный взрыв". Тут и возникает проблема - растет число преимуществ, которые надо придумать и проверить на неконфликтность.

Кроме того, не получается применить схему с 4-мя узлами - от каждого узла отходит 3 ребра. Это значит, что часть классов будут выигрывать у двух других и проигрывать одному, а часть проигрывать 2 и выигрывать только у одного.

Схема с 5-ю узлами выглядит так:

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

Балансировка преимущество-недостаток

Идея состоит в том, чтобы отказаться от сравнения напрямую с другими вариантами и избежать комбинаторного взрыва. Вместо этого расписывается отличие каждого варианта от абстрактного "среднего варианта". Сделаем это на знакомых нам Воине-Маге-Лучнике:

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

Заметьте, что у Воина и у Мага есть одна способность, которая дает им преимущество и одна, дающая недостаток. Ну а Лучник сейчас выглядит как пятое колесо в телеге, но не будем спешить. Как победить Воина? Очень просто: надо использовать что-либо против его недостатка и защититься от его преимущества.

Пока не видно никаких преимуществ перед системой "Камень-Ножницы-Бумага", но попробуем добавить новые классы:

  • Убийца: высокий уровень наносимых повреждений, атака только на небольшой дистанции.
  • Берсерк: высокая скорость, высокий вровень наносимых повреждений, низкий уровень выживаемости, атака только на небольшой дистанции.

Заметили? Не появилось ни новых преимуществ, ни новых недостатков (если честно, я их копировал и вставлял). А значит, не придется перебалансировать их отношения (в идеале, конечно). А что же Лучник, остался у нас без недостатков? Попробуем и здесь ввести новый класс:

  • Стрелок отравленными дротиками: Атака с очень высоким уровнем повреждений, малое число атак.

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

Пора бы уже построить табличку Достоинств и Недостатков:

Достоинство Бьет недостаток Степень превосходства
Высокий уровень выживаемости Низкий уровень выживаемости Слабая - в отсутствии других степеней победа
Высокий уровень выживаемости Малое число атак Критическая - победа
Высокий уровень наносимых повреждений Любой Слабая - в отсутствии других степеней победа
Высокая скорость Атака только на небольшой дистанции Критическая - победа
Атака с очень высоким уровнем повреждений Низкий уровень выживаемости Критическая - победа

Конечно, такие сущности как "уровень повреждений" и "уровень выживаемости" имеют числовое выражение, а не градации "высоко - низко". Тем не менее, таблица позволяет просмотреть каждый вариант, предлагаемый персонажу, и выяснить, какие у него будут слабые и сильные стороны. Это позволяет выдерживать примерно средний уровень мощности (и привлекательности) у разных вариантов.

Преимущества схемы:

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

Недостатки схемы:

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

Недостаток №1 частично решается построением графа отношений, как в схеме "Камень-Ножницы-Бумага". Но, тем не менее, этот способ остается уязвим к поломам.

Надо заметить, что в реальных RPG-системах или проектах у персонажа очень редко Достоинств оказывается меньше, чем Недостатков. Это естественный ход для повышения персонификации. С учетом этого, баланс будет скорее строиться на подборе недостатков, а не достоинств, как в примере выше.

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

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

Недостаток №2 решается балансировкой по ТТХ (тактико-техническим характеристикам). Из военного языка это сокращение пришло в игровой и означает набор показателей, численно показывающих эффективность персонажа. Запись в виде Преимущества-Недостатки меняется на описание числовых характеристик и обозначения, какие из них выше, а какие ниже среднего. Сравнение со средним лучше всего автоматизировать с помощью электронных таблиц (что все и делают).

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

Золотой век

Представьте, что на базу игрока идет раш (ранняя атака), а игрок сидит, стиснув зубы, и думает нечто вроде "ну подождите у меня еще 10 минут, вот я разверну ядерный арсенал!". Каждому варианту соответствует ситуация или промежуток времени, в котором он действует лучше всего. Например, сторона "Союз Светлых и Темных Эльфов" (ССТЭ) сильнее всех в начале игры, а сторона "Мерзкие Резвые Орки Тьмы" (МРОТ) в середине. То есть в своем "Золотом веке" они являются явными фаворитами, а баланс достигается тем, что в процессе игры сторону менять нельзя.

Добавление новой стороны подразумевает выделение нового "Золотого века". Сейчас при двух сторонах это достаточно просто - свободным остается затяжная игра. Сторону назовем "Ново-Дворфский Союз" (НДС).

На чем могут быть основаны преимущества? В стратегиях реального времени разумно рассчитывать время получения доступа к новому типу юнитов:

Основной тип юнитов/Время игры Союз Светлых и Темных Эльфов Мерзкие Резвые Орки Тьмы Ново-Дворфский Союз
Начало Скауты Тупые бугаи Пьяные дворфы
Середина Менестрели Наездники на орках Дворфы с долотом
Конец Снайперы Уруки Дворфский танк

Скауты обладают дистанционной атакой и точно следуют приказам в отличие от Бугаев и Дворфов (см. полные названия). Но в середине игры Наездники на орках (один орк едет на другом - два орка по цене одного!) явно превосходят Менестрелей (со способностью очаровывать песней) и Дворфов с долотом (разбирающих на куски любой каменный объект). А в конце игры, когда выкатывается Танк, Эльфам и Оркам остается только защищаться.

Для работы этой схемы необходимо, чтобы с появлением следующего "поколения", предыдущее морально устаревало. Иначе толпа Наездников закидает Танки шапками, и "Золотой век" для Дворфов не наступит...

Как это работает в случае RPG систем? Можно вводить распределение по времени, это станет временем на подготовку. Возможно, Маг вначале очень хорош, но потом у него наступает "cooldown" (вынужденная передышка). Лучник не меняет свою эффективность в течение боя и потому эффективен в середине. А Воину надо добежать, да еще и раззадориться. Зато, когда он сделает это (в позднем бое), он спокойно расправляется с любым противником.

Еще одна важная вещь: у вариантов с поздним "Золотым веком" должна быть возможность дожить до него. А значит, должна быть возможность противодействовать вариантам с ранним "Золотым веком".

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

Преимущества схемы:

  • Нет жестких отношений "Маг всегда побеждает Лучника".
  • Заставляет чередовать атаку и оборону, то есть вносит разнообразие в геймплей.
  • Делает игру динамичной, так как завоеванное преимущество может уйти вместе с "Золотым веком".

Недостатки:

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

Недостаток №1 решается за счет введения двух-трех "Золотых веков" вместо одного. Например, Эльфам из нашей стратегии можно разрешить "строить" Магов, которые смогут побеждать Танки, но Маги станут доступны позже Танков.

Недостаток №2 требует введения элементов, затрудняющих получение выгоды из "Золотого века". В стратегиях такой элемент обычно есть - это тактика и микроконтроль. А в RPG вводится вероятность промаха (и расходования атаки впустую).

Балансирование по наитию

Когда не хочется собирать и сравнивать информацию, когда хочется сделать "как на самом деле", когда хочется заявить "Камень-Ножницы-Бумага не использовались!". Когда происходит все это, чаще всего приходит оно - Балансирование по наитию.

По наитию обычно означает "из другого источника". Источником может быть мозг дизайнера, исторические материалы или другой проект, важно, что в источнике есть целостное представление о взаимодействии вариантов (если нет, то зачем он нужен?).

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

Преимущества схемы:

  • Это единственный путь полного перенесения исторической информации или авторского видения мира.

Недостатки схемы:

  • Балансирование по наитию потенциально создает дисбаланс.

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

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

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

Плейтест - всему голова

Чем дальше от начала этой статьи находилась схема, тем больше потенциальных ошибок в балансе она несла. Но даже схема "Камень-Ножницы-Бумага" нуждается в тестировании (если, конечно, вы не делаете игру Stone-Scissors-Paper).

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

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

Что касается геймерского восприятия - следует выяснить, насколько игроки пользуются всеми заложенными в балансе особенностями. Если большинство тестеров не понимают, что лучником надо отбегать от воина, чтобы выиграть, это может поломать даже идеально выверенный баланс Камень-Ножницы-Бумага. Особенно это важно для оффлайновых игр (их теперь, видимо, так надо называть), где возможности "сарафанного радио" сильно ограничены.

И напоследок про слоеный пирог

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

Часто полезно абстрагировать уровни друг от друга, чтобы было проще балансировать их по отдельности. Это делает балансировку проще (и позволяет использовать схему Камень и Кo), но ради этого приходиться унифицировать варианты (например, делать одинаковою экипировку для каждого класса). И наоборот - для целостности образа персонажа выбирают все возможные комбинации раса-класс-набор умений-экипировка и балансируют уже их. В этом случае балансирование, разумеется, заметно усложнится.

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

Даже на одном уровне можно смешивать разные схемы: например, разбить классы на три группы, сбалансированные по схеме Камень-Ножницы-Бумага, а внутри групп организовать баланс через схему Достоинство-Недостаток. Очевидно, что при смешении надо стремиться применить схему так, где ее недостатки незаметны, а достоинства - видны.

И, наконец, самое главное - игра должна приносить удовольствие. Если для этого очень нужен баланс - надо делать его. Если не очень - отложить его до лучших времен.

[18.07.2007]

Copyright © 1999-2016 DTF Ltd. Все права защищены.
Замечания и предложения отправляйте по адресу team@dtf.ru