Потом нужно просто повторить процесс, выполнив несколько итерационных циклов. Каждый раз, когда дизайн упрочняется, мы производим поиск в бэклоге, вытаскиваем оттуда еще один кусок и помещаем его сверху. Каждый раз, когда у нас появляется новая идея, мы записываем ее в бэклог и откладываем на потом. Большинство бэклогов никогда не будут реализованы. Это нормально – это означает, что те части, которые мы используем, вероятно, хороши. И дизайн растет вверх.
Ядро геймплея
Из 22 элементов дизайна игры Fantasy Castle я решил поместить в бэклог дизайна все, за исключением трех. Но обратите внимание, что мы все еще можем создать эмоционально значимую игру, в которой есть только персонажи, строительство и фермерство. Эти три части сами по себе образуют минимальную, но годную игру, потому что эти три подсистемы составляют ядро игры Fantasy Castle.
ЯДРО ГЕЙМПЛЕЯ – это то, что вытекает из минимальной механики игры, которая лежит в основе ее стека зависимости. Уберите все, что можно убрать, эмоционально не обедняя игру, и то, что останется, и будет ядром игры.
Попробуйте следующее. Представьте игру, которую хорошо знаете. Теперь уберите что-нибудь из ее дизайна. Затем уберите следующий элемент или несколько элементов и так далее. Продолжайте убирать до тех пор, пока игра не перестанет генерировать значимый опыт, пока она не станет тривиальной и неинтересной. Явления, которые у вас останутся, и будут ядром игры – минимальным набором механики, которая заставляет игру работать.
Если вы выбрали современную видеоигру, то могли бы отбросить 95 % или более игры, включая почти весь контент, большинство интерфейсов и элементов управления. Если вы выбрали классическую или настольную игру, то отбросили гораздо меньше. Трудно понять, как можно уменьшить количество шашек и сохранить их функционал. Но даже шахматы можно разделить на части – убрать все, кроме пешек, и игра все еще останется рабочей.
Некоторые примеры ядра геймплея:
• Civilization V. Карта, города, поселенцы, воины.
• Unreal Tournament. Карта, игроки с управлением от первого лица, оружие.
• Starcraft II. Карта, центр командования, работники, пехотинцы.
В основе каждой из этих сложных игр лежит простой цикл итераций, который сам по себе создает полезный опыт. Даже при наличии только рабочих и морпехов игра StarCraft II генерирует интересные решения и стратегии. Одним из самых популярных способов играть в Unreal Tournament был режим InstaGib, который убирал все, кроме одного очень простого оружия – мгновенного уничтожения. Ядро – это и есть игра, хорошая или плохая. Все остальное – просто вариации и шлифовка.
Во многих случаях ядро игры определяет жанр. Например:
• Tower defense. Карта, объект для броска, башни, приближающиеся враги.
• Dungeon crawler. Персонаж, подземелье, герой, монстры, прокачка.
• Fighting game. Движение, удар, блок, бросок.
Ядро игры – правильная основа стека зависимостей, потому что все остальное в дизайне зависит от этих базовых механизмов. Идентифицируя ядро, мы находим кратчайший путь к тестируемой платформе для итерации. Чем раньше вы завершите работу над ядром, тем раньше игру можно будет протестировать. Только теперь вы можете увидеть преимущества итерации на основе тестирования. Поэтому, будучи дизайнером, определите ядро и создайте сначала его. Как только оно будет готово, достаньте что-нибудь из бэклог дизайна, поместите это в дизайн и произведите итерацию.
Если вы не можете найти ядро или работаете над его созданием и у вас получается ужасно, попробуйте начать заново с чем-то другим. Должна появиться очень веская причина, чтобы оставить игру без надежного ядра. И иногда она действительно существует. Например, в приключенческих играх в жанре «указать и щелкнуть» нет реального ядра. Указывание и щелканье не является само по себе рабочей игрой. Эти игры являются исключениями; они работают, потому что их опыт определяется содержанием, а не механикой. В некоторых играх есть несколько возможных ядер. Рассмотрим RPG с открытым миром Fallout 3.
Одним ядром Fallout 3 могут быть персонаж игрока, оружие, монстры. Другим – персонаж игрока, диалоги, квесты. Третьим может быть персонаж игрока, открытый мир, мировое искусство. Эти три ядра делают игру простым шутером, сюжетной игрой с диалогами «ходи и говори» и художественной галереей мирового масштаба соответственно. Но каждое из них все еще представляет собой функциональную игру. Разработчики могли бы начать разработку с любого из ядер, а затем встроить его в другие.
Небольшой стек зависимостей
До сих пор мы рассматривали стек зависимостей как возможность для одновременного анализа всей игры. Но стек зависимостей также можно использовать для анализа дизайна отдельных систем. Если вы попробуете этот метод, скорее всего, будете пользоваться им большую часть времени, так как постоянно анализировать весь дизайн может быть неудобно и трудозатратно.
Рассмотрим, к примеру, разработку персонажа по имени Кэпп в военной игре. Предполагается, что Кэпп будет быстро двигаться, безболезненно падать и атаковать с помощью акробатических боевых движений капоэйры. Ниже представлены способности и системы Кэппа согласно задумке:
• Скорость. Кэпп бегает чрезвычайно быстро, фактически на виражах.
• Удар ногой с разворота. Кэпп делает удар ногой с разворота, поражая всех, кто находится рядом.
• Падение. У Кэппа есть слабое место. В случае повреждения во время атаки он падает на землю.
• Прыжок от стены. Кэпп прыгает и отскакивает от стен, чтобы попасть в специальные зоны или обойти противников.
• Переворот с опорой на руки. Кэпп может сделать переворот с опорой на руки, что позволяет ему сделать прыжок от стены.
• Подсечка. Чтобы компенсировать свою уязвимость при падении, у Кэппа есть небольшая возможность сделать нижнюю подсечку, благодаря которой можно избежать атак противника и нанести ответный удар за один ход.
Точно так же, как можно сократить большинство хороших игр до ядра и они при этом все еще будут работать, можно сократить и большинство хороших игровых систем и они продолжат выполнять свою роль. В этом нам помогает особая функция стека зависимостей. Вот как я выполнил дизайн Кэппа:
Падение вполне логично, если вас атакуют и вы получаете удар – в данном случае удар ногой с разворота. Подсечка – это способность, предназначенная для возмещения падения, поэтому нет смысла делать ее до самого падения. И наконец, прыжок от стены – это увеличение базовой скорости, а переворот с опорой на руки – особая версия атаки прыжка от стены.