Статьи

Дисбаланс, инженеры и Ферми

 

Мы работаем в индустрии, во многом построенной на понятии «игрового баланса». Забавно, что единой чёткой формулы хорошего баланса до сих пор не существует.

Хороший баланс — это когда «игра работает как надо». Звучит почти как «фан — это когда играть весело». Что более эфемерно и трудно воспроизводимо — фан или баланс? Обладает ли хорошо сбалансированная игра по умолчанию фаном? Обязательно ли фановая игра должна быть хорошо сбалансирована?

Вернёмся на минутку к ещё более забавному и расплывчатому определению игровой индустрии. Что такое игра? Не хочу разжигать философские споры, однако, вспомню расхожую фразу Сида Мейера — “A game is a collection of interesting choices” = «Игра — это серия интересных решений».

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

here__at_the_end_of_all_the_things__by_darrengeers-d73dy37

Вернёмся к нашему старому примеру с комплектами предметов в ролевой игре. Представим, что вместо одного комплекта на уровень у нас есть три: А1, А2 и А3. Все они одной цены, но немного разных параметров. Если эффективность одного из комплектов будет достаточно превышать эффективность других, то это сделает их практически бесполезными в большинстве случаев.

counterspellmanaleak-01

Пример из Magic: The Gathering. В игре есть классическое синее заклинание Counterspell, которое стоит две синие маны и отменяет любое заклинание противника. Counterspell входит во все базовые редакции MTG и является «фирменной» картой синих. Позднее была введена синяя карта Mana Leak, которая также стоила две маны, только одна из них должна была быть синей, а вторая могла быть любого цвета. Но при этом Mana Leak позволяла отменять свой эффект, если противник тратил ману, что существенно ограничивало её применение. Да, в этом прослеживалась стратегия мана контроля, но карта просто не была достаточно сильна, чтобы занять слот Counterspell. Стоит ли говорить, что Mana Leak была значительно менее популярна, особенно в моносиних колодах, где бесцветная мана не давала никакого преимущества.

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

chance_go_to_jail

Известный всем пример дисбаланса — поздняя стадия игры в Монополию, когда в 100% случаев самым эффективным решением является попадание в тюрьму и пассивное наблюдение за тем, как конкуренты банкротятся на умопомрачительно дорогих клетках игрового поля. Подумайте только! Самая эффективная стратегия в игре — это не играть! Никаких решений в эндшпиле Монополии нет, это просто затянутое завершение игры.

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

maxresdefault

Высокая цена при низкой эффективности или высокая эффективность при низкой цене

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

Решение: Настройка простыми математическими действиями с ценой или базовыми параметрами эффективности.

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

Одинаковая цена и эффективность

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

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

Дисбаланс времени игрока

Большинство сравнений между элементами при балансировке связано со стоимостями различных решений — чем игрок должен пожертвовать, чтобы пойти по выбранному пути. Очень просто забыть о том факте, что на принятие решений игрок тратит время. В стратегии в реальном времени игрок не обладает бесконечным количеством времени, что делает его ценным ограниченным ресурсом. В походовой стратегии игровое время безгранично. Но время игрока — нет. Вспомните, на чём была основана основная стратегия зергов в Starcraft?

Решение: Учитывайте время, необходимое игроку на принятие решений и просчитывание последствий.

Дисбаланс умений игроков

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

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

Принудительное преимущество

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

Решение: Универсального рецепта здесь нет — проводите плейтесты и пользуйтесь аналитикой.

8zqjs

Как победить дисбаланс?

Успех победы над дисбалансом, как и любой инженерной задачи, лежит в качественной подготовке! 🙂 Балансируемость игровой модели — её качественная сторона. Чем проще привести модель в состояние баланса, тем лучше эта модель спроектирована. Если модель обладает нулевой балансируемостью, то никакие тюнинги и настройки её не спасут.

Игра — это система. С точки зрения инженера, три основных столпа любой хорошей системы это:

Модульность

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

Хороший пример — бета-тестирование Starcraft. У Blizzard была достаточно простая система повреждений. Каждый юнит наносил один из трёх типов повреждений: взрывчатый, обычный или ударный. Каждый из типов обладал различным мультипликатором против различных размеров юнитов. Взрывчатый был хорош против больших целей, ударный — против мелких, а обычный — против всего.

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

mutalisk_sc2-hots_art1

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

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

Blizzard не могли сбалансировать Муталиска ещё пять месяцев после коммерческого релиза игры. Исправление проблемы не было невозможным, но было сильно затруднено отсутствием модульности в игровой системе.

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

Справедливости ради стоит сказать, что в Starcraft модульность присутствует. Например, спеллкастеры. Каждый из юнитов этого типа служит сравнительно уникальной цели. Многие заклинания (Broodling, EMP Blast, etc) имели крайне специализированные роли. Думаю, с их балансом не возникло никаких проблем.

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

Консистентность

Очень простой и очень важный принцип. Все игровые механики и элементы должны работать на кор-геймплей, а не отвлекать игрока от него. Иначе механика в лучшем случае будет отвлекать игрока, в худшем — так или иначе нанесёт вред самому кор-геймплею. Не вводите механики и элементы, которые не будут служить цели вашей игры, не будут когерентны игровому опыту.

Простота

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

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

С чего начать?

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

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

Если у вас нет каких-то определённых целей и ограничений — делайте систему простой. Приравняйте 1 единицу маны к 1 единице повреждений — это облегчит вам жизнь. После первого фидбэка от взаимодействий в системе вы всегда сможете перенастроить значения.

Разумеется, просто свести всё к базовой формуле не получится — всё-таки частенько игры представляют собой сравнительно сложные системы. И тут нам на помощь снова приходит инженерная мысль.

59_fermi_102

Метод Ферми

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

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

Число настройщиков пианино в Чикаго =

= (Численность населения / Число членов одной семьи) х

х Процент семей, пользующихся услугами настройщиков х

х Число настроек в году /

/ (Число пианино, настраиваемых одним настройщиком за день х Число рабочих дней в году).

В зависимости от подставляемых в уравнение цифр получается ответ в интервале 20–200. Верный ответ — примерно 50 человек. Когда эту цифру сравнивали с реальной (которую Ферми мог узнать из телефонного справочника), она всегда была ближе к реальной, чем думали студенты.

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

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

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

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


Надеюсь, что кому-нибудь было интересно или полезно. В следующий раз расскажу, как дисбаланс может быть весёлым 🙂

Увидимся!

1-B-Z8FyPQYxIDt9DL_5dTiA

Источники:

14 комментариев

  • Alexzander Protasenya

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

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

    Буду благодарен, если ты, Ник, тут в комментах покажешь хорошую, модульную систему (желательно, простую, чтоб ее легко было объять мыслью). А то мне там интереснее всего было, а осталось белое пятно. 🙂

    • Matsukaze

      Спасибо, Саш 🙂

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

      Но вообще спасибо за вопрос, думаю, я напишу еще один пост отдельно про модульность.
      Чтобы спокойно и с примерами во всем разобраться 🙂

  • Йодлер

    Counterspell’а в Магии уже сто лет как нет (впрочем как и самих базовых редакций), как раз потому что это слишком дисбалансная карта. Mana Leak пришел на замену. Он не хуже и ставит оппонента в ситуацию интересного выбора.

    • Matsukaze

      Давненько не слежу, да, mea culpa.

      Я не говорил, что Mana Leak – плохая карта. Это просто пример дисбаланса между Counterspell и Mana Leak. Проблема однозначно выгодного решения.

      А Визарды, значит, решили эту проблему, здорово.

    • Matsukaze

      Если бы вы посмотрели внимательно список в конце поста с заголовком “Источники”, то несомненно увидели бы ссылку на оригинал статьи, перевод которой вы указали в своей ссылке 🙂

      • Alexey Izvalov

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

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

  • Алексей

    Ник, спасибо за статью . Интересно.

    Не очень ясна мысль про модульность и пример с муталиском. Что имеется ввиду под модулем? Что значит “каждый игровой элемент… должен служить единственной цели”? По-моему, высший пилотаж геймдизайнера – это когда вся система распадается на _минимальное_ число базовых элементов/принципов (типы брони, типы урона и их сочетания), и из нее все следует “автоматом”. Чем меньше таких типов сущностей (вы их называете модулями?), тем лучше. Потому что проще (для игрока, не дизайнера), а все гениальное – просто. По-моему, когда одним простым элементом удается покрыть несколько аспектов баланса – наоброт замечательно (трудно для геймдизайнера, но круто в результате).

    Чем больше модулей, чем бошьше различных типов и подтипов, чем больше у отдельных юнитов “оговорок” и “исключений” в отношении других юнитов, тем менее изящно это выглядит. Конечно, можно было бы выделить отдельный тип “муталиск” (не дай Бог!), или разделить урон муталиска на “против земли” и “против воздуха”, но это выглядело бы более искусственно (это же не техника с разными оружиями против земли и воздуха). Иногда без такого деления не обойтись: например, ледяной змей нежити в варкрафт3 имеет разный урон против земли и против воздуха, хотя визуально обе атаки выглядят одинакого. Такое дополнительное разделение – имхо, компромис, на который иногда приходится идти, когда не получается добиться баланса без него. Но это не должно быть приёмом “по умолчанию”.

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

    Со спелкастерами тоже не ясно. В чем их модульность? Заклинания имеют чёткое описание, ясное единообразное действие (с интуитивно понятными исключениями). То, что они имеют разную эффективность против разных юнитов – это само собой. Но действуют-то они принципильно одинакого на все возможные цели. В том-то и прелесть, что не вводя никакие дополнительные сущности (модули?) типа “сопротивление магии огня/воды/воздуха/…”близзы смогли обеспечить такое разнообразие эффектов и … баланс! Что здесь есть модуль: конкретный вид юнита? конкретное заклинание? Что есть пример “правильного” геймдизайна с модульностью? не понятно…

    В общем, ждем статьи с дальнейшими разъяснениями и примерами! Спасибо 🙂

Добавить комментарий для Клян Задумчивый Отменить ответ