Метагейм

Особенности разработки под VR

Артур Мостовой, Lead Game Designer
19 июня 2017

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

Терпимость к укачиванию

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

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

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

Особенности левел-дизайна

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

Чтобы минимизировать эффект укачивания стоит также на уровне левел-дизайна закладывать как можно меньше резких поворотов.

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

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

Как привлечь внимание

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

В виртуальной реальности такой трюк не сработает, потому что рассинхрон между игрой и реальным физическим перемещением — одна из главных причин укачивания в VR (опять укачивание?!). Что можно сделать, так это в каком-то смысле вернуться к истокам и попробовать заюзать освещение, звуки и/или голоса для индикации того, что в определенном месте скоро что-то произойдет.

Говорим «нет» катсценам

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

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

Как сказать много, не сказав ничего?

Хотя в целом и рекомендуется использовать как можно меньше текста в играх (если мы не говорим об особых жанрах, построенных на этом), в VR это еще более актуально. 

Чтение текста в виртуальной реальности ощущается так, как будто нужно приложить больше усилий (или это просто вопрос привычки?). Да и вообще, уроки по чтению — не совсем то, чего ждет человек, купивший дорогой шлем, способный «отправить» его хоть на Марс.

Оптимизация производительности

Мы уже говорили об оптимизации и необходимости поддерживать постоянные 90 FPS в предыдущей статье. Наш VR-программист Артем Клиновицкий подчеркивает важность консистентной производительности во время всей игровой сессии. В большинстве традиционных игр на флэтскрине показатель FPS может скакать в зависимости от сцены. В VR это работает несколько по-другому — скачущий или низкий FPS нарушит погружение, уничтожит юзер-экспириенс как таковой и сильно испортит картинку.

Показатель минимально комфортного FPS отличается для PC и PS VR и составляет 90 для первого и 60 для последнего. Стоит также отметить, что на HTC Vive, если игра тянет 80 или любое число меньше 90, то из-за репроекции FPS будет урезан до 45 и так далее прогрессивно. Поэтому важно не только оптимизировать ассеты под 90 FPS, но и заложить немалый запас, ведь важно помнить, что не у каждого игрока непременно топовое железо.

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

Геометрия уровня также имеет значение. Поскольку большую открытую локацию, например, можно поделить на зоны, используя здания, растительность, горы и др. Это снизит нагрузку на рендер, отсекая ассеты, которые игрок не видит (occlusion culling). Какие-то объекты можно отсечь вручную там, где occlusion culling не справляется.

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

Поскольку разрешение линз в VR-шлемах на данный момент не слишком велико, заметной проблемой становится сглаживание. Рекомендуется юзать хотя бы MSAA x2, чтобы улучшить картинку. С полноэкранными пост-эффектами стоит быть аккуратным — не все будут смотреться хорошо в VR. Некоторые могут даже разрушить ощущение погружения.

VR, Unity и вы

На текущий момент Unity поддерживает все популярные SDK для VR-девайсов прямо из коробки. Для PC самые популярные — это OpenVR (SteamVR) и Oculus SDK. Если вы собираетесь релизиться только в Steam, поддержки OpenVR будет вполне достаточно. Valve позаботилась о разработчиках и запилили поддержку не только HTC Vive, но и Oculus Rift в SteamVR. Благодаря этому, можно использовать тот же сет камер, схему управления и единый API для разработки игры, идентично ведущей себя на обоих девайсах. Конечно, замаппить VR-контролеры придется по-разному, но они сами по себе разные, поэтому это даже не обсуждается.

А вот для релиза в Oculus Store понадобится поддержка обоих SDK. Разработка чисто под VR не означает, что придется работать в шлеме 24\7. По-хорошему, нужно сделать проект доступным и на мониторе, иначе вы лишь усложните процесс тестирования, дебаггинга и в целом работы над игрой. Это означает, что придется добавить эмуляцию поворота головы и замаппить управление на клавиатуру или геймпад.

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

UI/HUD

В VR не выйдет использовать классический оверлей, чтобы отобразить, например, число патронов в обойме. В объемном пространстве нужно будет сделать плоскость, находящуюся в world space, на которой расположен текст, повернутый к камере. Однако, юзать классическую схему HUD и меню — в целом, не лучшая идея, поскольку нарушает погружение. Когда видишь повсюду циферки и значки, складывается ощущение, что внутри VR на тебе надет еще один шлем. Поэтому во многих тайтлах можно вместо меню оказаться в комнате, в которой при взаимодействии с объектами мы уже попадаем в опции, выходим из игры и т.д. (как в Rock Band VR).

Управление

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

Есть дополнения или предложения? Не стесняйтесь оставлять их в комментариях.

Комментарии

Войдите на сайт, чтобы оставить комментарий

К сожалению, браузер, которым вы пользуйтесь, устарел и не позволяет корректно отображать сайт. Пожалуйста, установите любой из современных браузеров, например:

Google Chrome Firefox Opera