Как балансируются настольные игры – механики и цели балансировки

b5291b35714d4b0e971e69a5c8f315f0.jpg

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

Конечная цель любой балансировки игры — увеличение возврата игроков или времени партии. То есть играбельности механики:

  • Не должно быть однозначной ультимативной стратегии победы, иначе игра потеряет вариативность и интерес.
  • Игрок должен чувствовать, что от его действий и навыков зависит игра. Иначе получится Mass Effect, который, скорее, фильм, нежели RPG.
  • Баланс должен быть «амортизированным», то есть прощать некоторые ошибки — иначе запоздалый на миллисекунду клик в Starcraft по первому рабочему из-за «эффекта бича» вызывал бы проигрыш через 4 часа идеальной партии. Наша настольная формула — 5–7 важных решений за игру, в двух можно ошибиться.
  • У настолок есть ещё социальное условие: игроки не должны выпадать по ходу пьесы — интересно должно быть всем и до конца.


Теперь — методы.

Ограничения модели


Настольные игры крайне редко покрываются автоматизированными тестами. Делают такие вещи из известных мне личностей, пожалуй, только Сид Мейер, Влаада Хватил и ещё пара не таких известных геймдизайнеров. В остальных случаях происходит следующее:

  1. Эмпирическая балансировка. Как правило, разработчик игры знаком с математикой, интуитивно понимает прикладные аспекты либо теории игр или дискретной математики, и, в целом принимает правильные решения.
  2. Затем идут игровые тесты в ограниченном кругу «профи». Тут задача — найти уязвимости баланса. В целом, те же эмпирические тесты, только уже толпой пентестеров. Как правило, это сотня партий, то есть для статистических методов маловато, но для эмпирических — в самый раз. При этом автор что-то докручивает в процессе, поэтому редко когда один набор правил играется больше 30 партий.
  3. После игра выносится в публичную бету на «людей с улицы», чтобы проверить кривую обучения. Здесь уже можно собрать статистику, но, как правило, это не требуется.


Пример такой ручной балансировки — «Улей» мистера Янни. Когда он делал дополнение, добавляющее мокрицу в улей (действие примерно сопоставимо с добавлением новой фигуры в шахматы), то сначала он тестировал с друзьями около двух месяцев, потом показал всем знакомым геймдизайнерам и собрал мнения, потом запустил в электронной турнирной системе бета-турнир для тестов, а уже потом выпустил непосредственно пластиковую фигурку для продажи и ввёл её в стабильный релиз в электронных версиях.

Отмечу, что у настольной игры средний срок жизни — 6 партий. 10 человек сыграют по 3–4 партии за год, ещё двое будут резаться каждые выходные, а примерно каждый сотый будет готовиться к турниру. Поэтому основная задача баланса — не турнирная, как в онлайн-играх, а именно социальная — чтобы никто не выпал, и чтобы все чувствовали, как они принимают решения. Баланс связан и с кривой обучения — учитывая крайне ограниченный ресурс внимания и дикий дефицит времени, нужно применять для балансировки интуитивно-понятные игрокам вещи (а-ля «дробовик не может быть слабее пистолета»).

Методы


Жоп-филинг автора
Этот метод мы рассмотрели выше. Он часто остаётся базовым на практике.

Отпиливание того, что высовывается
Последовательное тестирование и ручное убивание самых манчкинистых стратегий. Это «выравнивание» очень напоминает отладку алгоритмов группы Монте-Карло или генетики на неполной подборке, и даёт примерно такой же результат. То есть помогает в 90–95% случаев.

Ресурсный баланс
Это уже более интересная вещь. Для каждого объекта в игре рассчитывается единая цена в некотором ресурсе. Естественно, самое сложное — придумать оценочную функцию. Та же MTG, к примеру, совершенно точно выросла из эмпирики (I и II редакции) к non-domination (III и IV редакции) и уже к шестой редакции пошла по ресурсному пути. Грубо говоря, вы знаете, что зверёк ценой 2 единицы маны будет иметь атаку 2 и защиту 2 по умолчанию в любом окружении. Например, можно сделать его 3/3? Конечно, можно, только надо повесить свойство, что он 1/1, если в предыдущем ходу противнику не был нанесён урон. За каждую «плюшку» от стандарта мы даём «дроубек» — какой-то недостаток. Хотите 2/2 и полёт? Ок, только скотина на входе в игру заберёт у вас 2 хита. Хотите 7/1? Можно, но жить оно будет один ход, и придётся убить другое существо для его вызова. И так далее. Вы берёте эталон и начинаете плясать вокруг него, создавая плюсы и минусы, чтобы в итоге они попадали примерно в 85% коридор от эталона.

Сюжетно-связанный баланс
Это когда сюжет «вытаскивает» слабые балансные состояния. Например, у вас в RPG есть ветка прокачки пистолетов и, скажем, плазменных пулемётов. В том же Shadowrun (новом) варианты развития одинаковы. На поздних уровнях навыка пистолет даёт двойной-тройной выстрелы, повышенный урон и быструю перезарядку. Урона за ход столько же, сколько от хорошей очереди из пулемёта в упор. Игрок, типа, не окажется к финалу игры неумелым лохом. Это баланс — ресурсный.

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

Каждый раз, когда от вашего навыка механики или взлома замков в ролевой игре зависит сюжетная ветка — это тоже оно.

Камень-ножницы-бумага
Основа баланса — принятие решений игроками. Когда баланс «слишком ровный», невозможно добиваться формирования индивидуальных стратегий и стилей игры. Поэтому баланс должен сходиться только в целом, но не в деталях. В деталях нужен некоторый хаос, и его должно быть довольно много. Самый частый пример такого баланса — это построение трёх базовых стратегий («маг, боец, вор», «агрессия, контроль, комбинация», «разработчик, дизайнер, тестировщик», «дробовик, винтовка, снайпер»). Они бьют друг друга по кругу, и поэтому задача игрока — фактически, в некотором смысле блефовать и угадывать действия противника. Эта же стратегия вносит случайность в игру и даёт возможность новичкам иногда побеждать профессионалов при угадывании.

Пример самой эффективной и самой «несбалансированной» штуки в шутерах часто — дробовик. Это оружие ближнего боя. Используя ресурсные методы и статистику для построения оценочной функции для вычисления ресурса, мы, например, знаем, что оружие должно наносить 100 единиц урона в минуту на расстоянии 100 метров. Делаем 500 единиц, но в «дроубек» даём 5 метров, и ещё делаем оружие тяжелым, неуклюжим, медленно перезаряжающимся и с малым боезапасом. Здесь запускается сразу две ветки — выбор стратегии (задача «папика» с дробовиком неожиданно появляться строго вплотную к потенциальным фрагам) и навык (нужно очень точно и спокойно целиться). Аналогично — хорошая снайперка. Создаёт те же требования к стратегии и навыку, но определяет уже другую стратегию поведения игрока.

Ещё одна разновидность риск-контроля — это методика выравнивания проигрывающего игрока и выигрывающего рандомом. Это нужно, например, когда игрок уже серьёзно проигрывает, но остаётся ещё половина партии. Либо он выйдет из игры и сдастся без интереса… либо вы дадите ему какие-то инструменты восстановиться. Чаще всего это — сильный риск. Проигрывающий игрок может использовать приёмы и стратегии, которые дают высокий шанс (больше 50%) критической ошибки, но при этом она-то ему не страшна, поскольку он и так проигрывает. Получилось — повезло, они снова с победителем на равных. Не получилось — ну ок, было интересно и весело. Причём как только игроки выравниваются, использовать рисковые приёмы не будут оба — ведь «дроубек» в данной ситуации становится значимым для исхода партии. Довольно хорошо про эти нюансы есть у Сирлина в его «Играй на победу» (которую мы как-то перевели — почитайте, он копался в балансе тогда, когда игры были без патчей вообще).

В спорте эта ситуация чем-то похожа на историю, когда даже вратарь используется как один из атакующих игроков на последних минутах матча. Да-да, вы уже догадываетесь — это не только возвращает игрока в игру, но и очень героически-зрелищно. О таком потом рассказывают истории.

Ещё одна важная вещь в недетерменизме или роли рандома — чтобы не было готовых стратегий победы. В тех же шашках невозможно выиграть в игре за чёрных при математически оптимальной игре белых. В Го, по идее, тоже, но там пока наших вычислительных мощностей для такого не хватает, поэтому именно в Го есть неопределённость, а в шашках — нет. Если помните автоматы с Пакманом — там специально вводили рандом для выбора призраками направления, чтобы игроки в аркадах не заучивали оптимальные пути хождения по уровням. При написании AI врагов тоже часто используется рандом для выбора между двумя похожими решениями.

Автобалансировка
Обычно игра всеми силами стремится быть в равновесии, а игроки нагло раскачивают её состояние. В механике автобалансировки — наоборот.

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

Пример. В базовой ресурсной стратегии вы знаете, например, вот такую градацию наград: 20 патронов = 100 монет, аптечка = 50 монет. На уровне ресурсов 20 патронов всегда важнее аптечки просто потому что они дороже статистически. Но в конкретной ситуации аптечка может оказаться нужнее. Создаётся ситуация аукциона, когда игроки сами назначают цену за нужный им ресурс. В итоге может оказаться, что именно в нашей партии аптечка стоит 150 монет, а патроны вообще никому не нужны.

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

Альтернатива автобалансировке — ресурсная балансировка «подтягиванием» отстающих, например, созданием отрицательной обратной связи. Чем выше уровень героя — тем меньше опыта дают монстры. Чем ниже — тем больше. Соответственно, ошибки и нелепые ситуации на первых уровнях амортизируются тем, что в конце у героев разница в 3–4% при расхождении показателя опыта в 2 раза. Это нравится не всем, но это путь онлайновых игр чаще всего.

Ещё одна интересная механика автобаланса — это предоставление выбора не между игровыми ценностями, а между игровыми и реальными (IRL). Например, драфты с ценными на вторичном рынке картами, выбор в сторону игровой валюты (которую можно перепродать на вторичном рынке или ей оплатить аккаунт) и так далее.

Следующий тип автобалансировки — это дипломатия. Если в игре есть транзакции между игроками, то они смогут объединяться в союзы. Это значит, что самый «высовывающийся» рискует получить по шапке ото всех сразу, недовольных тем, что он побеждает.

В этом плане особенно крута та же «За бортом!» — там в общем случае персонажи на лодке сначала «разведывают» друг друга, потом оставшуюся партию находятся в двух связках-союзах — одна контролирует ресурсы, вторая недовольна. Время от времени в контролирующей связке возникает раскол из-за условий победы («А почему Сноб столько захапал? Пусть даст мне бриллант, который он забрал!»), что тут же меняет местами связки и создаёт новый более сложный конфликт. Связки чисто из-за «физики» игры постоянно рекомбинируются и меняются местами, и игроки в них тоже. То есть самый сильный получает веслом по башке просто потому, что он сильный. И даже друг-союзник поможет его бить, потому что ведь задача у него — чтобы побитый друг выжил, а не чтобы он победил. Победу каждый бережёт для себя.

Разгадывание намерений и блеф


Суть стратегии — оптимизация набора параметров. Соответственно, предвидя оптимальные действия противника, вы можете принимать эффективные контрмеры. Однако противник может подозревать это и использовать не те параметры, что вы ждёте. Так образуется схема «разгадываемости» игры, когда понятно, какое действие к чему ведёт, и блефа. Это один из самых сильных факторов баланса и кривой обучения — сначала игроки повышают навыки, пытаясь предсказывать результаты тюнинга параметров (обучаются искусству игры, раскрывают скрытую информацию по поведению других игроков), а потом играют уже не с механикой, а друг с другом, используя игру только как язык.

Кривая обучения


Вернёмся в самое начало топика к диалогу с прекрасной леди и тому, что баланс связан с кривой обучения. Связан, он, в частности, тем, что при изменении состояния системы вы должны увидеть обратную связь от игры. Например, легко обучить собаку делать правильные вещи, сразу давая ей косточку. Но очень сложно обучить её, давая ей гору косточек через сутки-двое — она просто не уловит связи, несмотря на увеличенный размер награды. Так же и с игроками, и про это есть просто прекрасная статья у Данилы Кука из Epic — вот мы её на новый год перевели тут.

Так вот, задача. Есть игра «Совушки, ау!», где дети должны привести сов в гнездо, пока не наступит рассвет. Совы стоят на треке, состоящим из цветных кружков:

3191b56e5d9d49f5a8830167da16ec90.jpg

У игроков есть карточки с кружками. Вот у левого игрока красный, оранжевый и зелёный кружки. Соответственно, он может выбрать любую сову и двинуть её на ближайший свободный кружок этого же цвета.

Если ближайший кружок занят, сова ставится на следующий.

Оптимальная стратегия этой игры — не «рассыпать» сов на большую дистанцию, но при этом занимать одинаковые клетки, чтобы дальняя делала прыжки по пол-поля.

54ee5dfa17db43a19ffa05a7b1bb71db.jpg

Как быстро выяснилось, дети это не понимают. Фигня, когда я тестировал, это ещё и некоторые гуманитарные взрослые не понимали. Один дядька, например, выбирал у нас на тестах самый длинный тактический шаг совы, но не просчитывал следующие 2–3 хода. На этом его горизонт планирования трагически заканчивался. Дети же берут «любимую» сову (и пофиг, что они одинаковые) и ведут именно её.

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

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

Проблема в том, что из-за случайности примерно в 10–20% случаев это всё же давало победу. Сюзен, автор игры, попробовала ужесточить условия победы, чтобы включить автобалансировку по стратегии. Но столкнулась с тем, что при неверных ходах дети проигрывают, и не успевают научиться — их расстраивает цепочка проигрышей. Проблема, очевидно, в том, что цикл обратной связи слишком длинный. Нужна какая-то вещь, которая даёт положительную обратную связь сразу в течение хода, а не в конце игры. Оценочная функция, чтобы понять, сильный ход ребёнок сделал или слабый.

Остановитесь и подумайте, что бы вы сделали в этом раскладе.

А решение Сюзен под спойлером
Она выявила самый важный элемент оптимальной стратегии — прыжки через других сов. В целом, чем больше таких прыжков за игру, тем лучше. Это значит, что нужно было поощрять игроков делать именно прыжки через сов, а не думать о том, как дойти всем в гнездо, уложившись во время. И придумала новое правило: во время каждого такого прыжка дети должны были громко ухать как сова. Естественно, ухать им было куда веселее, чем просто двигать фишку. И они начали специально создавать ситуации длинных прыжков — то есть, да, учиться оптимальной стратегии. Особенно детей радовало, когда ухали их родители, играющие с ними — отсюда и возможность создать такую ситуацию не для себя, а для кого-то ещё.

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

Резюме


Итак, чаще всего:

  1. Эмпирически и на основе небольшого набора тестов строится оценочная функция для баланса.
  2. Выявляется ресурсный эталон для каждого объекта, а затем объекты подравниваются и варьируются для глубины игры, то есть возможности построения индивидуальных стратегий.
  3. Вводится некоторая недетерменированность (чаще всего — случайность) для разнообразия игры и ухода от автоматизации победы. Because life is a random.
  4. Вводятся реактивные методы для уравнивания игроков: дипломатия, отрицательная обратная связь, рисковый баланс.
  5. При необходимости устанавливается внеигровая мотивация для совершения каких-то действий.


Но, конечно же, практика суровее. На практике один хрен до появления service pack 2 вы всё равно играете в позднюю бету.

Ещё конкретные механики есть, например, в Вики — смотрите, например, патчи баскетбола и принцип «золотого века», плюс походите по ссылкам. Очень хорошая подборка по околобалансовым вещам есть у Денка (с точки зрения геймдизайнера) и Сирлина (с точки зрения игрока-турнирщика).

© Habrahabr.ru