Узнайте, как Ramen VR завоевал "геймдев на сложном уровне" и объединил игроков в первом в мире кроссплатформенном VR MMO.
Zenith: Последний город
Как небольшая удаленная команда создает MMO в VR? С гибкой платформой разработки, многопоточным программированием, надежными инструментами DevOps и поддержкой активного сообщества, Ramen VR запустил хорошо оптимизированную многоплатформенную игру, которая радует игроков и открывает новую эру игр.
Задача
Создание успешного высокопроизводительного VR MMO для всех основных VR платформ
Платформы
PlayStation® VR, PlayStation® VR2 Quest, Quest 2, Rift, SteamVR
Количество сотрудников
22
Местоположение
Удаленный

Сделать амбициозную ставку
Энди Цзен и Лорен Фрейзер встретились на Oculus Launch Pad в 2016 году, где они сблизились благодаря общему интересу к MMO и исекай аниме. Пара увидела возможность объединить эти жанры и создать новый, погружающий MMO-опыт в VR. В 2019 году они уволились с работы, основали Ramen VR и начали работу над Zenith: Последний город.

Результаты
- Запустили VR MMO с командой всего из 15 человек
- Достигли прорывного успеха с 1-м местом на Quest и Steam при запуске
- Собрали более 45 миллионов долларов инвестиций на сегодняшний день
- Исключили потерю данных проекта с помощью Unity Version Control

Финансирование за счет амбициозного видения
Создание Zenith потребовало смелого шага: Цзен и Фрейзер финансировали раннюю разработку из собственного кармана. «Название нашей студии происходит от всего, что мы могли себе позволить есть в то время», шутит Цзен.
Ангельский инвестор изменил все. Скоро Ramen VR был зачислен в программу акселератора Y Combinator и собрал 280 тысяч долларов за 45 дней с рекордной кампанией Kickstarter. Спонсоры были впечатлены масштабом проекта и решимостью студии сделать это.
«Никто, кто когда-либо создавал MMO, не стал бы пытаться сделать это», говорит Цзен. «Стартап, VR, MMO, кроссплатформенность – это геймдев в сложном режиме!»

Поиск правильных инструментов
Цзен и Фрейзер ранее сотрудничали над удостоенным наград проектом Unity – VR MOBA, Conjure Strike – и были уверены, что могут справиться с чем-то еще более амбициозным.
«Мы знали, как сложно будет создать игру такого масштаба в VR, но также думали, что существует разрыв между тем, насколько сложно это казалось людям, и тем, насколько сложно это на самом деле», говорит Цзен. «Этот разрыв заключался в платформах и инструментах, таких как Unity, которые позволяют создавать контент в гораздо большем масштабе с гораздо меньшей командой.»
Ramen VR запустила Zenith с командой из 15 человек, но теперь у них 22 основных члена команды. При выборе новых инструментов разработки они удостоверяются, что они настраиваемые, легко интегрируемые, хорошо работают с существующими системами и доступны как для технических, так и для нетехнических участников.

Создание основы с помощью DOTS
Как игры на основе систем, MMO требуют сильных, масштабируемых технических основ. На ранних этапах разработки Ramen VR организовала системы Zenith с использованием MonoBehaviors, но выполнение логики сотни раз на сотнях идентичных GameObjects было неэффективным. Они использовали фреймворк Entity Component System (ECS) Unity, ключевую опору Data-Oriented Technology Stack (DOTS), чтобы избежать недостатков объектно-ориентированного программирования.
«MMO – отличное применение для ECS», отмечает Фрейзер. «Zenith требует, чтобы тысячи сущностей сосуществовали одновременно, и ECS позволяет нам работать в масштабе.»

Выбор правильных рабочих процессов
В новом рабочем процессе каждый «актер» GameObject (игроки, мобы, коллекционные предметы) имеет соответствующую сущность ECS. ECS проходит через GameObjects и проверяет соответствующие теги, вызывая логику, когда они обнаруживаются.
«Было приятно иметь возможность выбрать рабочий процесс, подходящий для ситуации. Мы могли бы использовать чистые объекты или чистые сущности – но я не думаю, что вы должны выбирать», говорит Фрейзер.

Избегание ограничений по количеству запросов
ECS также помогла с инфраструктурными проблемами. Более 120 000 игроков подписались на альфа-тест Zenith, и Ramen VR недооценили нагрузку, которую это создаст на их серверах. Когда большое количество игроков выходило из игры, серверы превышали лимиты хранения, и игроки теряли данные сохранений. Чтобы решить эту проблему, команда создала тег ECS для отслеживания прогресса квестов. «Наша система ECS проверяет теги, и когда она находит один, она помещает его в очередь, извлекает каждые X секунд и записывает на внешнее хранилище», объясняет Фрейзер.

Оптимизация визуальных эффектов на разных устройствах
Zenith — это многоплатформенная MMO, поэтому оптимизация графики для всех основных VR-устройств была критически важна, чтобы игра достигла как можно большего числа игроков. Создание VR-игр означает отрисовку в два раза большего количества объектов GameObjects, с более высоким разрешением и более высокой частотой кадров, чтобы обеспечить хорошее погружение и уменьшить укачивание в VR. Поэтому они выбрали Universal Render Pipeline (URP).
«Universal Render Pipeline был лучшим выбором для нас, потому что мы выпускали на PC, Android (Oculus Quest) и PSVR», говорит Фрейзер. «URP позволил нам создавать для всех VR-платформ.»

Снижение затрат на рендеринг
С Single Pass Instanced rendering URP, Ramen VR смогли отрисовать визуальные эффекты для обоих глаз в одном месте, экономя время CPU и GPU и улучшая производительность. Настраиваемость также была плюсом. «Мы редактировали стандартные шейдеры (Simple Lit, Unlit), чтобы они реагировали на изменения нашего цикла день-ночь — делая вещи более оранжевыми или красными на закате, добавляя синий оттенок ночью и так далее», говорит Фрейзер.
Студия довольна тем, чего они достигли с URP, но надеется продвинуть визуальные эффекты Zenith дальше в будущем релизе. «Многое из нашего первоначального качества было пожертвовано из-за аппаратных ограничений — в основном памяти, но также и времени GPU», говорит Фрейзер. «Теперь мы пытаемся воспользоваться такими вещами, как texture arrays, чтобы вернуть часть утраченной четкости.»

Управление файлами проекта
Чтобы обеспечить непрерывную доставку нового контента в срок, Ramen VR использует Unity Version Control (UVCS) для управления проектом. «Это позволило нам повысить нашу продуктивность, улучшить наши рабочие процессы и работать совместно гораздо легче», — говорит программист Джордан Дж.
UVCS имеет двойные рабочие процессы для художников и инженеров, и члены команды могут выбирать работать централизованно или распределенно, при этом внося изменения в один и тот же репозиторий. «Централизованный поток означает меньше несчастных случаев и несоответствий между локальным и удаленным, чем вы видите с чем-то вроде Git», — говорит Фрейзер. Ramen VR никогда не терял данные проекта с тех пор, как принял UVCS.

Собирая игроков вместе
Умная реализация ECS и визуальная оптимизация с URP означают, что игроки могут вместе приключаться и исследовать Zenith’s огромный мир, не испытывая замедления или потери прогресса. А масштабируемый, настраиваемый технологический стек означает, что Ramen VR готов продолжать добавлять новый контент в Zenith в течение многих лет.
“«Тот факт, что мы используем Unity, снижает много сложности разработки для нескольких платформ.»”
Lauren Frazier - Ramen VR
CTO“«Работая с Zenith: Искусство окружения Последнего города, там много изменений и много больших файлов. Unity Version Control легко справляется с внесением и извлечением этих изменений.»”
Jessica Sweeney - Ramen VR
Environment ArtistПрисоединяйтесь к разработчикам по всему миру, которые используют Unity для создания успешных VR-игр.
