Пример итерации
Поскольку каждая задача проектирования особенная, любой процесс итерации нужно адаптировать к конкретной задаче. Вот пример простого процесса итерации, который я использовал для разработки боевых сценариев в шутерах от первого лица. Этот процесс не подходит для других задач или разработчиков – это всего лишь один из возможных примеров.
Я начинаю черновую работу и максимально быстро набрасываю базовый бой. Добавляю элементы, не задумываясь и не анализируя их. Я мог бы подумать о том, куда я иду, но мне это не нужно. Моя единственная цель – запустить бой как можно скорее.
Через час я это делаю. Бой, как всегда, получился ужасным. Он выглядит так, как будто его разработал незаинтересованный дизайнер-новичок. Серые блоки укрытий хаотично разбросаны, геометрия мира представляет собой горстку плохо масштабированных кубиков, а враги появляются в виде гигантских глыб. И поскольку я обычно забываю дать игроку оружие, он всегда проигрывает. Но несмотря на свое низкое качество, эта первая версия выполняет свое предназначение. Она замыкает цикл итерации.
Бой больше не прокручивается в воображении. Он вполне реален. Когда человек играет в настоящую игру, держа руки на джойстике, слыша тикающий секундомер, у него возникают мыслительные процессы, которые невозможно воспроизвести любым другим способом. Эта первая версия игры и не должна быть похожа на конечный продукт. Ее единственная цель – стать стартовой платформой к чему-то менее ужасному.
И это получается. Пока я играю, мне в голову приходят новые идеи, и они более конкретны, чем все, что я мог придумать до этого. Они мне нравятся, и мне не нужно ждать, анализировать или что-то записывать. Мое вдохновение не улетучивается. Протестировав игру один раз, я возвращаюсь в редактор, удаляю куски, которые не работали, разбрасываю по местности места для укрытия, дорабатываю оружие и врагов. Возможно, на этот раз я даже не забуду дать игроку оружие.
Я делаю несколько таких циклов, меняю уровень и проверяю его снова и снова. Поскольку итерация проходит быстро, я не трачу время на анализ. Я просто добавляю что-то в уровень и тестирую несколько минут. И так как вся игра еще остается в виде серых блоков, работа остается сырой. Это хорошо, так как я вношу достаточно существенные концептуальные изменения вроде замены башни на мост или меняю тип основных врагов. О деталях пока не думаю.
За несколько часов я повторил несколько циклов итерации и, возможно, несколько раз поменял общую концепцию. Могу начать с врагов в башне (на самом деле это просто высокий блок со снайперами наверху), но понимаю, что это не сработало. Могу попробовать начать с моста (длинный, широкий блок через длинную дыру в полу). Возможно, я попробую делать минные поля, снайперов, траншеи, артиллерию и любые другие приемы, которые смог придумать. Даже самые черновые версии любого из предложений можно сделать за считанные минуты.
Попробовав от трех до восьми разных концепций, я выбираю одну, рабочую. И здесь все начинает меняться. Цикл удлиняется, я вношу меньше изменений. Я не тестирую игру каждый час, а делаю это раз в два или три часа. Я не разрываю и не заменяю целые здания, а делаю позиционирование на стенах и колоннах. Всегда вношу изменения, обусловленные реальными проблемами, которые я заметил при тестировании. Каждый тест указывает мне на новые очевидные изменения, которые необходимы.
С этого момента я подключаю к работе дизайнера уровней. Скорее всего, он еще не работает непосредственно над пространством – для этого еще слишком рано, но он может проконсультировать по поводу его художественной реализации. Если моя общая концепция бессмысленна с художественной точки зрения, возможно, мне стоит начать все сначала. Чаще всего мы обсуждаем способы корректировки игрового пространства, чтобы сделать его более пригодным для графики. Например, сам уровень остается серым, но мы можем решить придать башне или мосту какую-нибудь необычную форму, которая отражает стиль, тему, историю мира и его настроение. Дизайнер уровней может что-то смоделировать или сделать тестовый уровень, чтобы исследовать художественные идеи для игрового пространства.
Итерационные циклы продолжаются. Бой становится сбалансированным. Иногда пространство меняется в соответствии с художественными или нарративными проблемами, но большинство изменений по-прежнему обусловлены проблемами баланса, темпа, ясности и глубины.
Однако, в конце концов, я захожу в тупик. Настает момент, когда, тестируя свою собственную работу, вы больше ничего не узнаете. К этому моменту у меня уже есть готовый, рабочий бой, который меня устраивает, но игра создается не для меня. Бой должен работать для всех своих игроков. И единственный способ понять, насколько хорошо он работает, когда в него играют реальные игроки, – это понаблюдать за их игрой.
Итак, я приглашаю других тестировщиков вместо себя. В идеале, приглашаю реальных игроков из потенциальной целевой аудитории для этой игры. Но даже если это невозможно, существуют и другие альтернативы. Я обычно «использую» коллег. Приглашаю программистов, тестировщиков, художников и звукорежиссеров, которые не видели бой, сажаю их за свой компьютер и смотрю, как они играют. Я ничего им не говорю, стою подальше от них, чтобы они меня не видели, и жду момента, когда что-то пойдет не так.
И он всегда наступает. Некоторые игроки прекращают бой, изобретая стратегии, о которых я никогда не думал. Они отказываются продвигаться вперед и стреляют по каждому врагу с расстояния. Или атакуют вражеские батальоны без единого выстрела. Другие впадают в фрустрацию, потому что они не знают бой так, как его знаю я, или не замечают ключевой элемент. Они не замечают дыру в полу, проваливаются в нее и умирают. Их может застрелить парень, которого я послал им в помощь. Они наступают на мигающую мину, которую я считал очевидной. Перефразируя название шоу Билла Косби, тестировщики делают самые невероятные вещи.
Проведя один плейтест, я пишу список задач, которые нужно решить. Некоторые из них простые (лучше осветить врага, чтобы люди могли его видеть). Другие более сложные (реструктурировать маршрут слева, чтобы его могли использовать как игроки, так и враги). Я приступаю к работе. Спустя полдня изменения внесены, и я готов к следующему плейтесту. Я нахожу кого-то, кто еще не проходил этот бой, и смотрю, как он играет.
Цикл повторяется еще 10–20 раз. К концу цикла проходит две или три недели. Бой идет в хорошем темпе, хорошо сбалансирован и подходит игрокам разных уровней мастерства и с разными игровыми привычками. Мне не нужно догадываться, как будут развиваться события, когда игра попадет к реальным игрокам, потому что я уже и так это знаю благодаря тестировщикам. Но это все еще не похоже на готовую игру – повсюду вы видите плоские серые формы. Самое время художникам вступить в бой.
Дизайнеры уровня делают первые шаги в игровом пространстве, заменяя серые фигуры настоящими художественными образами. Мы снова тестируем. Даже если механика боя не меняется, художественные изменения влияют на то, как игроки его воспринимают, поэтому мы должны видеть, как они влияют на плейтест. Если мы видим проблемы, то обсуждаем их, чтобы найти решение. Иногда мне приходится изменять детали сценария, удаляя или добавляя героев или инструменты. В других случаях художнику, возможно, придется добавить свет или что-то упростить, чтобы уменьшить шум. Итерационный цикл длится уже несколько дней, так как создание графики – это медленный процесс.