Основы игрового баланса: Ситуационный баланс

Геймдизайнер Nival Анатолий Шестов опубликовал в своем блоге перевод шестой лекции курса «Принципы игрового баланса» игрового дизайнера Яна Шрайбера, который работал над такими проектами, как Marvel Trading Card Game и Playboy: the Mansion.

Редакция vc.ru публикует перевод с разрешения Шестова.

Ответы к вопросу прошлой недели

Если хотите свериться с ответами за прошлую неделю:

Анализ перетасовки карт

Для колоды из трёх карт существует шесть различных вариантов расположения карт, все равновероятные. Если нам даны карты А, Б и В, то выглядят расклады так: АБВ, АВБ, БАВ, БВА, ВАБ, ВБА. Следовательно, если алгоритм тасования действительно даёт случайный результат, мы ожидаем увидеть шесть результатов (или другое количество, кратное шести), каждый из которых имеет одинаковую вероятность.

Анализ алгоритма №1. Сначала вы выбираете одну из трёх карт на дно колоды (А, Б или В). Затем выбираете одну из двух оставшихся карт, которая идёт в середину (если вы уже выбрали А на дно, тогда вам надо выбирать между Б и В). Наконец оставшаяся карта кладётся наверх (никакого выбора у вас уже нет). Это отдельные, (псевдо)случайные, независимые опыты, поэтому, чтобы их посчитать, мы их перемножаем: 3×2 * 1 = 6.

Если вы действительно проделаете эти шаги, чтобы перечислить все шесть возможных комбинаций, вы увидите, что они соответствуют шести результатам, приведённым выше. Алгоритм правильный, это один из двух «стандартных» способов тасования карточной колоды. Второй алгоритм — сгенерировать псевдослучайное число для каждой из карт, а затем разложить карты, следуя этим порядковым номерам. Этот метод — самый простой для того, чтобы расположить список в произвольном порядке в Excel, используя RAND (), RANK () и VLOOKUP ().

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

Так что же с этим внутренним циклом? Сначала мы выбираем одну из трёх карт на дно, затем одну из этих же трёх — в середину, а затем одну из трёх — наверх. Как и раньше, это отдельные независимые опыты, поэтому мы перемножаем их 3×3 * 3 = 27.

Мы сразу же понимаем: раз 27 не делится на 6 без остатка, где-то кроется проблема. Поэтому, даже не проверяя ничего дальше, мы знаем, что одни расклады будут более вероятны, чем другие. Мы с полным правом могли бы здесь остановиться и официально объявить алгоритм забагованным. Если вы достаточно настойчивы, вы можете отследить все 27 результатов и увидеть, какие раздачи более или менее вероятны и насколько. Достаточно азартный игрок, изучая алгоритм, мог бы действительно произвести эту симуляцию для большой колоды, чтобы получить небольшое соревновательное преимущество.

На этой неделе

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

Эта неделя посвящена ситуационному балансу. Что такое ситуационный баланс? Иногда мы имеем дело с транзитивными вещами или что-то вроде того, но их значения меняются во времени и зависят от ситуации.

Один из примеров — эффект зоны поражения. Казалось бы, при прочих равных условиях то, что наносит 500 очков урона нескольким врагам сразу, должно быть ценнее, чем то, что наносит 500 очков урона лишь одной цели. Но насколько оно ценнее? Бывает по-разному. Если вы боретесь с врагом один на один — нисколько. А если на вас толпой налетели пятьдесят врагов, то такая вещь будет в 50 раз ценнее. А бывает, что вы сражаетесь с одним-единственным боссом. Как тогда привести к балансу такую вещь?

Или представьте себе эффект, который зависит от того, что делает ваш противник. Например, в Magic: The Gathering есть карта под названием «Карма», которая на каждом ходу наносит вашему противнику 1 очко урона за каждое его болото, находящееся в игре. Игрока, у которого в колоде 24 болота, такая карта может убить, прямо скажем, насмерть, быстро и без посторонней помощи. Против игрока совсем без болот такая карта абсолютно бесполезна. (Ну, на самом деле она бесполезна, только если у вас в колоде нет других карт, которые могут превратить земли врага в болота. В таком случае ценность «Кармы» зависит от вашего умения сочетать её с эффектами других карт, которые вы можете вытянуть, а можете и не вытянуть). В любом случае, способность карты наносить урон варьируется от хода к ходу и от игры к игре.

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

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

Правда ли, что лучшее решение — это тестирование

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

Простой пример — d20

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

Сейчас я приведу очень, ну очень упрощённое описание системы боя на основе d20 (двадцатигранный кубик — прим. ред.), которая используется в D&D 3.0 и выше. Вот как она работает: у каждого персонажа есть две характеристики, базовый бонус атаки (или ББА, который по умолчанию равен 0) и класс брони (или КБ, по умолчанию равен 10). В каждом раунде каждый игрок должен осуществить одну атаку на противника. Чтобы атаковать, он бросает 1d20, складывает выпавшее со своим ББА и сравнивает с КБ своей мишени. Если общее значение атаки больше или равно КД — атакующий пробивает броню и наносит урон, в противном случае он промахивается и ничего не происходит. Выходит, что по умолчанию, без дополнительных бонусов, вы должны наносить урон приблизительно в 55% случаев.

А вопрос такой: сбалансированы ли ББА и КБ? Если я дам вам +1 к атаке, будет ли это эквивалентно +1 к КБ или один из показателей более мощный, чем другой? Если бы я задал вам такой вопрос на собеседовании, что бы вы мне ответили? Подумайте об этом минутку, прежде чем читать дальше. Какой здесь центральный ресурс?

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

Если у обоих — и у меня, и у противника — шанс попасть друг в друга 5%, то в среднем мы будем попадать очень нечасто. Если у каждого из нас 90% шанс попасть в другого, мы будем попадать почти что на каждом ходу. Так или иначе, наносить удары или промахиваться мы будем одинаково часто или одинаково редко, поэтому никакого преимущества друг перед другом не имеем.

Поиск баланса через центральный ресурс

Итак, в балансе ли друг с другом КБ и ББА? +1 ББА даёт мне +5% к моим шансам на попадание, а +1 КБ даёт -5% к шансу противника попасть в меня. Получается, когда я сражаюсь против врага-одиночки один на один, эти две характеристики действительно равнозначны. Так или иначе, наш относительный процент попадания меняется одинаково в количественном отношении. (Есть одно исключение: если процент становится выше 100% или ниже 0% — никакие дополнительные бонусы уже никак на вас не влияют. Видимо, поэтому ББА по умолчанию +0, а КБ +10 — чтобы достижение такого уровня было всё менее и менее вероятно и требовало очень много бонусов. Пока что мы с вами пренебрежём этими крайностями.)

А что, если битва не один на один? Что, если мой персонаж один, а его окружили четверо врагов? Теперь я могу атаковать только один раз на каждые четыре вражеских атаки, так что +1 КБ здесь гораздо мощнее: бросок, к которому прибавляется КБ, случается в четыре раза чаще, чем бросок, к которому плюсуется ББА.

А если всё наоборот: у меня в отряде четверо спутников и мы наступаем на одного великана? Здесь, при условии, что великан может атаковать только одного из нас за ход, +1 ББА гораздо мощнее, потому что каждый из нас атакует великана по разу за круг, но лишь один из нас при этом сам подвергается атаке.

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

Как я и сказал, это упрощение: оно совсем не отражает действительный баланс D&D. Но даже из такой упрощённой системы мы можем сделать интересные выводы: ценность атаки выше, если вас больше, чем врагов. Добавив числовые показатели цены и пользы к проценту попаданий, мы бы могли вычислить, насколько эти показатели более значимы, через функцию численного перевеса — вашего или вражеского.

Какое это значение имеет для геймдизайна

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

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

Цена переключения

Что если бы в D&D вы могли свободно переводить КБ в ББА и наоборот перед каждой новой битвой? Совершенно внезапно они стали равнозначны друг другу и бонус +1 к любой из характеристик становится гораздо мощнее и универсальнее, чем остальные бонусы в игре. Может, в D&D этого и нельзя сделать, зато существует множество игр, где вы можете поменять одну ситуационную вещь на другую.

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

Раз так, допустим, что мы поднимем цену переключения с одного оружия на другое: пусть на то, чтобы положить одно оружие в рюкзак и взять другое, игрок тратит 10 секунд (если подумать, так будет правдоподобнее: раз вы с собой таскаете 10 единиц огнестрельного оружия и можете моментально переключаться с одного на другое — где и как вы их носите?). Внезапно ограничения каждого вида вооружения становятся значительными, и одно универсальное оружие может стать мощнее, чем целый ассортимент ситуационного. Если вы, наоборот, можете мгновенно переключаться с одного на другое, то куча всевозможного вооружения, где каждое идеально подходит для определённой ситуации, становится гораздо лучше, чем оружие, которое умеет всё, но понемногу.

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

Всё это, конечно, хорошо в теории, но как обстоят дела с конкретными цифрами? Давайте посмотрим.

Пример: Невозможно переключиться

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

Итак, в каких ситуациях ценность того или иного объекта будет выше или ниже и насколько? Как часто вы сталкиваетесь с подобными ситуациями? Перемножьте всё и сложите. Вот простой вымышленный пример, чтобы наглядно показать все вычисления: допустим, у вас есть меч, который наносит двойной урон драконам. Допустим, 10% значимых сражений в вашей игре — против драконов. Предположим также, что в вашей игре урон находится в линейном соотношении с кривой стоимости, так что, удвоив урон, наносимый чем-либо, вы делаете эту вещь в два раз лучше.

Итак, 90% времени меч обычный, 10% времени он в два раза лучше. 90% * 1,0 + 10% * 2,0 = 110% цены. В таком случае «двойной урон против драконов» — это +10% к базовой стоимости. Вот другой пример: у вас есть меч, который в полтора раза мощнее всех других мечей своего класса, но троллям он наносит лишь половинный урон. Давайте также предположим, что половинный урон — это существенный недостаток: он отнимает у вас ваш основной способ наносить урон, поэтому приходится полагаться на другие, менее эффективные источники, и это сильно повышает ваши шансы быть убитым, если вы вдруг встретите тролля. Так что в этом случае «половинный урон» на самом деле делает меч изначально отрицательным. Но давайте ещё добавим, что тролли в вашей игре очень редки, допустим, всего 5% энкаунтеров.

Если обычный меч в вашей игре имеет пользу 100 (в соответствии с вашей кривой стоимости) — меч, наносящий полуторный урон, будет иметь пользу 150, а то, что ваш меч не работает в определённых ситуациях, стоит 250 — просто потому, что тогда вам вместе с мечом крышка. Тогда математика такая: 95% * 150 + 5% * (−250) = 130. Таким образом, ваш меч имеет пользу 130, или на 30% больше, чем обычный меч.

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

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

Другой пример: Переключение без цены

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

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

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

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

Между тем, мы столкнулись с проблемой. Играя в игру, мы быстро понимаем, что на самом деле все эти мечи для игрока неодинаковы по ценности в определённый момент времени. Вот, скажем, я купил меч, который наносит двойной урон драконам и полуторный — троллям. Значит, где-то в игре есть меч, который наносит двойной урон троллям, но он уже совсем не так ценен для меня, как раньше. Я повышаю коэффициент урона с 1,5 до 2, а не с 1 до 2, так что выгода меньше. Для полной оптимизации я могу приобрести около половины всех мечей в игре и получу хоть какой-то коэффициент повышения урона против большинства монстров и игре, так что каждый новый меч будет иметь для меня всё меньшую ценность.

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

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

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

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

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

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

Цена универсальности

Мы затронули тему универсальности с точки зрения игрока, когда он покупает множество предметов в игре и делает своего персонажа универсальным и способным справиться с разными ситуациями. А что если сам предмет универсален? Так часто бывает, например, в поочерёдных стратегиях реального времени, где отдельные юниты могут быть многофункциональными.

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

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

Сколько стоит такого рода универсальность

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

Допустим, у вас вместо этого случайная карта и равные шансы получения карты, оптимизированной под ближний бой, и карты, оптимизированной под дистанционное оружие, — 50/50. Какая стратегия будет лучше? Универсальное оружие будет умеренно полезно в любом случае, но не идеально, а значит, вы победите тех, кто совсем не угадал, но проиграете тем, кто угадал с оружием.

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

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

Теневая стоимость

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

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

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

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

Невозвратные издержки

Под невозвратными издержками я понимаю некие вложения, которые необходимо сделать, чтобы получить доступ к вещам, которые вам нужны. Обычно их можно увидеть в древах технологий в RTS, MMO и RPG.

Например, в стратегиях реального времени, чтобы создать определённый тип юнитов, вам необходимо сперва построить некую структуру, которая будет их обеспечивать. Эта структура может не давать вам никакой пользы, кроме возможности создавать этот тип юнитов. Например, каждый драгун в StarCraft стоит 125 минералов и 50 единиц газа (это явная цена), но, помимо этого, вам необходимо построить «Кибернетическое ядро», чтобы иметь возможность создавать драгунов, —, а это стоит 200 минералов, что увеличивает стоимость каждого отдельного драгуна.

Кстати, вы не можете построить «Кибернетическое ядро», если ещё не построили Врата за 150 минералов — это тоже входит в цену. Так что вы строите здания, не используете их больше ни для чего, создаёте одного драгуна — и этот красавец стоит вам в общей сложности 475 минералов и 50 единиц газа, а это огромная цена по сравнению с заявленной ценой самого юнита.

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

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

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

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

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

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

Цена упущенных возможностей

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

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

Ваше действие будет иметь особую теневую стоимость: вдобавок к цене за совершение действия прямо сейчас вы платите уменьшением универсальности в дальнейшем (а не только ресурсами). Для игрока это дополнительное ограничение. Сколько оно стоит? А вот это уже ваша задача — рассчитать всё для конкретной игровой ситуации. Если цена ненулевая, не забудьте учесть её в анализе графика стоимости.

Пример универсальности

Как на деле ведут себя числовые значения универсальности? Всё зависит от природы универсальности, а также от цены и сложности переключения.

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

А теперь предположим, что мы предлагаем новый предмет, «Защита от стихий», который предлагает вам оба заклинания в одном пакете. Сколько он будет стоить? От чего именно зависит его цена? Если вы были внимательны, то знаете правильный ответ: цена зависит от того, что вам известно о планах противника, а также от цены переключения между заклинаниями, в случае если потом передумаете.

Если вы знаете наперёд, что противник применит, скажем, атаку Огня, — пакет будет стоить столько же, сколько «Защита от огня», то есть 10 золотых. «Универсальность» здесь не даёт никакой дополнительной ценности, потому что правильный выбор вам уже известен.

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

Что если у вас будет возможность купить одно заклинание перед битвой, а з

©  vc.ru