Прототипирование и итерации

Учимся проверять, весело ли, дёшево и быстро — до того, как вложены месяцы.

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

Зачем прототипировать

Главный страх дизайнера — вложить год в игру и понять, что она скучна. Прототип отвечает на вопрос «весело ли?» до крупных вложений. Прототип уродлив намеренно: квадраты вместо персонажей, нет звука и сюжета — только механика. Если в квадраты-прототип интересно играть, в красивую версию будет интересно тем более. Если нет — никакая графика не спасёт.

За этим стоит экономическая логика. Стоимость ошибки растёт по мере разработки лавинообразно: переделать идею на бумаге стоит часа, в прототипе — дня, в почти готовой игре — месяцев и денег всей команды. Прототип — это способ совершать дешёвые ошибки рано, чтобы не совершать дорогих поздно. Студия Nintendo известна тем, что Сигэру Миямото месяцами «играет в идею» на простейших прототипах, прежде чем дать зелёный свет: механика Super Mario Galaxy с хождением по крошечным планетам родилась из грубой пробы гравитации, а не из дизайн-документа.

Есть и психологический эффект: прототип переводит спор из области мнений в область фактов. Пока механика существует только в голове, любой может сказать «это будет круто» или «это скучно» — и оба не правы, потому что никто не проверял. Играбельный прототип прекращает спор: садишься, играешь, чувствуешь. Дизайнеры называют это «show, don't tell» — показать, а не рассказывать.

Виды прототипов

ТипКогда применяют
Бумажный (paper)проверить правила настолки/системы без кода
Цифровой грубыйпроверить feel и реакции, на примитивах
Вертикальный срезпоказать кусок игры «как будет»

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

Уточним границы применимости. Бумага отлично проверяет всё, что про решения: экономику, систему карт, очерёдность ходов, дерево прокачки. Команда XCOM и многие настольно-цифровые гибриды прогоняли боевые правила на распечатанной сетке с фишками. Но бумага бессильна там, где суть в ощущении реального времени: точность прыжка в платформере, отдача оружия в шутере, «вес» управления в гонке. Это — game feel, и его можно пощупать только в движке, пусть и с квадратами вместо спрайтов. Поэтому выбор типа прототипа диктуется вопросом, на который вы хотите ответить: «интересны ли решения?» — бумага; «приятно ли управление?» — цифра.

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

Принцип fail fast

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

Идея ──> Прототип (дни) ──> Весело?
                              |
             ┌── да ──────────┤
             |                нет
             v                v
        Развивать      Выбросить, новая идея
        (дёшево узнали правду)

У fail fast есть культурное измерение: команда должна относиться к неработающей идее как к успешному эксперименту, а не к провалу человека. Если за «эта механика не взлетела» наказывают, люди начинают защищать плохие идеи и тянуть их дальше, тратя ресурсы. Здоровая студия празднует быстро убитую плохую идею: один прототип сэкономил полгода. Valve в своё время прорабатывала десятки прототипов для каждого вышедшего проекта — большинство закономерно ушло в корзину, и это считалось нормой процесса, а не катастрофой.

Как работает под капотом: цикл итераций

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

Чтобы итерация была честной, перед изменением полезно записать предсказание: «если ускорить врага на 20%, бой станет напряжённее, но проходимость не упадёт». Тогда после проверки вы сравниваете не с расплывчатым «вроде лучше», а с конкретной гипотезой — и иногда выясняете, что эффект оказался обратным. Этот навык — формулировать проверяемую гипотезу до правки — отличает дизайнера-инженера от дизайнера, который крутит ползунки наугад.

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

Сначала proof of fun (доказать веселье), и только потом — полировка. Полировать скучную игру бессмысленно.

Из этого следует жёсткий порядок работ: ядро (core loop) проверяют первым, до контента, графики и нарратива. Если в базовое действие не весело играть на квадратах, бессмысленно рисовать сто уровней — вы лишь масштабируете скуку. Hollow Knight начинался с прототипа, где проверяли только одно: приятно ли просто двигаться и бить мечом в пустой комнате. Когда это «приятно» подтвердилось, всё остальное наращивали поверх крепкого фундамента.

Частые ошибки

Полировать прототип. Соблазн «причесать» прототип крадёт время у проверки идей. Прототип должен быть уродливым — это его сила.

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

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

Итог

  • Прототип проверяет «весело ли» дёшево и быстро, до крупных вложений; стоимость ошибки растёт лавинообразно по ходу разработки.
  • Многое тестируют на бумаге (решения), а game feel — только в движке; принцип fail fast — проваливаться рано и дёшево без страха наказания.
  • Итерации идут по одной переменной и с записанной гипотезой; скорость витка решает всё, поэтому в инструменты вкладываются.
  • Сначала proof of fun ядра, потом полировка; прототипный код — расходник, его переписывают начисто.
Проверьте себя
1. Почему прототип делают намеренно уродливым?
AЧтобы сэкономить на художниках навсегда
BЧтобы быстро и дёшево проверить только механику, без отвлечения на графику
CПотому что красиво нельзя
DЧтобы напугать издателя
2. Что означает принцип fail fast?
AДелать игру как можно быстрее
BВыяснять, что идея не работает, как можно раньше и дешевле
CНикогда не ошибаться
DВыпускать игру недоделанной
3. Почему в итерациях меняют по одной переменной за раз?
AТак требует движок
BИначе непонятно, какое именно изменение дало эффект
CЧтобы экономить память
DЭто необязательно