Книга: Игровой баланс. Точная наука геймдизайна (Электронная)
Назад: 4. Компоненты прогрессии. Кривые
Дальше: 6. Экономические системы

5. Выявление якоря

В этой главе

• Установка якоря.

• Выявление якоря.

• Масштабирование якоря с использованием кривых.

• Выявление якоря в играх с ориентацией на навыки.

• Выявление относительного якоря.

• Взаимодействие различных систем.

• Гранулярность.

• Выполнение первого прохода.

Установка якоря

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

Ведущий разработчик с 30-летним опытом

В главе 3 вы получили общее представление об экономических системах, а в главе 4 узнали, как зависимости между отдельными игровыми объектами обеспечивают прогрессию. В этой главе узнаете, как разработчики игр сводят все это воедино и создают на их основе полноценную математическую структуру игры. Особенно важную роль здесь играет каркас, представленный в главе 3, в подразделе «Время» (пункт перечня «Продолжительность игры (макросы игры)»). Фактически эти макросы представляют собой общие определения, которые мы здесь наполним реальным содержанием, а описанные в главе 4 прогрессивные зависимости являются тем средством, с помощью которого будем развивать эти макросы. Если вы по какой-либо причине пропустили главу 3, рекомендуем вернуться к ней и прочитать этот раздел.

Выявление якоря

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

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

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

Имеется ли здесь зависимость между защитой и очками здоровья? Да. Защита уменьшает нанесенный урон, что позволяет персонажу игрока выдерживать большее количество ударов. Усиление параметра защиты производит такой же эффект, как и увеличение количества очков здоровья. И первое, и второе позволяют персонажу дольше оставаться в строю во время боя.

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

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

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

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

Масштабирование якоря с использованием кривых

Для иллюстрации того, как якоря могут применяться в играх, в трех представленных далее примерах будет показано, как разработчики игр определяют стоимость различных предметов, увеличивают ее, округляют и создают пики в пределах определенного диапазона.

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

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

Каждый следующий предмет на 25 % мощнее предыдущего. Стоимость здесь определяется на основе максимального размера наносимого урона, но мы также могли бы задавать ее, исходя из его минимального или среднего размера.

Стоимость 1 очка здоровья

10

Скорость улучшения

125 %

Оружие

Диапазон урона

Общая стоимость

Меч

5

10

100

Меч +1

6

13

125

Меч +2

8

16

156

Меч +3

10

20

195

Меч +4

12

24

244

Меч +5

15

31

305

Меч +6

19

38

381

Меч +7

24

48

477

Меч +8

30

60

596

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

Стоимость 1 очка здоровья

10

Скорость улучшения

125 %

Оружие

Диапазон урона

Общая стоимость

Меч

5

10

100

Меч +1

6

13

125

Меч +2

8

16

160

Меч +3

10

20

195

Меч +4

12

24

245

Меч +5

15

31

305

Меч +6

19

38

385

Меч +7

24

48

480

Меч +8

30

60

600

Разработчики вручную добавляют пики, выходящие за пределы диапазона процедурно генерируемых значений. Примером такого значения является особый меч в представленной далее таблице. Хотя у него обычная стоимость одного очка здоровья, наносимый им урон не соответствует установленной скорости улучшения в 25 %. Такой предмет может предлагаться игрокам в магазине или в качестве очень редко встречающейся добычи намного раньше меча +8. Из-за высокой стоимости его можно будет продать по более высокой цене, если это разрешается в игре (цена продажи обычно составляет половину от цены покупки). Заставая игрока врасплох, пики поднимают накал страстей и делают игровой процесс более напряженным.

Стоимость 1 очка здоровья

10

Скорость улучшения

125 %

Оружие

Диапазон урона

Стоимость

Меч

5

10

100

Меч +1

6

13

125

Меч +2

8

16

160

Меч +3

10

20

195

Особый меч

10

50

500

Меч +4

12

24

245

Меч +5

15

31

305

Меч +6

19

38

385

Меч +7

24

48

480

Меч +8

30

60

600

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

Рис. 5.1

Выявление якоря в играх с ориентацией на навыки

Якоря используются и в тех играх, где прогрессия зависит от навыков игрока, даже если игровые предметы ничего не стоят. В качестве примера можно взять выпущенный в 1993 году классический шутер от первого лица DOOM. В этой игре игрок может выбрать один из восьми видов оружия, каждый из которых требует разного обращения: кулак, бензопила, пистолет, дробовик, пулемет, ракетомет, плазменное ружье и плазменное оружие BFG. Якорем в DOOM, что очевидно, являются очки здоровья. Количество очков здоровья, выделяемое каждому монстру, определяется тем, сколько очков здоровья отнимает каждый вид оружия. Персонаж игрока погибает, когда у него заканчиваются очки здоровья. Если очки здоровья заканчиваются в режиме смертельного боя, противник игрока получает один фраг. Оружие при этом лишает монстров и противников очков здоровья, позволяя уничтожить их еще до того, как они смогут нанести урон персонажу игрока.

В уже рассмотренных в этой главе примерах каждый вид оружия стоил тем дороже, чем больший урон он наносил. Однако оружие в DOOM не имеет какой-либо стоимости. Так каким же образом можно произвести балансировку в данном случае, учитывая, что одни виды оружия наносят больший урон, чем другие? Разработчик этого оружия, Джон Ромеро (John Romero), использовал несколько способов его дифференциации. Например, двуствольный дробовик наносит больший урон, чем пистолет, но требует больше времени на перезарядку и эффективен только на малой дистанции. Ракетомет очень эффективен на большой дистанции, но может поразить персонажа игрока ударной волной. Поэтому если вы выстрелите из него с близкого расстояния, то можете пострадать вместе с противником. Используя такие параметры, как количество патронов, рабочая дистанция, время перезарядки, скорострельность, размещение в пределах уровня (не будет ли данный вид оружия или доспехов находиться на другом конце уровня?) и т.д., Ромеро смог сбалансировать свойства различных видов оружия таким образом, чтобы ни один не становился неактуальным после получения игроком другого оружия, как это происходит практически во всех играх с ориентацией на прогрессию персонажа.

Выявление относительного якоря

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

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

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

Параметр

Воин

Волшебник

Ниндзя

Сила

80

40

60

Интеллект

30

80

60

Проворство

50

40

80

Ловкость

60

50

70

Телосложение

85

60

40

Харизма

12

80

40

Всего

317

350

350

Общее количество очков статистики может и не быть одинаковым. Так, например, в игре, над которой Бренда работает сейчас, 13 персонажей с сильно варьирующимся количеством очков статистики. Разница нивелируется не изменением исходных параметров статистики, а другими способами компенсации. Этот пример также показывает, что после сравнения общего количества очков статистики использование относительного якоря как исключительно числового показателя фактически заканчивается. На каком-то этапе разработчику приходится включать свою интуицию в отношении различных стилей игрового процесса и того, что может понравиться игрокам. Прекрасным примером в этом плане является асимметричный дизайн цивилизаций в игре Civilization: Revolution. Каждая цивилизация здесь наделена собственной сверхсилой, и рассматривать ее просто как числовые показатели фактически невозможно. Это сильно отличается от дизайна более симметричных игр серии Civilization для PC, но тем не менее успешно работает.

Присвоение значения дополнительным способностям. Предлагаемые игроку предметы очень редко различаются лишь размером наносимого урона. Обычно они также предоставляют такие дополнительные способности, как удвоение урона или нанесение критического урона врагам определенного типа. Иногда предмет обеспечивает защиту от любых видов атаки или постепенное исцеление персонажа. Каждому из этих эффектов нужно присвоить определенное значение. Обычно это процентное увеличение исходной стоимости предмета или величина поправки, вносимой в какой-либо иной параметр, такой как степень редкости предмета или время перезарядки. Подробнее об этом мы поговорим в главе 23. Например, если меч судьбы стоит 50 000 единиц золота, то критовый меч судьбы может стоить 100 000 единиц золота, то есть в два раза больше, так как с его помощью можно наносить критические удары. Сначала полезно посмотреть, какие значения используются в аналогичных играх и насколько увеличивают стоимость предмета дополнительные способности. Можно обнаружить, что определенная дополнительная способность используется одинаково во всех аналогичных играх. В таком случае вы будете знать, как выглядит стандартный подход, и можно будет подумать о том, почему этот математический паттерн стал общепринятым. Если же в каждой игре эта дополнительная способность применяется по-разному, можно изучить различные подходы и посмотреть, как они сказываются на игровом процессе.

Взаимодействие различных систем

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

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

Пример 1. Ракетные и кроличьи прыжки

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

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

Сходным образом эффект так называемых кроличьих прыжков обеспечивает постепенное увеличение скорости перемещения по уровню. При этом игрок нажимает клавишу для движения вперед и во время прыжка вращает мышь влево или вправо. Вращение транслируется в поступательное движение, повышая скорость продвижения вперед. Регулируя момент вращения и прыжка, можно добиться гораздо большей скорости движения, чем при простом нажатии клавиши для движения вперед. Если обычная скорость перемещения по уровню составляет 320 единиц, то при использовании кроличьих прыжков она может быть в 3–4 раза больше. Понаблюдав за действиями игроков мирового класса, можно увидеть, что они регулярно используют ракетные и кроличьи прыжки. Поскольку оба эти приема, особенно кроличьи прыжки, требуют определенного мастерства, необходимость в их эффективном применении усиливает конкурентный характер игры. Кроличьи прыжки являются неожиданным результатом допущенной в Quake программной ошибки.

Пример 2. Как можно свести на нет свой доход

Иногда неожиданные взаимодействия между системами могут привести к отрицательным последствиям в реальном мире. В 2010 году была выпущена мобильная онлайн-игра Ravenwood Fair, в которой до выхода намеренно использовались щедрые монетные вознаграждения, чтобы облегчить тестирование. Наличие большого количества монет позволяло разработчикам и внешним тестировщикам легко покупать необходимые предметы и за счет этого быстрее проходить игру. Спустя примерно две недели после выпуска игры аттракцион невиданной щедрости был прекращен и вознаграждения уменьшились до более приемлемого уровня. Как ни удивительно, это привело к тому, что реальные доходы от игры упали более чем на 50 %.

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

Гранулярность

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

Система 1

Система 2

Уровень

Очки опыта

Уровень

Очки опыта

1

0

1

0

2

1

2

100

3

3

3

300

4

6

4

600

5

10

5

1000

6

15

6

1500

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

При слишком низкой степени гранулярности, когда у вас недостаточно пространства для маневра или слишком малые промежутки между числами, вы можете столкнуться с проблемами в ходе разработки. В таком случае у разработчика нет пространства для развития игрового процесса за исключением значений, расположенных выше верхнего предела. Допустим, игра позволяет наносить от 1 до 10 единиц урона и предлагает игроку 10 мечей, которые, наносят 1, 2, 3, 4… 10 единиц урона соответственно. При этом невозможно добавить еще один меч, не прибегая к использованию нецелого количества единиц урона (что, в принципе, вполне осуществимо при наличии соответствующего нецелого количества очков здоровья, но кому это нужно?). Однако если мы возьмем те же 10 мечей и снабдим дополнительным нулем уровень наносимого ими урона, то неожиданно обнаружится, что у нас есть пространство для добавления 90 дополнительных мечей. Если суммы очков здоровья, которыми обладают враги, мы тоже сделаем кратными 10, то при сохранении той же пропорции такое повышение степени гранулярности обеспечит гораздо большую гибкость. Оставляя между уровнями мощности значительные промежутки, достаточные для последующего расширения, мы обеспечиваем себе достаточное пространство для вставки дополнительных значений. Вместо того чтобы увеличить какой-либо показатель от 1 до 10, увеличьте его от 10 до 100 или от 100 до 1000.

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

А может ли стать проблемой слишком высокая гранулярность? Да, хотя это не столь большая проблема, как слишком низкая гранулярность. Если у игрока миллион очков здоровья, а урон исчисляется десятками тысяч, вы можете разделить все на 100 или 1000, ничего при этом не теряя. Иногда числа становятся настолько большими, что разница между ними делается трудноуловимой. Например, чем различаются числа 100 000 000 000 000 000 000 и 100 000 000 000 000 000? Заметить, что между ними в действительности большая разница, можно, лишь довольно долго сравнивая их друг с другом. Кроме того, с чересчур большими числами сложно обращаться, особенно в настольных играх. В цифровых играх слишком большие числа делают малозначимыми и фактически бесполезными числа, расположенные у нижнего предела.

Еще одно, последнее соображение относительно гранулярности носит исклю­чительно эстетический, а не функциональный характер. В идеале лучше использовать легкие в обращении и сравнении числа, которые удобны при расчетах. Поскольку целые числа обычно вызывают у игроков меньше затруднений, чем числа с дробной частью, постольку, если в игре имеются числа с дробной частью, их следует перемножить, чтобы получить в итоге целые. Также имейте в виду, что 100 золотых монет выглядят гораздо заманчивее, чем 10 золотых монет, а 1000 золотых монет — еще заманчивее. Такие числа с нулями часто называют пинбольными. Стремясь сделать игру более захватывающей, производители пинбольных автоматов добавляли все больше нулей в каждом новом поколении своих машин, чтобы сделать более привлекательными набираемые суммы очков.

Выполнение первого прохода

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

Мы настоятельно рекомендуем вам посмотреть, какие виды оружия используются в серии игр Diablo и как сбалансированы персонажи в таких играх, как World of Warcraft или Overwatch. У выпустившей эти игры компании Blizzard имелись необходимые время, ресурсы и опыт, поэтому многие вещи выполнены практически идеально. Игры этой компании очень популярны, поэтому в Интернете можно найти по­дробную документацию по их компонентам и параметрам статистики.

Вопросы для обсуждения

1. Что такое якорь?

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

3. Обладают ли якорем приключенческие игры, и если да, то что является якорем такой игры?

4. Почему кривые зависимостей полезно снабжать пиками?

5. К каким проблемам может привести использование в игре слишком малой степени гранулярности?

6. К каким проблемам может привести слишком большая степень гранулярности?

7. Если бы игра DOOM была ролевой и наряду с прогрессией навыков игрока в ней использовалась прогрессия персонажей, то какие изменения потребовалось бы внести?

8. Что является якорем в шахматах?

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

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

Побочные квесты

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

Побочный квест 5.1. Анализ аркады

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

В качестве примера рассмотрим классическую игру Super Mario Bros («Супер­братья Марио»). В этой игре игрок имеет дело со следующими ресурсами.

Жизни. При поражении персонажа врагом или его падении в яму игрок теряет жизнь и начинает прохождение текущего уровня заново (со сбросом количества монет, количества врагов и количества времени). Когда игрок теряет все жизни, игра заканчивается.

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

• Время. На прохождение каждого уровня игроку выделяется определенное время. Если он не успевает пройти уровень за отведенное время, то теряет жизнь.

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

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

Здесь сразу можно увидеть, какие зависимости существуют между этими пятью ресурсами. Время позволяет набирать очки (по 100 очков за каждую единицу времени, не потраченную на момент завершения уровня). Враги тоже позволяют набирать очки, если их уничтожать (от 100 до 1000 очков в зависимости от того, насколько опасен враг). За одну монету игрок получает по 200 очков. Сто монет добавляют одну жизнь, а поражение персонажа врагом и истечение отведенного времени ведут к потере одной жизни. Когда игрок теряет жизнь, производится сброс уровня, то есть игрок фактически обменивает жизнь на возможность собрать дополнительное количество монет и поразить дополнительное количество врагов, с одновременным сбросом таймера. Все это можно изобразить в виде представленной на рис. 5.2 схемы.

Рис. 5.2

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

Основной квест Волшебника, часть 2. Развитие интуиции

Продолжение. Часть 1 см. в главе 1.

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

Игра Harmony («Гармония») рассчитана на двух игроков. Оба начинают игру с собственной индивидуальной колодой из 50 карт. Чтобы начать игру, каждый игрок должен перетасовать свою колоду и вытянуть из нее себе десять карт. Кто делает первый ход, определяется случайным образом. Проигрывает тот игрок, у которого не осталось карт на руках или в колоде. Цель игры состоит в том, чтобы заставить противника израсходовать все свои карты до того, как это сделаете вы.

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

Ход игрока состоит из трех этапов: вытягивания, мощности и действия. Если ход не приносит ему победу или поражение, то ход делает противник, и так продолжается до тех пор, пока один из игроков не проиграет. Эти этапы представляют собой следующее.

Этап вытягивания — игрок вытягивает из своей колоды две карты.

• Этап мощности — игрок вводит в игру одну из карт мощности, имеющихся у него на руках. Если он не может или не хочет этого делать, то должен сбросить одну из имеющихся у него на руках карт в свою колоду сброса.

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

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

Урон. При нанесении противнику каждого очка урона вы должны взять верхнюю карту из исходной колоды противника и положить ее в его колоду сброса.

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

• Вытягивание. При применении каждого очка вытягивания вы должны взять верхнюю карту из своей исходной колоды и поместить ее в свою руку.

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

Например, если на карте написано: «Урон 5, Вытягивание 4», это означает, что противник должен сбросить пять карт из своей исходной колоды в свою колоду сброса, а вы должны вытянуть четыре карты из своей исходной колоды.

Это все, что вам нужно знать. Теперь попробуйте поиграть, используя каждую из четырех колод против остальных колод, что в целом дает шесть вариантов игры: A против B, A против C, A против D, B против C, B против D и C против D.

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

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

Часть 3 см. в главе 8.

Назад: 4. Компоненты прогрессии. Кривые
Дальше: 6. Экономические системы