Как мы используем интерфейсы в Verse?

Привет, DTF! o7

С вами рубрика "графомания программиста".

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

Предыдущие статьи смотрите у меня в блоге.

Тыкать сюда. Не промахнись.
Тыкать сюда. Не промахнись.

Интерфейсы в Verse.

Главной особенностью нашего подхода является принцип максимально возможного отказа от screen space UI. Это когда он рисуется поверх рендера камеры и всегда находится в плоскости экрана, независимо от игрового окружения. Вместо этого мы стараемся применять только world space UI, физически вписывая интерфейсы в пространство вокруг игрока. Любая панель, окошечко инвентаря, карта, информация о персонаже, корабле и т.п., обладают своей 3D-моделью, а не просто состоят из набора спрайтов на камере.

Причина такого подхода заключается в нашем желании создать более иммерсивный игровой опыт. Игрок напрямую визуально ощущает предметы с которыми взаимодействует, их объём и масштаб. Мы считаем, что это придаёт больше значимости игровому окружению и усиливает эффект погружения. Особенно, если речь заходит о VR.

Да, здесь тоже экран, только прозрачный, а не эти ваши 3D-голограммы из лазеров.
Да, здесь тоже экран, только прозрачный, а не эти ваши 3D-голограммы из лазеров.

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

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

Взаимодействие

Читатели предыдущих моих постов возможно уже поняли, что речь идёт в основном о First Person геймплее. Большую часть времени игрок взаимодействие с окружением от первого лица. Здесь мы сохранили привычную и понятную схему - навёл прицельчик, нажал клавишу клавиатуры/геймпада, получил некий эффект от взаимодействия. С объектами типа "кнопка" всё просто, они запускают некий сценарий. Сложные интерфейсы с множеством элементов, как например выбор корабля и варианты действий с ним, требуют другой подход.

Как мы используем интерфейсы в Verse?

Так как команда хотела организовать поддержку различных типов ввода (клава/мышь, геймпады, флайстики, HOTAS контроллеры и даже VR), от нас потребовалось создание удобной и универсальной модели навигации в интерфейсах. Поэтому мы остановились на кнопочном переключении элементов в UI, как вы это делаете держа в руках геймпад и нажимая стрелочки, чтобы выбрать нужный раздел. Навигация мышью остаётся опциональной вещью, но не приоритетной.

Проблемы разработки.

Главное отличие из-за которого разработчики всё ещё выбирают screen space при создании интерфейсов в подобных проектах, это простота. Вам не нужно тратить время и думать о том как разместить его в окружении. Не нужно создавать дополнительные модели. Не нужно разрабатывать новые способы и скрипты взаимодействия. Не придётся бороться с особенностями рендеринга и пост-эффектами. Это ускоряет разработку и делает UI более понятным/предсказуемым. Нужно просто включить отображение элемента поверх камеры и дать в него тыкать.

Как мы используем интерфейсы в Verse?

Создание world space UI несёт в себе все вышеперечисленные сложности. Поэтому для дизайнеров и техартистов это гораздо более ресурсоёмкая задача. Кроме того, все эти элементы будут постоянно находиться в мире, а не появляться в нём только по требованию. Нам потребовалось довольно много времени, чтобы уместить в бесшовный мир планируемые элементы так, чтобы они не создавали лишних вызовов без необходимости.

Единственные элементы в Verse, которые мы всё-таки решили оставить на камере, это основной HUD игрока, где отображается ХП персонажа и навигационные элементы для объектов с которыми возможно взаимодействовать, а так же меню настроек игры. В первом случае, потому что эти элементы не являются объектами физического мира, а скорее транслируют в зрительное поле ощущения персонажа. Во-втором, если что-то сломается в 3D-пространстве, screen space UI в любом случае будет работать правильно.

Держите концепт вдогонку.
Держите концепт вдогонку.

Вот такими невероятными манёврами мы в Synthes Games сами себе создаём проблемы. Как всегда - вопросы, пожелания, предложения можно оставлять в комментариях. Или по ссылкам ниже. Fly Safe! o7

1717
17 комментариев

Выглядит вкусно, жаль в стиме нет, чтобы завишлистить

1
Ответить
Автор

Рановато ещё. Будет и в Стиме)

1
Ответить

VR будет? есть ли возможность поддержать разработку?

1
Ответить
Автор

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

Ответить

есть огромный пласт людей которым может зайти данная игра. игроки стар ситизен)

Ответить