Robinson: The Journey — это приключенческая игра для PS VR про мальчика Робина, который совершает аварийную посадку на таинственной планете, населенной динозаврами.

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

Сюжет посредством окружения

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

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

Интеграция сюжета в игровое окружение не только позволяет сделать исследование виртуального мира еще более увлекательным, но и помогает дополнить образ главного героя.

Спустя год после аварийной посадки, Робин успешно налаживает свой быт. Он отстраивает небольшой лагерь вокруг своей спасательной капсулы и организует ферму для выращивания картошки. Помимо этого мальчик не теряет надежды на спасение и это детально отражено в игровом окружении.

Например, неподалеку от спасательной капсулы можно обнаружить самодельную антенну для ежедневных радиотрансляций и аварийный маяк,  собранный из обломков корабля. Также на краю обрыва он выкладывает на земле гигантскую сигнальную надпись «SOS» («Спасите наши души»).

На ферме игрок может обнаружить собранный из обшивки корабля домик на дереве, в котором Робин играет в пиратов, мастерит модели ракет, читает книги и занимается выращиванием саженцев.

Восприятие деталей

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

Самым первым помещением, которое мы видим в Robinson: The Journey стал интерьер спасательной капсулы. К созданию окружения художники подошли с особым вниманием, т.к. именно здесь игрок сформирует своё первое впечатление о детализации игрового мира.

Концепт-арт интерьера спасательной капсулы.

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

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

Структура игрового мира

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

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

Концепт-арт с расположением локаций в мире игры.

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

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

Всё начинается с прототипа игровой локации, который создается на основе сценария и требований к геймплею. Например, вот так на этапе прототипирования выглядела локация со спасательной капсулой.

А это прототип фермы с домом на дереве.

После того, как геймплей утвержден, уровень построен и проходится от начала до конца, сразу же начинается визуальная проработка — декорирование, добавление спецэффектов и озвучки.

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

быстрый доступ

Для удобства тестирования игровых событий создается специальное меню, через которое можно получить быстрый доступ к любой геймплейной секции. Такой подход позволяет дизайнерам работать над логикой конкретного заскриптованного события без необходимости проходить весь уровень от начала до конца.

Выглядит это так: 1. Первое нажатие клавиши вызывает список всех доступных локаций 2. После выбора нужной локации, мы открываем лист игровых событий (расположенных в хронологической последовательности).

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

Также, очень важно помнить, что при пропуске какого-либо события нужно обязательно позаботиться о том, чтобы его условия считались выполненными, а игрок и его компаньоны были телепортированы в нужную секцию уровня.

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

визуальный скриптинг

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

Работа со слоями

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

Например, на изображении ниже можно видеть структуру слоев, выделенных под определенную анатомическую особенность уровня (физическая оболочка, геометрия, освещение, визуальные эффекты, растительность, звуковые эффекты, игровая логика и т.д.).

ОСОБЕННОСТИ VR

Разработка игры для очков виртуальной реальности позволила по максимуму использовать движение головы для создания интересного опыта. Сюда можно отнести сканирование различной живности с осматриванием объекта с разных сторон, скоростной спуск на тарзанке с увертыванием от ульев, игра в прятки с Рапторами, сканирование сетчатки глаз, скалолазание и т.д.

Игровая механика скалолазания была заимствована прямиком из The Climb. В Robinson: The Journey она была значительно упрощена — исчезли шкала выносливости и возможность делать прыжки.

Еще одной VR-ориентированной механикой стали пазлы с масштабируемой сложностью, в которых игрок от лица робота-компаньона по имени Хигс управляет распределением энергии между устройствами. Особый колорит этому режиму добавляют специальные настройки камеры, создающие иллюзию миниатюрного мира. К сожалению, скриншоты и видео не передают этот впечатляющий эффект.

Визуальный язык

Для маркировки поверхностей и уступов, за которые можно зацепиться в процессе скалолазания был выбран оранжевый цвет. Его можно встретить как на растительности (грибы, лианы, корни), так и на объектах искусственного происхождения (лестницы, кабели, металлические панели, заглушки и т.д.).

Что касается механики «гравитационной пушки», то здесь действовало другое правило — все интерактивные объекты, способные к левитации должны быть только белого цвета.

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

ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ

Для скриптования искусственного интеллекта дизайнеры уровней использовали два основных инструмента: сплайны и точки интереса.

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

Для управления активностью персонажей использовались точки интереса двух типов — автоматические и форсированные.

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

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

Например, в сценке, когда питомец-динозавр выкатывает из куста «черный ящик» использовано сразу несколько таких точек интереса — анимация сидящего на задних лапках динозавра и робот-компаньон, подсвечивающий объект своим сканирующим лучом.

На скриншоте ниже точки интереса можно узнать по желтым флажкам, а круглые «мишени» по соседству — это места, на которых в процессе скриптовой сцены сфокусирован взгляд персонажей.

Предусмотреть всё

Любые критически важные для прохождения объекты, которые игрок может легко выбросить за пределы уровня пришлось наделить одним интересным свойством. Так называемый «механизм безопасности» работает следующим образом — утраченный предмет телепортируется на свою изначальную позицию сразу же, как только игрок отводит взгляд в сторону.

К таким объектам в Robinson: The Journey можно отнести приманку и корзину для рыбалки, баскетбольные мячи, составные части для чучела, игрушки и аксессуары для питомца-динозавра, а также батарейки в космическом корабле.

Оптимизация

Основным условием комфортного времяпрепровождения в VR является высокая частота кадров в секунду. Для PS4 версии Robinson: The Journey команде художников и программистов удалось добиться стабильных 60 FPS в стерео режиме.

Оптимизация производительности не станет большой проблемой, если подойти к проектированию игрового мира с умом.

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

Сами локации также можно очень хорошо оптимизировать, если сократить дальность отрисовки деталей при помощи импровизированных стен.

Например, для оптимизации уровня с джунглями использовались низкополигональные модели растительности.

Частичное сокращение обзора «стенами растительности» позволяет не только улучшить производительность, но и придает всей сцене иллюзию глубины.

До и после оптимизации.

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

До и после оптимизации.

итого

Если вас заинтересовали подробности разработки Robinson: The Journey, то рекомендую также посмотреть дневники разработчиков. А для тех, кто интересуется технической стороной, есть специальная серия роликов посвященная производительности и особенностям VR.