В этой главе
• Что такое ситуационный баланс.
• Простой пример.
• Универсальность.
• Скрытые затраты.
• Практические примеры.
В главе 8 мы говорили о балансе транзитивных механизмов, а в главах 17 и 18 — о теории вероятностей. Здесь объединим эти две темы для балансировки механизмов, которые как бы являются транзитивными, но позволяют значению изменяться в зависимости от игрового состояния. Поскольку у таких механизмов нет общепринятого названия, в этой книге будем называть их ситуационным балансом.
Рассмотрим случай, когда атака наносит урон не одному врагу, а сразу всем находящимся в пределах определенного радиуса действия (area of effect, AoE). То, что наносит 500 очков урона всем врагам в пределах своего радиуса действия, при прочих равных условиях, как правило, более ценно, чем то, что наносит 500 очков урона одиночной цели. Но насколько более ценно? Это зависит от конкретного случая. В схватке с одиночным врагом один на один мы не получим никакой дополнительной ценности: противнику будут нанесены 500 очков урона вне зависимости от того, станут ли в дополнение к нему поражаться и все другие расположенные рядом цели (в данном случае их нет). В то же время в схватке с 50 врагами, сгрудившимися в одну роящуюся массу, AoE-атака будет в 50 раз ценнее заклинания, поражающего одиночную цель. В вашей игре, вероятно, будут и такие места, где игрок сражается с громадными скопищами врагов, и такие, где он бьется с одним лишь боссом. Как же при этом сбалансировать ценность AoE-атаки относительно эквивалентной атаки на одиночную цель?
В качестве еще одного примера рассмотрим случай, когда в PvP-игре размер производимого эффекта зависит от того, что делает противник. Например, в первой версии игры Magic: the Gathering было заклинание «Карма», которое за каждый ход наносило противнику количество урона, равное количеству используемых им карт «Болото». Если в колоде противника было 24 карты «Болото», вы могли очень быстро его уничтожить, задействуя только карту этого заклинания. Если же в колоде противника не было карт «Болото», то в большинстве случаев «Карма» была совершенно бесполезной. Но если наряду с картой кармы в колоде игрока были карты, позволяющие превратить земли противника в болота, то ценность этой карты зависела от умения игрока сочетать ее эффект с эффектом других карт, вводимых в действие вытягиванием из перетасованной колоды или каким-то иным образом. При этом данная карта все равно должна была иметь фиксированную стоимость. Каким же образом геймдизайнеру удавалось назначить ей подходящую цену?
Еще один распространенный случай — балансировка эффекта исцеления. В большинстве игр здоровье персонажа не может превышать некоторый максимальный уровень, с которым он обычно начинает игру, и если персонаж уже достиг максимального уровня здоровья, исцеление совершенно бесполезно. Однако оно может обратить поражение в победу, если и персонаж игрока, и его противник находятся на грани гибели и нужно успеть провести еще лишь одну-две атаки. Каким образом можно сбалансировать эффект исцеления, если в зависимости от ситуации он может варьироваться от близких к нулю до близких к бесконечности значений?
Во всех этих случаях выбор подходящей стоимости эффекта на вашей кривой стоимости зависит от сложившейся в игре ситуации, поэтому здесь мы будем называть такие эффекты ситуационными, а процесс их балансировки — ситуационным балансом. Как же можно сбалансировать то, что должно обладать фиксированной стоимостью, при изменяющемся количестве приносимой пользы? Короткий ответ состоит в следующем: с помощью теории вероятностей мы определим ожидаемый размер приносимой пользы. В зависимости от характера производимого эффекта можем определить также максимальный или минимальный возможный размер приносимой пользы. Окончательная сбалансированная стоимость рассматриваемой вещи обычно находится в промежутке между этими величинами.
Наилучший способ определения правильного размера приносимой ситуационными эффектами пользы часто сводится к применению игрового тестирования и аналитики (см. главы 13 и 15). Однако для этого мы уже должны иметь готовую игру и играющих в нее людей, чтобы можно было получить реальные данные об использовании эффектов в реальном игровом процессе. Но размер доступного бюджета часто не позволяет провести полное игровое тестирование игры до ее выпуска, так что часто мы не можем ждать, пока она будет выпущена и можно будет применить крупномасштабную аналитику для балансировки игры. А если и можем, то все равно нужно иметь отправную точку, потому мы изначально должны сделать наиболее вероятное и хорошо обоснованное предположение. В этой главе рассмотрим некоторые из методов, помогающих сделать его.
Начнем с простого примера — максимально упрощенной версии системы боя на основе кубика d20, используемой в третьей версии игры Dungeons & Dragons. Эта система работает следующим образом. Каждый персонаж в ней обладает двумя параметрами: базовым бонусом атаки (base attack bonus, BAB) и классом доспехов (armor class, AC). В каждом раунде любой персонаж может провести одну атаку против одного противника. В ходе атаки игрок бросает 1d20 и добавляет к выпавшему числу BAB своего персонажа, после чего полученный результат сравнивается с AC выбранной цели. Если он больше или равен AC цели, то считается, что она поражена, в противном случае — что удар прошел мимо. У дефолтного «ванильного» персонажа параметр BAB изначально равен 0, а параметр AC — 10. То есть в отсутствие каких-либо других бонусов «ванильному» персонажу удается поразить другого «ванильного» персонажа в 55 % случаев.
Для такой системы актуальным становится вопрос о том, насколько сбалансированы параметры AC и BAB. Иначе говоря, будет ли увеличение на единицу параметра BAB персонажа (повышающее вероятность попадания в цель) компенсироваться увеличением на единицу параметра АС его противника (делающим его менее уязвимым). Или же один из этих двух параметров будет мощнее другого?
Прежде всего следует понять, что мы не можем дать точный ответ на этот вопрос, потому что не знаем, какой урон наносит один удар и сколько здоровья еще осталось у персонажа (то есть сколько ударов он еще может пережить и сколько успешных ударов нужно нанести врагу, чтобы его победить). В то же время, если мы допустим, что эти величины равны (или равносильны), это не будет иметь никакого значения. Сколько бы раз ни требовалось поразить противника для того, чтобы его убить, — 1, 5 или 100, если при этом он будет в равной мере уязвим к атакам персонажа, то главным фактором успеха станет то, насколько высок процент попадания у персонажа по сравнению с противником. Персонаж попадает в противника в определенном проценте случаев, а противник, в свою очередь, в определенном проценте случаев попадает в персонажа, и игрок хочет, чтобы процент попадания у его персонажа был выше, чем у противника. Если для того, чтобы купить персонажа, требуется столько же попаданий, сколько и для того, чтобы убить противника, то большее количество необходимых попаданий обеспечит меньший разброс результатов бросания кубика (при достаточно большом количестве бросков начнет сказываться закон больших чисел, и победу практически всегда будет одерживать игрок с более высоким процентом попадания), а меньшее количество необходимых попаданий позволит чаще выигрывать игроку с меньшим процентом попадания, несмотря на более низкие шансы на успех.
Таким образом, в данной системе важен не абсолютный процент попадания, а процент попадания по сравнению с противником. Если и персонаж, и противник могут попасть друг в друга с 5%-ной вероятностью (в силу низкого параметра BAB и высокого параметра AC), то они будут попадать довольно редко. Если же и персонаж, и противник могут попасть друг в друга с 95%-ной вероятностью (из-за высокого параметра BAB и низкого параметра AC), то они будут попадать почти постоянно. И в том и в другом случае они станут наносить друг другу удары с равной частотой. Это значит, что повышение на 5 % вероятности попадания в противника (увеличение на 1 параметра BAB) будет равносильно снижению на 5 % вероятности поражения персонажа противником (увеличению на единицу параметра AC). Полагая, что персонаж должен наносить успешные удары с той же частотой, что и противник, можно сделать вывод, что эти два параметра действительно равносильны в поединке с одиночным противником в режиме «один на один».
Но что, если мы не будем ограничиваться только поединками в режиме «один на один»? Что, если персонажу придется в одиночку противостоять сразу четырем врагам? Здесь на каждую атаку персонажа будут приходиться четыре атаки противников. В таком случае эффект от увеличения на единицу параметра AC будет в четыре раза мощнее, чем от увеличения на единицу параметра BAB, потому что броски кубика, использующие параметр AC персонажа, будут производиться в четыре раза чаще, чем броски кубика, задействующие параметр BAB.
Теперь давайте представим противоположную ситуацию, когда партия из четырех персонажей пытается устранить одного мощного монстра, например великана. Исходя из предположения, что он может атаковать за раз только одного члена партии, можно сделать вывод: на этот раз более мощный эффект дает увеличение на единицу параметра BAB. В то же время при равномерном распределении атак великан сможет атаковать каждого отдельного члена партии только раз в четыре раунда, то есть за раунд каждый член партии будет совершать одну атаку и подвергаться атаке в среднем 0,25 раза. Таким образом, в данном случае эффект от увеличения на единицу параметра BAB в четыре раза мощнее, чем от увеличения на единицу параметра AC.
Даже в поединках один на один многое зависит от того, какой урон могут наносить оба соперника и каков уровень их здоровья. Если при том же уровне здоровья противник наносит в два раза больший урон, чем персонаж игрока, то уклонение от ударов противника в два раза важнее, чем нанесение ударов ему, и параметр AC в такой битве будет в два раза мощнее параметра BAB. Если при одинаковом количестве наносимого урона персонаж обладает в два раза большим количеством здоровья, то он может победить, даже нанося удары в два раза реже противника. В данном случае параметр BAB в два раза полезнее параметра AC, поскольку каждое попадание в противника здесь равносильно получению от него двух ударов, что делает более важным нанесение энергичных ударов, а не уклонение от слабых ударов противника.
На практике при проведении большинства кампаний в игре Dungeons & Dragons мастера игры любят ставить свою партию в такие условия, когда ей противостоят превосходящие по числу и мощности силы противника. Игровое окружение здесь идеально подходит для героев, одолевающих зло вопреки чрезвычайно низким шансам на успех, и помещение таких персонажей в сложные ситуации делает игровой процесс более эпичным. Это значит, что обычно параметр AC мощнее, чем параметр BAB. Эти два параметра не эквивалентны на кривой стоимости, даже если поведение игры предполагает это, и любой мастер игры, который хочет обеспечить сбалансированный игровой процесс, должен учитывать это при планировании своих кампаний.
Последствия для разработчиков игр. Конечно, рассмотренная нами простая система — это крайнее упрощение. Однако интересным моментом здесь является то, что, когда персонаж мощнее противника, более ценной является атака, а когда слабее — защита.
В процессе работы над игрой, в которой заранее известно, с чем столкнется игрок, как в случае шутера от первого лица или ролевой игры с разрабатываемыми вручную уровнями, можете использовать свое знание о предстоящих игроку препятствиях для балансировки игры. Например, если вы имеете дело с игрой, реализующей рассмотренную нами упрощенную систему боя с кубиком d20, и при этом известно, что в большинстве случаев игрок будет сражаться с превосходящим числом противников, можете увеличить стоимость параметра AC на кривой стоимости. Но если хотите, чтобы параметры BAB и AC были эквивалентны и уравновешивали друг друга, можно изменить набор используемых в игре боев таким образом, чтобы количество боев с превосходящим и меньшим числом противников было примерно равным. Это не только позволит сбалансировать по отношению друг к другу параметры BAB и AC, но и сделает более увлекательным повторное прохождение игры, поскольку при высоком параметре BAB игрок будет получать совершенно иные впечатления, чем при высоком параметре AC, — в этих случаях трудными или легкими будут разные наборы боев, что обеспечит игроку разную перспективу и разный уровень сложности в каждом бою.
А если наша упрощенная система боя с кубиком d20 будет работать таким образом, что перед началом каждого боя игрок сможет свободно преобразовывать параметр AC в параметр BAB в соотношении 1:1? В таком случае эти два параметра неожиданно становятся эквивалентными друг другу и увеличение на единицу любого из них дает более мощный и универсальный эффект, чем увеличение любого другого параметра.
Большинство ролевых игр не позволяют производить полное перераспределение очков характеристик персонажа в любой момент, однако в очень многих играх вы все же можете обменивать одну ситуационную вещь на другую. Такую возможность, например, часто предлагают игроку шутеры от первого лица. Здесь у игрока может быть сразу несколько специализированных видов оружия: ракетомет для поражения больших и малоподвижных целей или целых скоплений противников, снайперская винтовка для стрельбы с большой дистанции по одиночным целям, нож или бензопила для ближнего боя и т.д. Каждый вид оружия хорошо подходит для одних ситуаций и плохо — для других, но если вы можете переключаться с одного на другой с минимальной задержкой, то важно лишь то, на что эти виды оружия способны в совокупности, а не то, какими ограничениями каждый из них обладает в отдельности. При этом гораздо лучше иметь множество видов оружия для каждой возможной ситуации, чем один универсальный вид оружия, рассчитанный на все случаи жизни.
Но давайте допустим, что мы повысили стоимость переключения с одного вида оружия на другой, например сделав так, чтобы это происходило с пятиминутной задержкой. В таком случае ограничения каждого вида оружия в отдельности неожиданно начинают играть более важную роль, в результате чего один универсальный вид оружия может быть эффективнее целого набора ситуационных видов.
Мы можем модифицировать ситуационный баланс, просто изменяя стоимость переключения между разными инструментами, видами оружия, распределениями параметров, общими стратегиями и т.д.
Давайте рассмотрим крайний случай, когда игрок вообще не может переключаться с одной стратегии на другую. В качестве примера можно взять простую ролевую игру, в которой игроки не могут носить с собой и использовать больше одного вида доспехов и одного вида оружия и получение нового вида оружия или доспехов автоматически ведет к потере старого. В таком случае расчеты становятся довольно простыми: поскольку возможен лишь один вариант, мы должны рассмотреть его во всех вероятных ситуациях. Это напоминает вычисление ожидаемого значения. То есть вы можете спросить: в каких ситуациях рассматриваемый объект обладает большим или меньшим значением, как часто игрок сталкивается с теми или иными ситуациями (вероятность) и насколько больше или меньше значение объекта в каждой из них (результат)? Умножьте каждую вероятность на соответствующий результат и сложите вместе все отдельные сценарии.
В качестве простого примера допустим, что вы решили создать меч, способный наносить драконам в два раза бóльший урон, чем прочим соперникам. Предположим, что поединки с драконами в вашей игре составляют 10 % от общего количества значимых поединков. Также допустим, что в линейной зависимости от количества урона находится его стоимость, то есть удвоение наносимого оружием урона делает его ровно в два раза ценнее.
Рассматриваемый нами меч в 90 % случаев имеет обычную ценность, а в 10 % случаев — в два раза бóльшую:
90 % × 1,0 + 10 % × 2,0 = 1,1.
Таким образом, стоимость меча, наносящего в два раза бóльший урона драконам, в 1,1 раза больше, чем стоимость меча, всегда наносящего стандартный урон, то есть эта особенность увеличивает базовую стоимость на 10 %.
Вот еще один пример: допустим, вы решили создать меч, который будет в 1,5 раза мощнее всех других мечей того же класса, но станет наносить в два раза меньший урон троллям. Также предположим, что нанесение в два раза меньшего урона несет значительные издержки: не позволяя использовать обычный способ нанесения урона, это заставляет игрока полагаться на другие, менее эффективные способы, что, в свою очередь, существенно повышает вероятность гибели персонажа при встрече с троллем. Таким образом, в данном случае нанесение в два раза меньшего урона не просто снижает ценность меча в два раза, а делает ее отрицательной, увеличивая количество издержек. А точнее, если ценность стандартного меча — 100 единиц, то ценность данного составляет 150 единиц в тех случаях, когда он наносит в 1,5 раза бóльший урон, и –250 единиц — в поединках с троллями. Но давайте также предположим, что тролли встречаются довольно редко и поединки с ними составляют лишь 5 % от общего количества. Таким образом, стоимость этого ненадежного меча составит:
150 × 0,95 + (–250) × 0,05 = 130.
Как видите, стоимость этого меча на 30 % выше, чем обычного стоимостью 100 единиц. Также можно заметить, что здесь имеется сразу несколько «ручек настройки», позволяющих настраивать баланс. Прежде всего изменить стоимость или количество пользы, приносимой рассматриваемым объектом, очевидно, можно, изменив урон, наносимый им в особых ситуациях, или его базовую стоимость во всех прочих. Наряду с этим вы также можете изменить частоту возникновения особых ситуаций (встреч с троллями или драконами) в рамках всей игры или только в пределах области, где игрок находит данный меч. Ведь если непригодное для борьбы с троллями оружие будет обнаружено в той области игры, где их практически нет, это не станет проблемой, даже если все остальные области просто кишат троллями.
Теперь рассмотрим другой крайний случай, когда игрок может носить с собой сколько угодно ситуационных объектов и свободно мгновенно переключаться с одного на другой. В данном случае ограничения отдельных объектов играют гораздо меньшую роль, чем преимущества, поскольку получение новой способности не несет какой-либо упущенной выгоды. Чтобы в данном случае определить ценность нового объекта, необходимо посмотреть, какие преимущества дают игроку уже имеющиеся и какое дополнительное преимущество несет новый объект по сравнению с тем, что позволяют сделать другие. Умножьте это дополнительное преимущество (по сравнению с тем, что можно было сделать без нового объекта) на процент случаев, в которых оно используется. Это и будет ценность нового объекта.
Однако в большинстве случаев дело обстоит далеко не так просто. Если игровой процесс не абсолютно линейный, то при каждом прохождении игры геймер может выбирать объекты в разном порядке. Он может задействовать неоптимальные стратегии, выбирая объекты, которые не самым идеальным образом подходят для ситуации, но все же могут в ней применяться. В общем, вы не можете точно знать, часто ли будет использоваться в такой игре тот или иной объект, поскольку это зависит от того, какими еще инструментами располагает игрок и какой стиль игры он предпочитает.
Давайте рассмотрим еще один пример: допустим, ваша игра предлагает игроку несколько разных мечей и он может переключаться между ними в любой момент, не неся никаких издержек. Каждый меч наносит двойной урон одному классу монстров, полуторный — другому, нулевой урон — третьему и стандартный урон — всем остальным типам монстров. Допустим, что во всех прочих отношениях мечи одинаковые и все классы монстров встречаются с одинаковой частотой и одинаково опасны.
| Меч | Урон | Неэффективен против | |
| В 2 раза больше | В 1,5 раза больше | ||
| Меч-убийца | Драконы | Тролли | Слизни |
| Легендарный | Звери | Гоблины | Тролли |
| Меч вермиллиона | Слизни | Демоны | Кролики |
| Меч мастера | Нежить | Драконы | Гоблины |
| Небесный | Демоны | Кролики | Люди |
| Магический | Гоблины | Нежить | Големы |
| Сломанный | Кролики | Слизни | Драконы |
| Гигантский | Люди | Големы | Звери |
| Меч самурая | Големы | Люди | Нежить |
| Потерянный | Тролли | Звери | Демоны |
Очевидно, что стоимость этих мечей должна быть одинаковой. Однако на самом деле польза, приносимая каждым из них в любой заданный момент времени, неодинакова и зависит от того, сколько мечей уже успел собрать игрок.
Например, игрок купит меч-убийцу, который наносит повышенный урон драконам и троллям. После этого приобретение потерянного меча будет не очень значительным улучшением, поскольку он наносит двойной урон троллям, а игрок уже и так будет наносить им повышенный урон. Переход к множителю 2 от множителя 1,5 — менее значительное улучшение, чем переход к множителю 2 от множителя 1.
В оптимальном случае игрок может купить только пять мячей (включая, скажем, меч-убийцу, меч вермиллиона, магический меч, меч самурая и потерянный меч), обеспечив таким образом как минимум полуторный урон в схватке с каждым из десяти типов монстров. Начиная с этого момента приобретение дополнительных мечей будет давать гораздо меньшую отдачу, что должно привести к соответствующему снижению их стоимости.
Как же в таком случае следует поступать на практике? Вот некоторые из возможных подходов (может, вам удастся придумать и другие способы).
• Можно изменять стоимость объектов по ходу игры. В случае приобретения всех десяти мечей у одного и того же продавца (или у одного и того же производителя мечей) можно снижать стоимость каждого следующего меча. При желании это можно встроить в сюжет в виде предоставления персонажу скидки как хорошему покупателю. Вы даже можете выдавать игроку дисконтную карту с печатью продавца на ней.
• Можно не изменять стоимость объектов. В таком случае игрок будет получать все меньшую отдачу при покупке дополнительных мечей и довольно значимым будет вопрос о том, на каком их количестве следует остановиться.
• Если по мере прогресса в ходе игры геймер будет получать все большее количество денег, то, даже не изменяясь, стоимость объектов фактически будет уменьшаться, поскольку приобретение каждого следующего меча будет требовать все меньших затрат времени на исследование территории или схватки с врагами.
• Можно сделать так, чтобы игрок получал каждый меч в той или иной местности, что позволит вам знать заранее, на каком этапе игры он станет обладателем того или иного меча. При этом всем мечам можно будет назначить разные цены, поскольку известно, какие из них игрок получит, уже располагая большой коллекцией мечей.
Если вы введете определенную плату за переключение с одного меча на другой, это пропорционально ослабит эффект уменьшения отдачи, но вы по-прежнему сможете использовать любой из этих методов или сразу все для балансировки стоимости объектов, просто применяя их менее интенсивно.
До сих пор мы рассматривали только случаи, когда игровые объекты являются фиксированными и специализированными и степень универсальности персонажа определяется тем, насколько он способен переключаться между ними. Но что, если сам объект универсален и может использоваться в нескольких разных ситуациях? Так, к примеру, часто обстоит дело в пошаговых стратегиях и стратегиях реального времени, где отдельный юнит может выполнять сразу несколько функций. Например, в стратегии реального времени часто имеются следующие три класса юнитов: лучники, пехота и летающие юниты. Лучники эффективно борются с летающими юнитами, летающие юниты эффективно сражаются с пехотой, а пехота эффективно борется с лучниками (такие отношения называют нетранзитивными, мы поговорим о них подробнее в главе 25). Теперь предположим, что вы создали новый класс юнитов — волшебники, которые хорошо справляются и с пехотой, и с летающими юнитами, но не так эффективны против летающих юнитов, как лучники, и пехоты, как летающие юниты. То есть если лучник может уничтожить летающий юнит, потеряв только 20 % здоровья, то волшебник может это сделать, потеряв, скажем, 50 %. Таким образом, волшебники не так хорошо справляются с летающими юнитами, как лучники, но, помимо этого, могут делать и другие вещи, являясь более универсальными.
Еще одним примером может быть типичный шутер от первого лица, где в ближнем бою обычно наиболее эффективны ножи и мечи, а на дальней дистанции — снайперские винтовки. Автомат при этом может быть достаточно эффективным и на ближней, и на дальней дистанции, но не настолько эффективным, как другие виды оружия. Вооруженный автоматом игрок всегда сможет справиться с более слабовооруженным противником, но его оружие никогда не будет идеально подходящим для этой задачи.
Сколько же стоит подобная универсальность объекта? Ее стоимость прямо пропорциональна имеющейся здесь степени неопределенности. Если игрок заранее знает, что ему придется играть на небольшой карте с узкими коридорами и множеством изгибов и поворотов, то нож будет полезнее снайперской винтовки. А если ему потребуется действовать на большой карте, состоящей главным образом из широких открытых пространств, ситуация будет обратной. Если же на карте есть и открытые, и закрытые пространства, более полезным будет оружие, которое можно использовать в пространствах обоих типов.
А если карта выбирается случайным образом и геймеры должны определиться с оружием до того, как станет известно, на каком уровне они будут играть? Допустим, что с вероятностью 50 % игрок может получить карту, на которой лучше действовать ножом, и с той же вероятностью — карту, на которой лучше воевать со снайперской винтовкой. Как будет выглядеть наилучшая стратегия в таком случае? Универсальное оружие будет здесь умеренно эффективным в обоих случаях, но не настолько эффективным, как правильно выбранное специализированное оружие. Игра при этом окажется не слишком интересной: игроки должны заранее выбирать вслепую, после чего все определяется тем, чей выбор оказался более удачным… если только вы не предоставите механизм, позволяющий менять оружие в ходе игры в соответствии с картой, или не разрешите им носить с собой сразу нескольких видов оружия. Это вновь возвращает нас к тому, что существуют два вида универсальности: способность отдельного игрового объекта быть полезным в нескольких ситуациях и способность игрока переключаться с одного специализированного игрового объекта на другой. Чем легче переключаться между игровыми объектами или стратегиями, тем менее полезна универсальность отдельного объекта.
При обсуждении кривых стоимости в главе 8 говорилось о том, что под стоимостью может пониматься не только непосредственно выраженная в ресурсах стоимость объекта, но и различные недостатки и ограничения. С такими нересурсными затратами часто приходится иметь дело при нахождении ситуационного баланса. В сфере экономики такие расходы называют скрытыми затратами, поскольку они скрываются за ресурсной стоимостью.
Вот пример скрытых затрат из реального мира. Допустим, вы решили купить дешевый будильник за 5 долларов, что на первый взгляд кажется вам очень выгодным. Однако здесь есть дополнительная стоимость в виде затрат времени и транспортных расходов, необходимых для того, чтобы пойти и купить этот будильник. Поэтому, если он продается далеко от вашего дома, покупка будет менее выгодной. Если будильник окажется недостаточно качественным или если из-за его плохого дизайна вы случайно перепутаете время до полудня (AM) с послеполуденным (PM) и пропустите важную встречу, то понесете дополнительные затраты времени и денег в связи с переносом встречи. Если будильник сломается через несколько месяцев из-за использования дешевых компонентов, то еще одной статьей затрат станут затраты времени на возвращение его продавцу или замену.
Таким образом, хотя цена этого будильника только 5 долларов, его реальная стоимость с учетом всех скрытых затрат будет гораздо больше и даже может превысить стоимость более дорогого, но лучше сделанного будильника.
В сфере игр существует два вида скрытых затрат, с которыми часто приходится сталкиваться при нахождении ситуационного баланса: безвозвратные издержки и упущенная выгода. Давайте разберемся с тем, что они собой представляют.
Безвозвратные издержки — это предварительные затраты, которые приходится нести еще до получения доступа к вещи, которой вы хотите обладать. Типичный пример таких затрат — дерево технологий, часто реализуемое в стратегиях реального времени, ролевых и многопользовательских онлайн-играх. Так, например, в первой версии игры StarCraft для создания большинства видов юнитов игрок должен сначала построить сооружение для их производства. Оно может не иметь какой-либо иной практической пользы, лишь позволяя его владельцу создавать определенные юниты. Таким образом, если для создания драгунов стоимостью 125 минералов и 50 единиц газа нужно сначала создать врата (стоимость — 150 минералов), а затем — кибернетическое ядро (стоимость — 200 минералов), которые не несут никакой иной пользы, то реальная стоимость одного драгуна в итоге составит 475 минералов и 50 единиц газа, включая безвозвратные издержки в 350 минералов. Это намного больше базовой стоимости данного юнита!
Конечно, если игрок создаст не одного, а десять драгунов, то безвозвратные издержки будут амортизироваться в рамках всех десяти юнитов. Общая стоимость одних врат, одного кибернетического ядра и десяти драгунов составляет 1600 минералов и 500 единиц газа, что дает нам стоимость 160 минералов и 50 единиц газа за одного драгуна — это уже гораздо ближе к заявленной цене данного юнита.
Если бы врата или кибернетическое ядро давали игроку дополнительные преимущества, например позволяли создавать иные виды зданий или юнитов, производить апгрейд определенных юнитов и т.д., то некоторую часть стоимости этих зданий можно было бы включить в стоимость данных вещей, а не в стоимость драгунов.
Но, как бы там ни было, если игроку приходится нести предварительные затраты лишь для того, чтобы можно было оплатить дополнительную стоимость чего-то, вы обязательно должны учитывать эти безвозвратные издержки в своем анализе. Если безвозвратные издержки можно амортизировать в рамках целого ряда последующих покупок, то их размер следует определять, исходя из ожидаемого значения, то есть среднего количества драгунов, создаваемого в тех играх, где игрок создает и врата, и кибернетическое ядро. При определении стоимости драгунов разработчик должен, помимо прочего, учитывать и эти предварительные расходы.
Возможен и противоположный подход: вместо того чтобы определять окончательную стоимость приобретаемой вещи с учетом скрытых затрат, можно вычислять размер этих предварительных затрат, учитывая не только то, какие непосредственные преимущества дает приобретаемая вещь, но и то, какие выгоды позволяет получить в дальнейшем. Ярким примером этого подхода являются деревья технологий. В ролевых играх некоторые особые способности или умения часто не несут большой пользы сами по себе, но зато позволяют приобретать более мощные способности на позднейших этапах. Это может вести к принятию интересных решений в плане кратко- и долгосрочной перспективы, когда игрок делает выбор в пользу получения либо хорошей способности прямо сейчас, либо менее мощной сейчас для того, чтобы получить действительно мощную способность в дальнейшем.
Безвозвратные издержки встречаются и в других разновидностях игр. В ролевых играх игроку часто приходится выбирать между приобретением расходуемых предметов (которые стоят дешевле, но могут использоваться только один раз) и многоразовых версий тех же предметов (они дороже, но могут применяться неограниченное количество раз). Например, игроку может предлагаться выбор между покупкой зелья за 50 золотых монет и покупкой машины для производства неограниченного количества зелий за 500 золотых монет (покупка машины будет более выгодной, если игрок собирается использовать свыше десяти зелий). Возможно, ему будет предлагаться выбор между покупкой билета в один конец за 10 золотых монет и покупкой пропуска, дающего пожизненное право на проезд, за 1000 золотых монет (покупка пропуска будет иметь смысл, только если игрок планирует совершить более 100 поездок). Возможно, игроку будет предложена дисконтная карта магазина, которая позволяет совершать все последующие покупки с 10%-ной скидкой, но стоит 5000 золотых монет (это будет выгодным приобретением, если игрок собирается потратить на последующие покупки как минимум 50 000 золотых монет). Такой выбор не всегда интересен игроку, поскольку здесь он должен определить, сколько раз применит что-то, не зная, сколько еще продлится игра или сколько раз он может использовать эту вещь, то есть совершая выбор вслепую. Однако, как разработчики игры, мы можем довольно точно оценить ожидаемое значение для таких предметов и, произведя собственные расчеты, сбалансировать эти предметы соответствующим образом. Если это будет сделано правильно, то выбирать между покупкой и отказом от покупки по крайней мере можно будет с уверенностью в том, что стоимость каждого предмета определяется его ценностью.
Вторая разновидность скрытых затрат — так называемые издержки от упущенной выгоды — представляет собой стоимость отказа от чего-то другого, уменьшающего степень универсальности. Примером таких затрат в играх с деревом технологий является выбор одной из нескольких ветвей дерева в том случае, когда эти ветви блокируют друг друга. Например, в некоторых играх изучение магии огня блокирует для игрока изучение заклинаний магии льда и наоборот. Еще один пример — случай, когда в системе квестов игроку приходится выбирать, какой из двух конкурирующих квестов он будет проходить (при выборе одного квеста другой автоматически становится недоступным). Во многих коллекционных карточных играх уже сам факт включения в колоду определенных карт делает для игрока невозможным добавление других карт (если это карты конкурирующих фракций и правила составления колоды не допускают присутствия в одной колоде карт разных фракций) или накладывает иные ограничения (если каждая фракция обладает собственным типом ресурсов, подобно пяти цветам маны в игре Magic: the Gathering, то добавление в колоду дополнительных фракций делает более сложной задачу сбора всех необходимых ресурсов). В каждом из этих случаев выполнение определенного действия в игре в данный момент делает невозможным выполнение другого действия в дальнейшем или делает его выполнение более затратным.
В данном случае исходные действия несут с собой скрытые затраты: в дополнение к явной ресурсной стоимости выполнения действия в данный момент игрокам приходится нести дополнительные затраты в дальнейшем в виде уменьшения степени универсальности. То есть исходное действие ограничивает выполнение последующих действий. Каким же будет размер этого ограничения, если мы выразим его в виде стоимости? Это зависит от того, что представляет собой ваша игра и как сочетаются друг с другом ее механизмы. Однако помните, что эта стоимость не равна нулю, и обязательно учитывайте ее при анализе кривой стоимости.
Важные практические примеры
Как все эти концепции работают на практике? Рассмотрим несколько простых примеров, чтобы получить общее представление об этом.
Свитки огня и льда
Как же на практике работают цифры для балансировки универсальности? Это зависит от характера универсальности, а также от стоимости и сложности переключения.
Допустим, в рассматриваемой игре имеется арена, на которой игроки могут сразиться друг с другом в режиме «один на один». На ней каждый игрок применяет либо ледяную, либо огненную атаку (всегда только один вид), и оба эти вида одинаково популярны у игроков. Перед выходом на арену игрок может купить защиту от заклинания льда, которая наполовину уменьшает урон от него, или аналогичную защиту от заклинания огня, и оба вида защиты стоят по 10 золотых монет. Существует также третий вариант — комбинированная защита от огня и льда, которая одновременно снижает оба вида урона. Сколько должен стоить этот вариант, чтобы быть сбалансированным?
Это зависит от того, какой информацией о противнике обладает игрок. Если ему заранее известно, что противник будет использовать огонь, то третий вариант должен стоить столько же, сколько стоит защита от огня, то есть 10 золотых монет. Универсальность не дает здесь никакой дополнительной ценности, поскольку игрок уже знает, какой вариант выбора будет наилучшим.
Если же игрок никак не может узнать, какой тип атаки применяет противник, до совершения своего выбора, то третий вид защиты должен стоить 20 золотых монет, то есть столько же, сколько нужно потратить при покупке защиты как от огня, так и ото льда. Здесь универсальность дает ту же добавленную стоимость, что и покупка обоих видов защиты по отдельности, поскольку, по сути, нет никакой разницы между их покупкой порознь или одновременно.
А если мы предложим игроку выбрать один из двух свитков, огня или льда, перед началом схватки, а затем в случае неправильного выбора дадим ему возможность взять тайм-аут для покупки другого свитка? В таком случае игроки обычно будут сначала тратить 10 золотых монет на покупку одного из свитков, и с равной вероятностью 50 % их выбор окажется правильным (в случае чего они потратят только 10 золотых монет) или неправильным (при этом придется отдать еще 10 золотых монет для получения нужной защиты, и общие затраты составят 20 монет). Ожидаемая стоимость здесь составляет (50 % × 10) + (50 % × 20) = 15 золотых монет, то есть именно столько должна стоить комбинированная защита при ее заблаговременной покупке.
А что можно сказать о том случае, когда игра отчасти предсказуема, то есть когда игрок в общих чертах представляет, какой вид атаки может задействовать противник, но не полностью уверен в этом (например, он видит аватар противника, который часто выполнен в огненном или ледяном стиле, однако некоторые игроки специально используют аватар, указывающий на противоположную стихию, чтобы сбить с толку противников)? Надлежащая стоимость комбинированной защиты от огня и льда в таком случае будет где-то между минимальной и максимальной стоимостью 10 и 20 золотых монет соответственно и зависит от имеющейся степени неопределенности.
Поражение нескольких противников
Давайте вернемся к одному из тех вопросов, которые мы подняли в начале главы: если применяется что-то, что наносит урон не одной цели, а сразу нескольким, какое преимущество дает такой AoE-урон при прочих равных условиях?
Чтобы определить это преимущество, в общем случае нужно умножить стандартное количество урона на среднее количество поражаемых целей. Если игрок сталкивается с равномерно распределенными группами из 1–3 противников, то на каждую атаку будет приходиться в среднем по две цели. В таком случае можно считать, что AoE-атака дает в два раза большее преимущество, чем эквивалентная одноцелевая атака.
Надо сказать, что мы не зря выделили слова «при прочих равных условиях», потому что в большинстве игр прочие условия не являются равными. Например, во многих играх противники не теряют способности к нападению до их полного уничтожения: когда у них остается лишь 1 % здоровья, они с помощью своей самой сильной атаки еще могут наносить такой же урон, как и при 100%-ном здоровье. В такой игре нанесение противнику частичного урона гораздо менее полезно, чем нанесение смертельного ущерба. Медленное и равномерное распределение урона между несколькими противниками будет менее эффективным, чем использование мощных одноцелевых ударов для избирательного уничтожения отдельных противников, поскольку ликвидация каждого следующего снижает наступательную мощь вражеских сил, в то время как AoE-атаки с равномерным распределением урона обеспечивают такое снижение лишь спустя время.
Если враждебные персонажи имеют разное количество здоровья, в результате чего в AoE-атаке часто бывают уничтожены отдельные противники, то возникает другая проблема: сокращение вражеских сил ведет к уменьшению общего урона, наносимого AoE-атакой за единицу времени! Если в начале боя игрок наносит по 100 очков урона пяти противникам, то в сумме это составляет 500 очков на каждую атаку. После уничтожения самого слабого противника каждая атака будет наносить 400 очков урона. А когда в живых останется только один противник, каждая атака будет наносить уже только 100 очков урона. То есть, принимая в расчет и этот момент, нужно подумать о том, часто ли в типичном поединке приходится иметь дело с группой врагов и как долго она остается группой в течение поединка.
Элементарные преимущества и недостатки
Во многих играх определенные виды атак сильнее или слабее воздействуют на некоторые виды противников. Простейший подход в таком случае состоит в том, чтобы умножить размер дополнительных преимуществ (или издержек при их наличии) на ожидаемый процент схваток с противниками соответствующего типа.
Однако, как уже упоминалось в данной главе, нужно очень тщательно определить, сколько в действительности стоят эти дополнительные преимущества или издержки. Так, например, двойной урон очень редко стоит в два раза больше, чем обычный. Если базовая атака персонажа и так наносит достаточно урона для того, чтобы можно было уничтожить врага за один раз, то удвоение урона не принесет никакой пользы. Двойной урон будет не особенно полезен в схватке с самыми слабыми врагами, поскольку игрок, вероятно, сможет легко убивать их и без этого бонуса. Однако в сражении с финальным боссом этот бонус будет гораздо более полезен, становясь необходимой составляющей успеха.
В два раза меньший урон тоже не всегда стоит в два раза меньше обычного. Если доспехи противника уменьшают наносимый урон на фиксированное количество очков, то при нанесении в два раза меньшего ущерба хорошо защищенный противник может не получить вообще никакого урона! Когда основной вид атаки становится менее эффективным, игроку часто приходится полагаться на другие способы нанесения урона — использование заклинаний, приемов или расходуемых предметов, которые стоят дороже или имеются в ограниченном количестве и могут закончиться еще до завершения текущего уровня.
Альтернативное снаряжение и дополнительные колоды
Некоторые игры позволяют при необходимости вводить в действие ситуационные объекты, которые в то же время можно спокойно игнорировать, когда их использование не является оптимальной стратегией. Примерами таких объектов могут служить ситуационные виды оружия в шутерах от первого лица, которое можно носить с собой в качестве альтернативного личного оружия, специализированные виды юнитов в стратегиях реального времени, которые можно строить при необходимости и игнорировать в другое время, или ситуационные карты в коллекционных карточных играх, которые можно вынести в дополнительную колоду и добавлять в основную, только играя против определенных противников. Во всех этих случаях степень полезности объектов определяется вещами, которые игрок не может как-либо контролировать: тем, на какой карте ему придется играть, какие юниты решит построить противник или какие карты будут в его колоде.
Наиболее очевидный подход в таком случае — оценивать объект в соответствии со степенью вероятности того, что он окажется полезным. Допустим, определенная карта наносит 10 очков урона игроку, использующему красные заклинания в игре Magic: the Gathering, и в большинстве колод применяются два из пяти цветов, то есть (при условии, что цвета сбалансированы на уровне метаигры) в открытой игре красный цвет используют 40 % игроков.
По идее, такая карта должна стоить столько же, сколько и карта, наносящая 40 % × 10 = 4 очка урона любому игроку без ограничений. Такой подход был бы вполне уместным, если бы игроку приходилось решать вопрос о включении этой карты в колоду, не зная заранее, какие карты будут в колоде противника.
Однако во многих случаях игроку известно, какие карты станет использовать противник. Формат многих турниров предписывает проведение каждым игроком трех игр с каждым противником, позволяя в промежутке между играми заменять карты игровой колоды картами из дополнительной колоды из 15 карт. В таком случае карту, наносящую 10 очков урона в игре против красных карт, можно помещать в дополнительную колоду перед первой игрой и переносить в игровую перед последующими играми, только если противник будет задействовать красные карты. При таком подходе вероятность срабатывания этой карты будет фактически 100 %. Здесь нет никаких других издержек, кроме упущенной выгоды из-за использования одного из мест в дополнительной колоде, и эти издержки относятся к уровню метаигры. Как упоминалось в главе 8, определение стоимости игровых объектов на основе метаигровых факторов может вызывать затруднения и чревато ошибками. В самом крайнем случае в качестве компенсации за метаигровые издержки наша карта с 10 очками ситуационного урона может стоить немного меньше, чем карта с 10 очками неограниченного урона, но отнюдь не на 60 %, если только вы не хотите поощрить включение этой карты в дополнительную колоду, специально предлагая ее по заниженной цене.
То же самое справедливо и для специализированного юнита в стратегии реального времени при том условии, что его получение или создание не требует безвозвратных издержек. Если определенный юнит почти никогда не применяется, то игрок ничего не потеряет, если просто не станет его создавать. Но если юнит несет определенную пользу, то игрок может создать его и убедиться в его полезности на практике. Опять же при определении стоимости специализированного юнита следует исходить из того предположения, что ситуация, для которой он предназначен, возникает почти в 100 % случаев. (Если игроки должны вносить некоторую предварительную плату за степень универсальности, делающую возможным создание специализированного юнита, то ее размер следует выбирать, исходя из реальной частоты возникновения ситуации, для которой предназначен этот юнит.)
В случае применения альтернативного вида оружия в шутере от первого лица многое зависит от того, какой способ организации используется в игре. Если игроки имеют свободный доступ ко всем видам оружия (без какой-либо ресурсной стоимости их приобретения), но могут выбрать только один основной и один дополнительный вид оружия, необходимо проследить за тем, чтобы альтернативные виды оружия были сбалансированными по отношению друг к другу, то есть чтобы ситуации, для которых предназначен каждый вид оружия, возникали с равной степенью вероятности — или, иначе говоря, чтобы у всех альтернативных видов оружия было одинаковым произведение получаемого преимущества на среднюю вероятность его получения. Так, некоторые альтернативные виды оружия могут быть чрезвычайно эффективными в очень ограниченном количестве случаев, а другие — давать весьма умеренный эффект, будучи применимыми почти в любой ситуации, и эти две категории будут сбалансированными по отношению друг к другу, если вы получите для них одинаковые цифры.
Метаигра
В коллекционной карточной игре Hearthstone около 10 % всех существ относятся к категории «Механизм» (принадлежность к которой не несет каких-либо прямых внутриигровых последствий, но указывается на ряде карт). Какой из следующих эффектов будет более мощным: «Уничтожить все введенные в игру механизмы» или «Уничтожить всех введенных в игру существ, исключая механизмы»? При этом нужно учитывать, что оба эффекта будут действовать и на противника, и на применяющего их игрока.
Если предположить, что в колодах обоих игроков соблюдается указанная пропорция механизмов и иных существ, то на первый взгляд между этими двумя эффектами нет большой разницы, поскольку они одинаково воздействуют на обоих игроков. Один эффект уничтожает 10 %, а другой — 90 % введенных в игру существ, но это в равной степени затрагивает обоих игроков. Однако в действительности дело обстоит иначе, поскольку каждый игрок может включать в свою колоду произвольно выбранные карты. При этом карта, воздействующая на обоих игроков, обычно включается в колоду, специально составленную таким образом, чтобы эффект этой карты был выгоден использующему ее игроку. Карта, уничтожающая всех механических существ, скорее всего, будет включена в колоду, в которой их вообще нет, а карта, уничтожающая всех немеханических существ, — в колоду, состоящую исключительно из механических существ. Игрок не может как-либо повлиять на то, какие карты включит в свою колоду противник, но полностью контролирует состав своей колоды.
В таком контексте эффект уничтожения всех существ, за исключением механизмов, приведет к уничтожению большей части или всей армии противника, оставив нетронутой механическую армию игрока. Это делает его довольно мощным, и если бы в игре Hearthstone действительно существовал такой эффект, это существенно сказалось бы на уровне метаигры. В отличие от этого, эффект уничтожения всех механизмов, как правило, не будет наносить противнику никакого вреда, если только у него не будет особых причин для использования колоды с большим количеством механизмов в силу метаигровых или иных факторов.
Метаигровые комбинации
Мы рассмотрели много случаев, в которых игрок не контролирует частоту возникновения особой ситуации. Но что, если он может это делать? Что, если определенный игровой объект не несет какой-либо пользы сам по себе, но создает мощный комбинированный эффект в сочетании с чем-то другим? Примерами здесь могут служить парные виды оружия в шутерах от первого лица, вспомогательные классы персонажей в многопользовательских онлайн-играх, комбинации карт в коллекционных карточных играх и вспомогательные башни в играх жанра «защита башни». Во всех этих случаях присутствуют иной тип ситуационного эффекта, награждающий игрока за ведение определенной разновидности метаигры.
Чтобы понять, как можно сбалансировать эти эффекты, необходимо вернуться к концепции издержек от упущенной выгоды. А точнее, мы должны учесть, что все эти объекты несут издержки от упущенной выгоды на уровне метаигры: геймеры должны выполнять в игре какое-либо действие независимо от той вещи, которую мы пытаемся сбалансировать, чтобы сделать эту вещь полезной. Существует несколько подходов к балансировке таких комбинаций.
Один из возможных подходов состоит в том, чтобы определить общую стоимость комбинации, исходя из ее мощности, и распределить эту стоимость между отдельными составляющими на основе степени их полезности вне комбинации. Примером такого подхода могут служить карты «Лич» (Lich) и «Зеркальная Вселенная» (Mirror Universe) из первой версии игры Magic: the Gathering.
Карта «Лич» мгновенно снижает здоровье игрока до нуля, но при этом вводит дополнительные правила, позволяющие ему превратить в свое здоровье те карты, которые он ввел в игру. Применение этой карты — большой риск, поскольку при ее выходе из игры игрок остается с нулевым здоровьем, что ведет к его немедленному поражению! И даже если не учитывать этот риск, ценность ее сомнительна: она помогает проигрывающему игроку, давая ему некоторое дополнительное время. Но если карта приносит пользу, когда вы проигрываете, значит, вы должны играть с целью проиграть, что обычно не является успешной стратегией.
Карта «Зеркальная Вселенная» позволяет игроку обменяться с противником количеством очков здоровья. Эта карта несет гораздо меньший риск, чем карта «Лич» (поскольку игрок контролирует выбор момента ее применения), но все равно она полезна, только когда игрок проигрывает, кроме того, ее сложно задействовать эффективно. Однако совместное использование этих двух карт обеспечивает игроку немедленную победу в игре: сначала он снижает свое количество очков здоровья до нуля (не умирая при этом), а затем обменивается количеством очков здоровья с противником!
Данный пример представляет собой крайний случай, поскольку обе карты слабы, если используются по отдельности, плохо работают в любом другом контексте, но становятся чрезвычайно мощными, когда применяются совместно. Наилучший подход в такой ситуации часто сводится к тому, чтобы сделать общую стоимость рассматриваемых эффектов равной стоимости другого столь же мощного эффекта, позволяющего добиться победы в игре (возможно, немного ее снизив, поскольку здесь нужно задействовать комбинацию из двух карт, что труднее, чем использовать одну карту). Следующий вопрос состоит в том, каким образом следует разделить эту стоимость между двумя картами — должна ли одна быть очень дешевой, а другая — дорогой, или они обе должны стоить примерно одинаково (средняя стоимость)? Относительная стоимость карт должна определяться в соответствии с их относительной степенью полезности. Карта «Лич» дает игроку некоторые дополнительные преимущества (например, вытягивание добавочных карт вместо получения очков здоровья, поскольку вытянуть одну дополнительную карту в этой игре обычно эффективнее, чем получить одно очко здоровья). В то же время эта карта имеет серьезный недостаток в виде немедленного проигрыша игрока в случае ее выхода из игры. А вот у карты «Зеркальная Вселенная» нет каких-либо недостатков. Скорее наоборот, она дает игроку психологическое преимущество, заставляя противника воздерживаться от атаки, поскольку, если атака почти убьет игрока, он может просто обменяться с противником количеством очков здоровья и затем добить его с помощью какого-нибудь маломощного эффекта. Именно так фактически и была выбрана стоимость этих двух карт в первой версии игры: вместе они стоили 10 единиц маны, что превышало стоимость практически любого из имевшихся на тот момент эффектов и было вполне уместным для эффекта, способного обеспечить победу в игре, при этом «Лич» стоил 4, а «Зеркальная Вселенная» — 6 единиц маны.
А как следует поступать в менее экстремальном случае? Вспомогательный персонаж в MMO-игре может предлагать другим членам своей команды много бонусов исцеления и пополнения атрибутов. Конечно, он может иметь некоторую ненулевую ценность и сам по себе (при необходимости он всегда может атаковать врагов напрямую и даже неплохо с этим справляться), если способен исцелять и усиливать не только других, но и себя. Кроме того, он будет полезен хотя бы тем, что станет отвлекать на себя часть внимания противников, представляя собой дополнительную мишень. Однако его реальная ценность проявляется в группе, где он может улучшать параметры наиболее эффективных ее членов.
В качестве простого примера допустим, что вы решили создать особую способность вспомогательного персонажа, сводящуюся к усилению на 10 % атаки одного из членов команды, притом что в каждый отдельный момент может быть активным только одно такое усиление. Если действует группа персонажей примерно одинакового уровня, определить ценность этой способности можно, найдя в группе класс персонажей с наибольшей мощностью атаки. Ожидаемая ценность этой способности будет составлять 10 % от мощности этой самой атаки. Очевидно, что эта способность окажется менее полезной, если у игрока не будет компаньонов или если в его группе не будет персонажей с хорошими способностями к атаке, поэтому вам нужно определить, как часто данный вспомогательный персонаж будет сопровождать группу, в которой полезно это усиление, и учесть это в своих расчетах. Упущенная выгода из-за невозможности включения в партию персонажа с мощной атакой в данном случае, как правило, невелика, поскольку в группе и так обычно присутствует как минимум один такой персонаж, поэтому вспомогательная способность почти всегда будет использоваться с максимальным уровнем эффективности и может быть сбалансирована соответствующим образом.
В общем, когда речь идет о ситуационных эффектах, которые игрок может в какой-то мере контролировать, общий подход сводится к тому, чтобы определить размер упущенной выгоды, обусловленный подготовкой к ситуации, и учесть его как издержки в противовес получаемой дополнительной ситуационной выгоде.
Многоклассовость
Раз уж мы коснулись темы классов персонажей, давайте поговорим о так называемых многоклассовых персонажах, которые широко используются в настольных ролевых играх. Как правило, они отличаются высокой степенью универсальности, поскольку имеют доступ к уникальным специальностям нескольких типов персонажей. Но это, как правило, компенсируется более низким уровнем и меньшей мощностью по сравнению с одноклассовыми персонажами. Насколько менее мощным должен быть многоклассовый персонаж, чтобы многоклассовость воспринималась как достаточно эффективный, но не слишком мощный вариант?
Это проблема универсальности. Игрок обычно не знает, с какими разновидностями ситуаций предстоит встретиться его персонажу, и потому старается подготовиться к любой. Если бы он точно знал, к чему следует готовиться, то выбрал бы самый эффективный одноклассовый персонаж и проигнорировал всех остальных. В то же время он, вероятно, имеет некоторое общее представление о том, с чем ему предстоит встретиться или по крайней мере каких способностей в данный момент не хватает остальным членам его команды.
Одна из двух крайностей здесь сводится к тому, чтобы создать двухклассовый персонаж, обладающий ровно половиной мощности каждого класса, и таким образом сумма двух половин давала полную мощность (то есть воин/вор пятого уровня будет считаться равноценным или воину, или вору десятого уровня). Это уместно в случае, если игрок не будет иметь ни малейшего представления о том, с чем ему предстоит встретиться, и ему потребуются возможности обоих классов. Другая крайность — создание двухклассового персонажа, равного по мощности одноклассовому персонажу (то есть воин/вор десятого уровня будет считаться равноценным воину или вору десятого уровня). Это окажется уместным, если игрок будет точно знать, с чем ему предстоит встретиться, и сможет обойтись только одним классом. Обычно ситуация представляет собой нечто среднее между этими двумя крайностями, поэтому изначально лучше предположить, что одноклассовый персонаж в 1,5 раза мощнее двухклассового, а затем при необходимости скорректировать это значение в соответствии с результатами игрового тестирования.
Схожим образом обстоит дело и с выбором одной из нескольких вещей в коллекционных карточных и подобных им играх, где созданный вами объект может производить один из нескольких эффектов и игрок выбирает применяемый эффект при введении этого объекта в игру. Например, в коллекционной карточной игре вы можете создать карту, позволяющую либо ввести в игру новое существо, либо сделать больше уже существующее. Еще одним примером может служить кусок редкого металла в ролевой игре, из которого можно сделать либо отличные доспехи, либо мощное оружие. Если предположить, что игрок знает, насколько полезен каждый из возможных вариантов (и может выбрать только один из них), то универсальный объект, вероятно, будет стоить больше, чем каждый из вариантов в отдельности, но меньше, чем оба вместе. Если два варианта сильно различаются по степени полезности — один гораздо мощнее другого, то эта стоимость будет лишь чуть больше стоимости более полезного варианта. Если же доступные варианты примерно равны по степени полезности, то в большинстве случаев лучше изначально предположить, что универсальный объект стоит в 1,5 раза больше, чем каждый из вариантов, и при необходимости скорректировать это значение.
PvE- и PvP-игры
Разработка PvE-игр (в них один или несколько игроков, объединившихся в команду, противостоят компьютеру, системе, искусственному интеллекту и т.д.) отличается от разработки PvP-игр (в них игроки противостоят друг другу) в том, что касается ситуационного баланса.
Иметь дело с PvE-играми несколько проще. Вы просто разрабатываете окружение, уровни и искусственный интеллект, зная при этом, что является типичным и ожидаемым при встрече игроков с препятствиями. Даже в играх с процедурно генерируемым контентом, где вы не знаете, с чем именно столкнется игрок, вам все же известно, с помощью каких алгоритмов генерируются встречи — или по крайней мере должно быть известно, как разработчику, — потому вы можете определить, с какой ожидаемой вероятностью генератор контента создает те или иные виды встреч в той или иной области игры. В силу этого, имея дело с ситуационными частями игры, вы можете довольно легко выполнить расчеты на основе ожидаемых значений и сделать обоснованную первоначальную оценку величины издержек и преимуществ.
Иметь дело с PvP-играми сложнее, поскольку стратегия противника здесь может варьироваться. Ожидаемое значение как таковое отсутствует, поскольку игрок не знает, чего можно ожидать от противника и в какой мере это зависит от постоянно изменяющейся метаигры. В таком случае лучше определить типичный паттерн использования с помощью игрового тестирования и аналитики, как подробно описано в главах 13 и 15.
1. Что представляют собой ситуационные эффекты согласно данному в этой главе определению?
2. Что обычно эффективнее — нападение или защита в случае противостояния превосходящим силам противника? Попробуйте придумать универсальный механизм или систему, в которой было бы справедливо противоположное.
3. Как сказывается на ценности отдельного элемента снаряжения, отличающегося высокой универсальностью, то, что персонаж может в любой момент сменить один вид оружия или снаряжения на другой?
4. Как сказывается на ценности отдельного элемента снаряжения, отличающегося высокой универсальностью, то, что персонаж не может легко переключаться между видами оружия или снаряжения?
5. Что представляют собой безвозвратные издержки?
6. Логическая ошибка, которую принято называть ошибкой безвозвратных издержек, заставляет людей включать в стоимость безвозвратные издержки, несмотря на то что эти затраты невосполнимы. Например, иногда геймеры продолжают играть в игру, за которую они заплатили 60 долларов, даже если это не приносит им никакого удовольствия и им было бы интереснее играть в бесплатную игру на телефоне. Они поступают так потому, что считают, что они должны получить от игры отдачу на все 60 долларов, которые были за нее заплачены. Подумайте, как можно было бы использовать ошибку безвозвратных издержек в дизайне игры, чтобы игроки делали то, чего они не стали бы делать в противном случае, или, наоборот, чтобы они не допускали этой ошибки.
7. Выберите для рассмотрения игру, в которой игрок управляет одним настраиваемым персонажем, например ролевую. Какие издержки от упущенной выгоды приходится нести игроку при оптимизации своего персонажа в ней?
8. Какой цели дизайна служит присутствие в игре элементарных преимуществ и недостатков? Каким образом они обеспечивают для игрока интересные возможности выбора при их надлежащей реализации?
9. Выберите для рассмотрения любую игру, в которой можно совершать и атаки против одиночной цели, и AoE-атаки, и посмотрите, сколько стоят и какой урон наносят оба вида. Исходя из этих данных, определите, какую ценность придавали разработчики игры возможности поражения всех врагов в пределах радиуса действия, то есть какую ожидаемую стоимость AoE-целей они принимали в расчет при балансировке AoE-атак относительно таких же по силе атак против одиночной цели?
10. Выполните задачу из предыдущего вопроса еще раз для другого типа ситуационных эффектов, такого как стихийные атаки, в случае, когда некоторые противники сильно уязвимы к используемой стихии.
В данной главе мы поговорили о том, как следует оценивать стоимость объектов в транзитивной игре, где степень их полезности варьируется в зависимости от игрового состояния. В целом идея состоит в том, чтобы определить ожидаемый размер предоставляемого преимущества (с помощью теории вероятностей) и использовать это значение в качестве фактической стоимости. Однако в зависимости от игры иногда можно рассмотреть также значения, получаемые в наилучшем или наихудшем случае, принимая в расчет размер упущенной выгоды при получении среднего или наилучшего случая.
Вы также узнали, что при балансировке условных элементов игры можно использовать и много других возможностей. Помимо обычной модификации издержек и преимуществ, мы также можем изменять другие системы, дизайн уровней или поединков, чтобы, не изменяя объект, изменить ожидаемый размер предоставляемого им преимущества.
Кроме того, вы узнали, что универсальность сама по себе может считаться преимуществом и его величина зависит от того, в какой мере игрок может прогнозировать предстоящие события (от наличия предварительной информации) и насколько он может изменять свои намерения в ходе игры (от стоимости переключения). При этом ценность предварительной информации обратно пропорциональна стоимости переключения.
Наконец, мы рассмотрели две особые разновидности скрытых затрат, которые важно учитывать при балансировке, потому что если вы забудете принять их в расчет при балансировке игры, то получаемые стоимости будут несбалансированными и вы не будете знать почему.
Прекрасным упражнением на поиск ситуационного баланса является балансировка игр жанра «защита башни». В играх этого жанра противники (или «крипы», от англ. creep — «ползучая тварь») продвигаются по карте к своей цели. Игрок может размещать на их пути башни, которые автоматически атакуют всех, кто появляется в их зоне поражения. На строительство каждой башни уходит определенное количество ресурсов. Уничтожение противников обеспечивает игроку дополнительные ресурсы для строительства башен. Со временем башни становятся все более мощными, однако и противники становятся сильнее. Если слишком большому количеству противников удается добраться до своей цели, избежав уничтожения башнями, то игра заканчивается поражением игрока. Игрок должен добиться того, чтобы на каждую единицу потраченных ресурсов приходилось как можно больше наносимого башнями урона, то есть такие игры, по сути, представляют собой задачу на обеспечение максимальной эффективности.
В силу характера этих игр практически все в них является ситуационным. Даже просто для того, чтобы рассчитать наносимый башней урон, приходится принимать во внимание множество факторов. Ключевым параметром является DPS (damage per second — «урон в секунду»), для определения которого нужно умножить урон, наносимый одной атакой, на количество атак, совершаемых за одну секунду. Однако оба этих параметра, в свою очередь, зависят от других вещей.
Например, некоторые башни производят AoE-атаки, при этом наносимый ими урон умножается в несколько раз, когда атакованными оказываются целые группы противников. Другие башни за раз наносят значительный урон одному противнику и, соответственно, не могут противостоять большим скоплениям врагов: выбив лишь некоторых из них, они позволяют остальным пройти дальше невредимыми. Некоторые башни наносят небольшой урон за один выстрел, но при этом стреляют очень часто, в результате чего параметр DPS может быть очень высоким, если противники плохо защищены, и нулевым, если у них хорошие доспехи, которым не страшны небольшие повреждения. Некоторые башни наносят значительный урон, но только в пределах небольшого радиуса, в результате чего общее количество наносимого ими урона зависит от карты и от того, сколько противников проходит через их зону поражения и как долго они в ней остаются. Некоторые башни наносят очень малый или даже нулевой урон, но зато на некоторое время замедляют продвижение противников, увеличивая длительность их нахождения в зоне поражения соседних башен, а также заставляют их скопиться в одном месте, повышая результативность соседних AoE-башен. Часть башен не делают ничего сами, но зато увеличивают наносимый урон, размер зоны поражения и другие параметры соседних башен. Некоторые башни наносят больший урон (или, наоборот, не наносят урона) определенным разновидностям противников (например, наземные атаки неэффективны в случае летающих противников). Некоторые игры позволяют разместить башни в любом месте карты таким образом, чтобы они не только атаковали врагов, но и служили стенами созданного вами лабиринта. В таком случае польза башни определяется не только наносимым уроном, но и характером лабиринта, а также тем, в какой его части она находится. Многие игры позволяют покупать дополнительные башни и производить за деньги дополнительный апгрейд башен, в результате чего приходится делать выбор между концентрацией урона в одной башне и его распределением по нескольким башням, что требует более широкого физического пространства для размещения большего их количества (помимо расходования большего количества ресурсов). Мало какие жанры игр лучше подходят в качестве практического примера, демонстрирующего процесс поиска ситуационного баланса.
Одна из игр, которые принесли популярность этому жанру, — Desktop Tower Defense 1.5. В ней существуют девять башен, но в данном задании мы будем рассматривать лишь две из них: башню роя (swarm tower), которая может поражать только летающих врагов, но зато наносит им значительный урон, и башню усиления (boost tower), увеличивающую урон, наносимый всеми расположенными ортогонально и диагонально соседними башнями. Если игрок захочет создать блок из башен этих двух типов для уничтожения всех летающих врагов, то наилучшим местом для его размещения будет центр карты (в этой игре летающие враги перемещаются по экрану сверху вниз и слева направо, поэтому, если поставить эти башни в центре экрана, они окажутся на пути у максимально большого количества врагов).
Допустим, башня роя стоит 640 долларов и наносит 480 очков урона в секунду. Башня усиления стоит 500 долларов, не наносит урона сама по себе (поэтому две соседние башни усиления не будут усиливать друг друга) и увеличивает на 50 % урон всех ортогонально и диагонально расположенных соседних башен роя. Например, одна башня роя в сочетании со стоящими вокруг нее восемью башнями усиления будет стоить 4640 долларов и наносить 2400 очков урона в секунду (соотношение между DPS и стоимостью равно 0,517).
Допустим, игрок решил создать блок размером 4 × 3, расположив его прямо в центре экрана и установив либо башню роя, либо башню усиления в каждой из 12 ячеек. При условии, что игрок стремится получить максимальный урон при минимальных затратах, какой вариант размещения башен будет оптимальным? Определите, какая конфигурация башен обеспечивает самое высокое значение параметра DPS. Также определите, какая конфигурация башен обеспечивает самую большую эффективность (соотношение между DPS и стоимостью). Это одна и та же конфигурация или разные?
После этого можно определить, насколько башни двух типов (роя и усиления) сбалансированы по отношению друг к другу. Подсчитайте, какой вклад в значение параметра DPS вносят башни роя, и разделите его на стоимость всех башен этого типа. Затем подсчитайте, насколько в вашей оптимальной конфигурации параметр DPS увеличивают башни усиления, и разделите полученное значение на стоимость всех башен этого типа. Какой тип башен оказался более эффективным или они одинаковы в этом аспекте?
Более объемная задача. Можно пойти дальше и провести более глубокий анализ. Поскольку летающие противники появляются только в каждом седьмом раунде, а башни роя не наносят урона нелетающим, для определения реальной эффективности блока из башен роя и башен усиления нужно полученное значение разделить на 7. Затем можно попытаться рассчитать оптимальное значение параметра DPS для других типов башен, которые влияют на те шесть уровней из семи, где приходится иметь дело с нелетающими противниками, и определить, какой подход будет эффективнее: создание комбинации из башен, атакующих противника либо только на земле, либо только в воздухе, или использование башен, способных атаковать противника и на земле, и в воздухе. Вы можете попытаться определить, какой из девяти типов башен наиболее эффективно наносит урон каждому из семи типов противников, появляющихся с одинаковой частотой.
А затем полученный теоретический результат можно проверить на практике и посмотреть, много ли очков вы сможете набрать в игре. Если вы работаете над этим заданием в группе, можно даже провести турнир и посмотреть, кто из участников сможет набрать наибольшее количество очков, опираясь на выводы, сделанные в ходе анализа игры.
Классическая игра DOOM, сделавшая в свое время популярным жанр шутера от первого лица, уже давно доступна бесплатно в качестве программного обеспечения с открытым исходным кодом, что делает ее удобным учебным примером. В исходной версии этой игры присутствуют следующие виды оружия.
• Кулаки. Наносят 2–20 очков урона за один удар и могут атаковать 123,5 раза в минуту при среднем значении параметра DPS, равном 22,64. Ими можно действовать только на близкой дистанции. В режиме берсерка количество наносимого урона возрастает в 10 раз. Могут использоваться неограниченно долго (не требуют боеприпасов, которые могут закончиться).
• Бензопила. Тоже наносит 2–20 очков урона за одну атаку, может атаковать 525 раз в минуту при среднем значении параметра DPS, равном 96,25. Как и кулаки, может действовать только на близкой дистанции и не требует боеприпасов, однако не наносит большего урона в режиме берсерка.
• Пистолет. Наносит 5–15 очков урона за один выстрел и может делать до 150 выстрелов в минуту при среднем значении параметра DPS, равном 25. В качестве боеприпасов использует патроны с пулями (игрок может иметь до 200 патронов). Довольно точное, но маломощное оружие.
• Пулемет. Наносит 5–15 очков урона за один выстрел и может делать до 525 выстрелов в минуту при среднем значении параметра DPS, равном 87,5. В качестве боеприпасов применяет те же патроны, что и пистолет. Наносит довольно большой урон, но очень быстро расходует патроны: если нажать и удерживать кнопку огня, то весь запас будет использован менее чем за 23 секунды.
• Дробовик. Выстреливает с большим разбросом семь дробинок, каждая из которых наносит 5–15 очков урона. В результате при выстреле с близкой дистанции с попаданием в цель всех семи дробинок наносятся 35–105 очков урона за один выстрел, однако при более дальней дистанции урон будет гораздо меньше, поскольку из-за большого разброса многие дробинки пролетят мимо цели. Может делать 56,8 выстрела в минуту при среднем значении параметра DPS, равном 66,27 (в случае попадания всех дробинок). В качестве боеприпасов использует патроны для дробовика (игрок может иметь до 50 таких патронов).
• Ракетомет. Запускает ракету, которая летит в заданном направлении, пока во что-то не попадет, и является единственным видом оружия с определенным радиусом действия (AoE). Наносит 20–160 очков урона при прямом попадании в противника. Помимо этого, наносит 0–128 очков дополнительного урона всем близко расположенным противникам в зависимости от их удаленности от эпицентра взрыва, в результате чего при прямом попадании противник в общей сложности получает 20–288 очков урона. В качестве боеприпасов использует ракеты (игрок может иметь до 50 таких ракет). Способен делать до 105 выстрелов в минуту, среднее значение параметра DPS равно 287 (при запуске непрерывного потока ракет с попаданием в противника). Однако данное оружие опасно применять на близкой дистанции, потому что игрок может получить урон, попав в зону поражения собственных ракет.
• Плазменное ружье. Ведет скорострельный огонь плазменными разрядами, которые наносят более мощный урон, чем пули пулемета (а именно, 5–40 очков). Скорость стрельбы — 700 разрядов в минуту при среднем значении параметра DPS, равном 262,5. В качестве боеприпасов использует энергетические ячейки, игрок может иметь до 300 таких ячеек.
• Плазменная пушка BFG 9000. Выстреливает разряды после небольшой задержки, что затрудняет прицеливание. При прямом попадании наносит 100–800 очков урона, а затем после еще одной задержки испускает ряд дополнительных лучей с определенным разбросом (это напоминает разброс дробинок у дробовика, но в более широких пределах). Всего испускается 40 дополнительных лучей, каждый из которых наносит 49–87 очков урона. Пушка может делать 52,5 выстрела в минуту. При стрельбе в упор с попаданием в противника основного разряда и всех дополнительных лучей это обеспечивает невероятно большое среднее значение параметра DPS — 2773,75. Как и плазменное ружье, использует в качестве боеприпасов энергетические ячейки, расходуя 40 ячеек за один выстрел.
Оцените степень сбалансированности этих видов оружия. Не становятся ли некоторые из них бесполезными в определенных областях игры? Не являются ли некоторые виды оружия определенно более эффективными, чем другие, или каждый вид выполняет полезную роль? Выберите один из видов оружия и представьте, что его не будет в игре. Как, по-вашему, его отсутствие скажется на игровом процессе и каким образом игроку нужно будет это компенсировать?
Единственное исключение — случай, когда параметр AC или BAB персонажа настолько выше соответствующего параметра противника, что его процент попадания уже поднялся до 100 % или процент попадания противника опустился до 0 %. В таком случае (согласно определению нашей упрощенной системы) дальнейшее увеличение этого параметра уже не будет приносить дополнительную пользу.
Если вы решили выполнить это задание, то рекомендуем сыграть в эту игру несколько раз. Сыграть можно в веб-браузере, бесплатный доступ к ней предоставляется по адресу http://jayisgames.com/games/desktop-tower-defense-15/.
Если вы решили выполнить это задание, то вам стоит сыграть в игру или по крайней мере ознакомиться с имеющимися в Интернете ответами на часто задаваемые вопросы, руководствами по стратегии или видео по ней, чтобы понять, что она собой представляет. Она доступна для скачивания по адресу https://github.com/id-Software.