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

Конечная цель любой балансировки игры – увеличение возврата игроков или времени партии. То есть играбельности механики:
  • Не должно быть однозначной ультимативной стратегии победы, иначе игра потеряет вариативность и интерес.
  • Игрок должен чувствовать, что от его действий и навыков зависит игра. Иначе получится 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 – вот мы её на новый год перевели тут.

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



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

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

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



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

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

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

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

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

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

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


Резюме


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

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

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

Комментарии (19)


  1. ragequit
    29.02.2016 10:07

    Иначе получится Mass Effect, который, скорее, фильм, нежели RPG.

    Ага, помню я второй ME на максимальном уровне сложности. Неплохой такой headshot-тренер получился, иначе тупо патронов на всех не хватает.


  1. datacompboy
    29.02.2016 12:25
    +4

    Ууухху!


  1. Usmekhaiouschiysia
    29.02.2016 12:58
    +2

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


    1. Milfgard
      29.02.2016 13:05
      +2

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


  1. Propheta13
    29.02.2016 15:43
    +1

    Спасибо огромное за статью, как всегда интересно и доходчиво.
    Вопрос не совсем по теме: вьі не планировали сделать сравнительный обзор XCOM 2 (нового) с первьім (Enemy Unknown который, не классический)? Как по мне очень интересный пример в плане развития игровой механики и дизайна.


    1. Milfgard
      29.02.2016 15:49

      Вам спасибо.
      Нет, пока не планировал — в XCOM2 надо уходить как в отпуск, а я планирую провести ближайшие длинные выходные в путешествиях. А дальше — смотря какие изменения, если сильные — то да, стоит учиться. Пока я просто покрутил игру, и могу сказать, что там довольно интересная работа с тем, как надо делать сюжет продолжений. Учитывая серию UFO (2, 3, Interceptor), работа очень крутая.


      1. rshadow
        29.02.2016 17:27

        И тем не менее игру они сильно опустили введя таймеры. Локальный — количество ходов в партии. И глобальный на всю игру в виде проекта Аватар. Очень отвратительно получилось. И это при остальной гениальности игры: кучи новых вариаций, скилов, сбалансированности классов и т.д.

        В первом подгонял сюжет, в 3 часа ночи хотелось сыграть еще одну миссию чтобы увидеть что там дальше. А тут — тупо таймер. В пошаговой стратегии прошу заметить. Которую хочется смаковать, изучать как энциклопедию, заглядывать за углы… =(


        1. Milfgard
          29.02.2016 17:34

          Я так понимаю, они искали способы сделать так, чтобы игрок смирился с потерей бойцов. Ну и ждём Director's Cut — как прошлый раз было, что рандом в пушках добавили, бойцов разнообразили и ещё с фланга заходить разрешили.


          1. rshadow
            01.03.2016 16:52

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


            1. darthslider
              01.03.2016 18:20

              Это проблема игрока, на самом деле. Для «смириться с потерей бойцов» есть ironman режим. Имхо, что бы проще было смиряться, они должны быть чуть менее ценными. Именно чуть-чуть.


        1. ionicman
          29.02.2016 23:31
          +1

          Как прошедший все XCOM старые не по разу и новые:

          1) Локальные таймеры — это отлично, они дают ощущение прессинга и продумывания каждого хода. Такие миссии получаются настоящими тактическими миссиями.

          2) Глобальный таймер, мне, если честно, не очень понравился — но понятно зачем его ввели — он не дает построить и исследовать все, что можно — нужно выбирать всегда что приортитетно.

          В UFO тоже был глобальный таймер, если что — один год по игровому времени.

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

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

          Из построек у меня была только одна лаба, 4 ученых, школа, испытательный полигон, 2 катушки, 2 станции связи с сопротивлением. Играл отрядом из одного снайпера (ветка чистый снайпер), одного спеца (ветка хаккера), одного гренадера (раскачен в пушку) и 3 рейнджера — 2 раскаченных в мили и 1 — в фантома (для разведки).

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


        1. darthslider
          01.03.2016 15:09

          А по мне так наоборот, таймер это хорошо. Он выводит из зоны комфорта и заставляет играть агрессивнее.
          Из примеров еще кампания Starcraft 2 (любая из 3). Там много миссий с тем или иным таймером и это прекрасно, из-за этого миссии разные, а не просто строишь максимальный лимит войск час и идёшь покорять. Игра от обороны не динамична.


  1. servekon
    29.02.2016 20:21
    +1

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


    1. Oxoron
      29.02.2016 22:18
      +1

      Предпочитаемый стиль игры и его сходство с оптимальной стратегией.
      На самом деле, это иногда проявляется даже в одной игре: в World Of Tanks кто-то сидит на арте, а кто-то светит на легких танках. В Dota 2 один игрок может отлично играть керри, но плохо саппортить.
      При этом самые приспособляемые игроки (которые меняют свои стратегии в зависимости от ситуации) как правило играют одинаково (без)успешно в (почти) любые игры.


      1. Milfgard
        29.02.2016 22:36
        +1

        Найдите у Сирлина про стили игроков, там интересно.


  1. lightman
    01.03.2016 09:49

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


    1. Milfgard
      01.03.2016 10:03

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

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


  1. Aracon
    02.03.2016 10:58
    +1

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


  1. FireStorm
    05.03.2016 12:36

    «Совушки» по описанию очень похожи на «Картахену».