Любой проект строится вокруг игрового цикла – последовательности действий, которую игрок выполняет, чтобы продвинуться дальше: зачистить арену в Doom, найти новую способность в метроидвании и отправиться на поиски ее применения, вырастить фрукты и овощи в симуляторе фермера и т. д. Любая игра подразумевает наличие некой рутины и необходимости из раза в раз повторять одни и те же действия. Такое свойство игры может стать проблемой, ибо для состояния потока кривая сложности должна балансировать где-то между отчаянной фрустрацией и утомительной рутиной.
Какой бы интересной ни была механика, она может восприниматься как скучное и однообразное действие, выбивающее из состояния потока. К этому обычно приводит отсутствие в ней двух ключевых элементов. Первый – это риск. От вашей игры может откровенно потянуть в сон, если в ней не будет необходимости рисковать. Даже в визуальных новеллах игрок иной раз рискует, выбирая тот вариант ответа, который приведет к нежелательным для него последствиям. Борьба со скукой – одна из главных дилемм в регулировании потока, и здесь с блеском отличилась Doom Eternal. Авторы этой игры придумали способ поощрения безбашенного поведения игрока: переключившись с огнестрельного оружия на бензопилу, обращение с которой вынуждает приблизиться к монстру на опасно близкое расстояние, и нанеся ему урон в упор, игрок получит дополнительные патроны. Быть может, с точки зрения сценария это решение весьма спорное и неоправданное, но с точки зрения состояния потока оно работает отлично – игрок не заскучает. Он будет вынужден рисковать, постоянно подставляясь под удар. Такое поведение удержит его на необходимом для потока уровне сложности.
Элемент риска в рутинных действиях работает на регуляцию потока иной раз даже лучше, чем добавление новых механик: рассматривая тот же Doom Eternal, невозможно не припомнить момент, когда игра возомнила себя платформером и сломала собственные правила. Огромное количество игроков не то что из потока вышли – они забросили прохождение игры вовсе.
Страх перед тем, что исследование уже пройденных локаций превратится для игрока в утомительную рутину, приводит разработчиков некоторых ролевых игр к безумной идее автолевелинга – механики, при наличии которой с ростом характеристик персонажа возрастает и уровень монстров. Во-первых, так игрок не должен натыкаться на слишком могучих пока для него врагов при исследовании игрового мира, а во-вторых, это не дает игре стать слишком легкой. Крысы на первых локациях как убивались с нескольких ударов палкой, так и убиваются с нескольких ударов даже самым легендарным мечом. Могучие драконы же всегда будут вызывать трудности, вне зависимости от того, сколько времени игрок затратил на прокачку и подготовку снаряжения, а встретить монстра, который игроку совсем не по зубам, станет и вовсе невозможным.
Во-первых, это обесценивает приобретенные игроком навыки, а во-вторых, решение проблемы скуки от исследования слишком легких локаций было найдено еще в Super Metroid: ближе к концу игры главная героиня Самус приобретает способность передвигаться с молниеносной скоростью. Если игрок оказывается окружен слабыми противниками, такой способ двигаться помогает все равно сохранить интерес к посещению первых локаций, ведь теперь они проходятся уже совсем иным способом.
Второй элемент, который повторением одних и тех же действий заставит игрока заскучать, – это отсутствие чувства прогрессии. Как я упоминал ранее, очень важно поставить перед игроком цель, которая будет казаться ему достижимой. Если же хотя бы кратко обозначенной цели нет, любые действия постепенно превращаются в наказание: игрок просто не увидит смысла в том, чтобы в сотый раз пытаться пройти очередного босса, если у него не будет понимания того, какой результат он получит в награду за его убийство. Без цели не появится и ощущения прогресса, потому что игрок не поймет, куда он двигается, и с большей вероятностью выйдет из потока.
Сложные платформеры вроде упомянутой мной Celeste собраны из маленьких секций. Переход из одной секции в другую ощущается игроком как награда за пройденные испытания. Он видит, что позади остается все больше и больше уровней и игра становится на еще один шаг ближе к своей кульминации. Если бы Celeste представляла собой однообразный лабиринт с нагромождением ловушек и безо всяких индикаторов, показывающих, как далеко игрок продвинулся, то чувства прогрессии не возникало бы.
В сериях игр Castlevania и Metroid на карте всегда отображался процент исследования мира на данный момент. Таким образом, даже если мы загоняли Алукарда или очередного Бельмонта в тупик, игрок все равно чувствовал, что он приближается к цели закончить исследование замка, ибо процент открытой карты вырастал. Таким же образом работают и достижения в играх, и здесь стоит поговорить еще об одном интересном элементе, важность которого в дизайне игры часто недооценивают, – цифры.
Представьте себе типичную ролевую игру, в начале которой нам выпадает роль оборванца с палкой вместо меча. У нас первый уровень, и самую жалкую подвальную крысу мы забиваем с двух ударов, каждый из которых снимает ей по одной единице здоровья. За крысу мы получаем одну монету. Через пару сотен часов игры на нас уже сверкают лучшие латы, дающие +100 ко всем характеристикам, а в руках у нас самый легендарный меч, снимающий у врагов по 9 999 единиц здоровья. Выступая против очередного дракона, мы убиваем его с двух ударов, собирая с его мертвого тела добра на десять тысяч монет. За такое же количество ударов мы убили и крысу в самом начале. Игровой цикл не изменился: все те же два взмаха мечом – и у монстра проигрывается анимация смерти. У чудовища теперь больше здоровья, а у нас больше силы. С него падает в десять тысяч раз больше золота, но и новая броня стоит в десять тысяч раз дороже. Цифры окрасили рутину в куда более яркие тона.
Ощущение прогрессии завязано в этом случае не только на том, что моделька крысы сменилась на модельку дракона, но еще и на числа, которые видит и ощущает игрок. Он чувствует, что стал сильнее, но при этом продолжает играть по тем же правилам – убивать монстров с двух ударов. Популярная игра Vampire Survivors (180 тысяч отзывов) вынуждает игрока выступать против целой орды однотипных монстров, прущих на него со всех сторон (рис. 29). Сам процесс уничтожения этой бесформенной своры весьма скучен, но благодаря наличию системы прокачки и всплывающим над головами монстров цифрам игрок чувствует себя сильнее и получает удовольствие – цифры показывают все более и более сумасшедшие значения, давая играющему ощутить себя совершенствующимся воином. Не по этой ли причине Vampire Survivors стала успешнее, чем ее прародитель – игра Crimsonland, вышедшая еще в 2003 году и, даже имея аналогичный игровой процесс, не способная удержать у экранов внушительное количество игроков? Такого чувства прогрессии Crimsonland не давала, и числа над головами монстров не выскакивали в таких огромных количествах.

Рис. 29
Vampire Survivors. Poncle, 2022
В игре Super Mario Bros. действия игрока, одобряемые разработчиками, как я уже упоминал, награждаются очками: две сотни очков за выбитую из кирпичика монетку и сотня очков за поверженного Гумбу. Способа получить пятьдесят или пять очков в игре нет – для игрового баланса дополнительные два нуля не имеют никакого смысла: разработчики могли все значения смело поделить на сто, и в механиках игры ничего бы не изменилось. Изменения коснулись бы восприятия своих действий самим игроком: получить два очка за монетку не так радостно, как две сотни, даже если игрок еще не понимает, зачем эти очки нужны.
В качестве плохого примера я могу вспомнить оригинальную игру D2 (рис. 30). Проект награждает игрока очками опыта после каждого сражения. На победном экране мы видим общее количество собранного опыта и то, сколько очков нам добавилось. Представьте себе ощущения игрока, когда в графе «Добавилось» он наблюдает +0007, а в графе с общим опытом – 0000154. Стоит ли уточнять, что такое обращение с числами совсем не способствует появлению чувства прогрессии и удовлетворения? Выигранный бой кажется бесполезным, а победа – незначительной.
Я не призываю заваливать экраны вашей игры статистикой. Иной раз ее может быть слишком много, а мыслительные ресурсы вашего игрока ограничены. Я лишь подсказываю, что такой инструмент, как цифры, при умелом обращении может поспособствовать появлению чувства прогрессии и удержанию в состоянии потока, а при неумелом – замусорить экран и запутать игрока, который никогда не сможет почувствовать разницу между двумя триллионами нанесенного урона и двумя миллиардами: слишком большие цифры, как и слишком маленькие, не дадут испытать чувство прогрессии.
Способы порадовать игрока положительным откликом на его непревзойденные навыки или нечеловеческое упорство не ограничиваются одними только цифрами. Если вы играли в Unreal, то можете вспомнить мало с чем сравнимое удовольствие, которое испытывали, услышав «Double Kill!» при двойном убийстве. Когда невидимый диктор произносит «Mega Kill!», а затем «Ultra Kill!», гормоны радости вынуждают все глубже и глубже погружаться в игру, а громогласное «M – M-M – M-MONSTER KILL!» так и вовсе уносит гордящегося своими навыками игрока на верхушку Олимпа. Нас опьяняет чувство удовлетворения. Столь положительная реакция на наши действия подталкивает к тому, чтобы повторять их раз за разом, какими бы рутинными они ни казались. Игрок чувствует, что приближается к цели, из чего делает нужный нам вывод о том, что цель достижима. Система достижений способна сыграть такую же роль, как и отображение того, сколько ударов игрок собрал в цепочку «комбо», как это было реализовано в Devil May Cry.
Статистика, числа и достижения, разумеется, выводятся в интерфейсе игры, который, к слову, может стать еще одним препятствием при погружении игрока в выдуманный вами мир. Интерфейс – это игровая условность, отображающая с помощью индикаторов состояние игрового персонажа, количество расходных предметов или элементы его экипировки. Если вдаваться в детали, то интерфейсы можно охарактеризовать как все то, что ощущает ваш персонаж, но поскольку мы сами от игры можем получать лишь аудио- и видеоинформацию (было бы странно, если бы игра могла передавать физическую боль), ощущения нашего героя преподносятся нам в виде читаемых знаков и индикаторов.

Рис. 30
D2. Warp, 1999
Дальше всех в этом плане ушла игра Illbleed (рис. 31), в которой у нас есть индикатор здоровья, сердцебиения, эмоционального состояния, адреналина, слуха, запаха и «шестого чувства». В итоге прохождение Illbleed превращается в «игру в интерфейсы», что, конечно, все равно оказалось достаточно веселым занятием, однако конкретно вашей целью при разработке игры может быть отнюдь не создание опыта, полностью завязанного на индикаторах.
Различного рода всплывающие окна, рамки с диалогами или меню резко меняют темп игры, иной раз и вовсе останавливая в ней время. Я уже упоминал, что игроки, ведущие трансляции, чаще всего заканчивают играть, когда их персонаж погибает и время останавливается на грустной надписи Game оver. Игрок выходит из потока, вспоминает о других делах и закрывает ваш проект. Такое же поведение вы будете наблюдать и на шоукейсах: остановка времени игровым интерфейсом служит причиной отложить контроллер чаще, чем что-либо другое.
Однажды я демонстрировал свою игру на фестивале, где, помимо видеоигр, была еще куча других активностей. Наш шатер располагался неподалеку от сцены, где периодически выступали известные музыканты. Один из игроков сел играть в Fearmonium просто в ожидании выхода любимой певицы, однако, даже услышав ее голос, продолжил играть, просто поглядывая в сторону сцены. Контроллер он отложил ровно в тот момент, когда время в игре остановилось из-за обязательного к прочтению диалога, и, бегло мне кивнув, побежал на танцпол.
Вновь вспоминая сложные платформеры в духе Super Meat Boy и Celeste, важно отметить, что умирать в этих играх приходится чрезвычайно часто и проигрыш является важной составляющей игрового процесса. Для того чтобы игрок оставался в потоке в ходе бесчисленных попыток пройти очередной зубодробительный уровень, перезапуск игры осуществляется почти моментально: нет ни всплывающего текста, ни затянутых анимаций, ни медленного погружения экрана во мрак. Даже музыка не останавливается. Напоровшись на очередную ловушку или упав в бездонную пропасть, мы возвращаем себе управление персонажем буквально через секунду.

Рис. 31
Illbleed. Climax Graphics, 2001
Смерть – далеко не единственное, что выдергивает игрока из потока путем остановки времени. Долгие загрузки между экранами или утомительные однообразные анимации оказывают такой же эффект. Оптимизация проектов – обычно не самая сильная сторона независимых разработчиков, пришедших в нашу индустрию из отраслей, не связанных с программированием. Иной раз независимый проект вынуждает вспомнить эпоху PlayStation 2, когда времени между загрузками локаций хватало, чтобы сходить в туалет, налить чаю или кому-нибудь позвонить. В играх, плотно работающих с состоянием потока, загрузок практически нет: Journey создает впечатление путешествия по бесшовному миру, а не по разбитой на отдельные секции игры. Нет видимых переходов между локациями и в Gris – игре, которая тоже прекрасно удерживает игроков в потоке.
В играх, умело удерживающих игрока в потоке, иной раз интерфейс отсутствует целиком: никакой статичной информации не отображается ни в Journey, ни в Gris. Многие разработчики экспериментируют с интеграцией интерфейсов на саму сцену с персонажем. В Dead Space индикатор уровня здоровья расположен на спине главного героя, а в старенькой игре Boogerman у игрока при получении урона менялся цвет плаща (рис. 32). Некоторые ужастики экспериментируют с демонстрацией уровня здоровья через анимации протагониста, но этот метод требует огромного количества ресурсов и, будем честны, не всегда работает: естественно, состояние, когда персонаж уже при смерти, читается игроком на ура – герой сгибается, хромает и истекает кровью, а вот доходчиво продемонстрировать таким образом «легкое ранение» не так уж и просто.
Интересно то, как наличие или отсутствие элементов интерфейса может способствовать или, напротив, мешать погружению в состояние потока. Невозможно дать универсальный ответ на вопрос о том, сколько именно статистики следует вываливать на экран и нужно ли работать над тем, чтобы скрывать интерфейс полностью. Основным критерием абсолютно любого элемента служит его уместность. Если вы считаете, что придумали способ сообщать игроку о состоянии здоровья своего персонажа без специальной шкалы в верхнем левом углу, вам сначала стоит убедиться, что этот способ работает, что игроки верно считывают информацию, которую вы пытаетесь до них донести. Помните, что ваша игра должна быть понятной, и, если отсутствие интерфейсов или, напротив, их нагромождение путает игрока, – не сходите с ума и не изобретайте велосипедов: добавьте маленькую и легко узнаваемую шкалу здоровья.
Если загрузки становятся для вас проблемой при разработке, то способы ее устранения я рекомендую подсмотреть в играх той эпохи, когда оперативная память игровых систем и скорость чтения дисков не позволяли прогружать массивные объемы данных. В ужастике Fatal Frame (известном на Западе как Project Zero) перемещение между разными помещениями было оформлено следующим образом: главная героиня подходила к двери, и, когда игрок нажимал на кнопку «Открыть», камера приближалась к героине – таким образом скрывалось исчезновение выгружаемых из памяти текстур и объектов в комнате. После этого героиня лишь слегка приоткрывала дверь (что отлично работало на атмосферу ужасов) и робко топталась перед ней до тех пор, пока не прогружалась следующая локация. Конечно, смотреть на одну и ту же анимацию каждый раз может быть утомительно, но в контексте Fatal Frame, когда постоянно казалось, что из-за приоткрытой двери на нас вот-вот выпрыгнет уродливая нечисть, этот трюк работал. Более того, иногда действительно кто-то выпрыгивал.

Рис. 32
Boogerman. Interplay Productions, 1994
В Legacy of Kain: Soul Reaver, где разработчики умудрились реализовать бесшовный мир на первой PlayStation, было несколько комнат с вратами для телепорта. Комнаты эти были почти идентичны (отличались лишь гербы на стене), и при телепортации системе не приходилось судорожно грузить новую локацию: игра использовала те же самые текстуры и объекты, успевая подгрузить новые до того, как игрок выходил из этой комнаты по длинной винтовой лестнице.
Будучи знакомым с этими примерами, я очень удивился, когда увидел в Ori and the Will of Wisps без малого десятисекундную анимацию телепортирования. Моего персонажа крутило в ослепительно белом вихре, и я был уверен, что это умелый способ спрятать загрузку новой локации. Но увы – это оказалось лишь умелой попыткой выбить игрока из состояния потока: по прошествии десяти секунд экран полностью заливался белым, и начиналась настоящая загрузка. В Ori это выглядело вдвойне странно, ибо разработчики явно задумывались о потоке, обеспечивая игрока приятным управлением и отсутствием загрузок в ходе исследования мира пешим ходом.
Заканчивая рассуждение о состоянии потока, я обязан отметить такой элемент, как звуковое сопровождение. Возможно, некоторые разработчики убеждены в том, что для удержания игрока в трансе необходимо использовать спокойную мелодичную музыку, но это не всегда так. В Doom Eternal – проекте, который изумительно справляется с удержанием игрока в потоке, – иной раз звучит настолько зубодробительный метал, что хочется вновь отрастить себе волосы, порвать на груди рубашку и пуститься в безумный пляс. Для потока важен не темп и даже не насыщенность музыкальной композиции, а – как и в случае с интерфейсами – ее уместность: скорость и насыщенность музыки должна совпадать со скоростью и насыщенностью игрового процесса.
Все треки в Doom Eternal состоят из десятка сочетающихся друг с другом паттернов, чередование которых зависит от поведения игрока и монстров. Как только заканчивается бой, мощные гитарные рифы отступают на задний план, предоставляя игроку возможность заняться исследованием локации и сбором трофеев под мрачные, атмосферные и тягучие мелодии. Но как только перед нами возникает очередной демон, барабаны вновь начинают выдавать сто шестьдесят ударов в минуту, а струны на гитарах рвутся от напряжения.
Однако такой подход работает, когда монстры атакуют целыми группами, в противном же случае переключение звуковых дорожек может сыграть с разработчиками злую шутку: в игре Record of Lodoss War: Advent of Cardice тягучие и спокойные мелодии могут смениться насыщенным и динамичным маршем, как только в поле нашего зрения окажется какой-нибудь одинокий заблудившийся гоблин. Под мощные надрывы целого оркестра мы убиваем беднягу с одного удара и слушаем, как от нас постепенно отдаляется сотня скрипачей, будто едва успевших взяться за смычки. Звучит это нелепо, а ощущается еще хуже. Подобное можно наблюдать и в игре Morrowind, где игрок не раз будет бегать по округе в поисках затерявшегося в текстурах монстра, о присутствии которого его известила лишь динамичная боевая музыка.
Рутину вашей игры разбавят две вещи: во-первых, вам нужно заставлять игрока рисковать, а во-вторых, давать ему чувство прогрессии. Чувство прогрессии у игрока строится на понимании четкой цели и наличии ощущения, что это цель достижима. Лишние интерфейсы, загрузки и неуместная музыка выведут игрока из транса, в который он может впасть, наслаждаясь качественно сделанной игрой.