
Создание Zenith: Последний город
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 секунд и записывает его во внешнее хранилище», – объясняет Фрейзер.

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

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

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

Собирая игроков вместе
Умная реализация ECS и визуальная оптимизация с URP означают, что игроки могут вместе приключаться и исследовать огромный мир Зенита без замедлений или потери прогресса. А масштабируемая, настраиваемая технологическая платформа означает, что Ramen VR готов продолжать добавлять новый контент в Зенит в течение многих лет.

«Присоединяйтесь к разработчикам со всего мира, которые используют Unity для создания успешных VR-игр.»