Статьи

Старик Фибоначчи и гейм-дизайн

 

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

Основная идея — сохранять практичность и не слишком растекаться нарративом по самомотивации.

 

* * *

Поехали.

Начнем с сугубо практической темы, а именно:

 

Что такое ряд Фибоначчи и причем здесь игры?

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

Выглядит это примерно так: 0 1 1 2 3 5 8 13 21…и так далее.

Как ряд Фибоначчи может пригодиться гейм-дизайнеру?
Это простой и удобный способ создавать прогрессирующие математические системы.

Допустим, я разрабатываю RPG, и мне просто необходимо посчитать стоимость всех эпических Мечей Кривосудия и Доспехов Божественной Пятницы. Я мог бы проставить цену всем предметам вручную и потратить на это +/– вечность. Но зачем, если есть ряд Фибоначчи, который автоматически оценит предметы за меня, да еще с прекрасным разбросом.

Возьмем два типа предметов: мечи и кирасы.

 

 

Цены на Мечи и Кирасы

Стоимость каждого последующего предмета одного типа равна сумме стоимостей двух предыдущих того же типа.

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

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

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

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

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

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

Тип зелья меняется примерно каждые 5 уровней монстров. Монстры А–Д — Зелье А, Монстры Е–К — Зелье Б, и т.д.

 

 

Стоимость Лечебных Зелий, здесь я не использую Фибоначчи.

Сейчас наша система — это простая прогрессия. Каждый раз, когда игрок будет убивать 10 монстров “своего” уровня, он сможет позволить себе следующий комплект предметов. Который позволит победить следующих 10 монстров. Таким образом, вознаграждение монстра всегда равно 0.1 от стоимости следующего комплекта предметов.

Выглядит ужасно скучно и слишком очевидно. Поэтому к ряду Фибоначчи вознаграждений я добавляю модификатор. Скажем, 0.8.

 

Вознаграждение 1 — простой ряд Фибоначчи, Вознаграждение 2 — с модификатором 0.8.

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

 

Первые три колонки — тип монстра, простой ряд Фибоначчи вознаграждения и стоимость комплекта предметов аналогичного уровня. Комплект предметов — это Меч и Кираса соответствующего уровня + необходимое количество Лечебных Зелий.

Вознаграждение 2, как мы помним, это ряд Фибоначчи с модификатором 0.8.

В пятой колонке — количество золота, которое получит игрок за тех же 10 монстров, но с учетом сниженной системы вознаграждения (В2).

В колонке Разница, очевидно, разница между получаемым золотом при системах вознаграждения В1 и В2.

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

Анализ и дизайнерские решения

 

 

Гринд!

На первом уровне жизнь игрока легка и приятна. Убил 10 монстров — получил новенькие шмотки. 2 уровень? Всего-то 3 лишних монстра! Нет проблем!

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

Затем прогресс начинает замедляться. Уже на 5 уровне требуется убить 19 монстров. Это важный момент, потому что именно на этом моменте скорость прогресса уже равна ~50% от стартовой. А уже на 8 уровне игроку придется убивать на 200% больше монстров, чем на первом. И дальше с каждым уровнем объемы гринда будут расти катастрофическими темпами.

 

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

И здесь нас ждет сакральное — Дизайнерский Выбор.

Если я хочу, чтобы фокус игрока ближе ко второй половине игры сместился от прокачки к сюжету и/или исследованию мира, то можно ограничить рост уровня предметов примерно 12–14 уровнем, оставив математическую систему без изменений.

Если мне не хочется ни настолько сильно замедлять прогресс игрока, ни менять математическую модель, то придется ускорять прогресс игрока всяческими дополнительными путями — задания с высокими вознагражденими, увеличение количества выпадающих из монстров предметов (drop rate), NPC-помощники, временные усиления (бафы) и т.д.

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

 

Основная идея в том, что

…мне не пришлось вручную вбивать значения для десятков и сотен предметов.

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

С таким материалом на руках работать гораздо проще.
1. Быстренько набросал модель с Фибоначчи.
2. Добавил кастомные Клинки Темной Улочки и Шлем Всепоглощающего Занудства
3. …
4. Профит!

 

* * *

Ну что ж, для первого поста получилось достаточно объемно.
И, надеюсь, что кому-нибудь было интересно или полезно 🙂
Увидимся в следующих выпусках!

 

Источники:
Tips from a combat designer: Fibonacci game design
Using Fibonacci for Game Balance
Bud Leiser blog
Mathematics of XP

Один комментарий

Добавить комментарий