
Criando Zenith: A Última Cidade
Zenith: A Última Cidade
Como uma pequena equipe remota cria um MMO em VR? Com uma plataforma de desenvolvimento flexível, programação multithread, ferramentas robustas de DevOps e o apoio de uma comunidade ativa, a Ramen VR lançou um jogo multiplataforma bem otimizado que está encantando os jogadores e inaugurando uma nova era de jogos.
Criando um MMO VR de alto desempenho e sucesso para todas as principais plataformas VR
PlayStation®VR, PlayStation®VR2, Quest, Quest 2, Rift, SteamVR
22
Remoto

Fazendo uma aposta ambiciosa
Andy Tsen e Lauren Frazier se conheceram no Oculus Launch Pad em 2016, onde se uniram por um interesse compartilhado em MMOs e anime isekai. A dupla viu uma oportunidade de combinar esses gêneros e criar uma nova experiência imersiva de MMO em VR. Em 2019, eles pediram demissão, fundaram a Ramen VR e começaram a trabalhar em Zenith: A Última Cidade.

Os resultados
- Lançou um MMO VR com uma equipe de apenas 15 pessoas
- Conquistou um sucesso estrondoso com o primeiro lugar no Quest e Steam no lançamento
- Levantou mais de $45 milhões em financiamento de investidores até agora
- Eliminou a perda de dados do projeto com o Unity Version Control

Obter adesão sobre uma visão arrojada
Fazer Zenith foi um salto de fé: Tsen e Frazier financiaram o desenvolvimento inicial do próprio bolso. “O nome do nosso estúdio vem de tudo que podíamos pagar para comer na época,” brinca Tsen.
Um investidor-anjo mudou tudo. Em breve, a Ramen VR foi inscrita no programa de aceleração Y Combinator e levantou $280K em 45 dias com uma campanha de Kickstarter recorde. Os apoiadores ficaram impressionados com o escopo do projeto e a determinação do estúdio em fazê-lo acontecer.
“Ninguém que já construiu um MMO antes tentaria fazer isso,” diz Tsen. “Startup, VR, MMO, multiplataforma – é desenvolvimento de jogos no modo difícil!”

Como encontrar as ferramentas certas
Tsen e Frazier haviam colaborado anteriormente em um projeto Unity premiado – um VR MOBA, Conjure Strike – e estavam confiantes de que poderiam enfrentar algo ainda mais ambicioso.
“Sabíamos o quão difícil seria construir um jogo dessa escala em VR, mas também achávamos que havia uma diferença entre o quão difícil as pessoas pensavam que era e o quão difícil realmente era,” diz Tsen. “Essa diferença eram plataformas e ferramentas como Unity, que possibilitam a criação de conteúdo em uma escala muito maior com uma equipe muito menor.”
A Ramen VR lançou Zenith com uma equipe de 15, mas agora eles têm 22 membros principais na equipe. Ao selecionar novas ferramentas de desenvolvimento, eles se certificam de que são personalizáveis, facilmente integradas, funcionam bem com sistemas existentes e são acessíveis para colaboradores técnicos e não técnicos.

Como criar uma base com o DOTS
Como jogos baseados em sistemas, os MMOs exigem fundações técnicas fortes e escaláveis. No início do desenvolvimento, a Ramen VR organizou os sistemas de Zenith usando MonoBehaviors, mas executar lógica centenas de vezes em centenas de GameObjects idênticos era ineficiente. Eles aproveitaram o framework Entity Component System (ECS) da Unity, um pilar chave da Data-Oriented Technology Stack (DOTS), para evitar as desvantagens da programação orientada a objetos.
“Um MMO é uma ótima aplicação para ECS,” observa Frazier. “Zenith requer milhares de Entidades coexistindo ao mesmo tempo, e ECS nos permite operar em grande escala.”

Escolhendo os fluxos de trabalho certos
No novo fluxo de trabalho, cada GameObject “ator” (jogadores, mobs, colecionáveis) tem uma Entidade ECS correspondente. O ECS percorre os GameObjects e verifica as tags relevantes, acionando a lógica sempre que são encontradas.
“Foi bom poder escolher o fluxo de trabalho apropriado para a situação. Poderíamos ter feito Objetos puros ou Entidades puras – mas eu não acho que você deveria ter que escolher,” diz Frazier.

Como evitar os limites de taxas
O ECS também ajudou com desafios de infraestrutura. Mais de 120.000 jogadores se inscreveram para testar a versão alpha de Zenith, e a Ramen VR subestimou a pressão que isso colocaria em seus servidores. Quando um grande número de jogadores se desconectou, os servidores excederam os limites de armazenamento e os jogadores perderam dados de salvamento. Para resolver isso, a equipe criou uma tag ECS para rastrear o progresso das missões. “Nosso sistema ECS verifica as tags, e quando encontra uma, a coloca em uma fila, a retira a cada X segundos e a grava em armazenamento externo,” explica Frazier.

Otimização de visuais entre dispositivos
Zenith é um MMO multiplataforma, então otimizar gráficos para todos os principais dispositivos de VR foi crucial para garantir que o jogo alcançasse o maior número possível de jogadores. Criar jogos em VR significa desenhar o dobro de GameObjects, em maior resolução, em taxas de quadros mais altas, para garantir boa imersão e reduzir o enjoo em VR. Então, eles optaram pelo Universal Render Pipeline (URP).
“O Universal Render Pipeline foi a melhor escolha para nós porque estávamos lançando no PC, Android (Oculus Quest) e PSVR,” diz Frazier. “URP nos permitiu construir para todas as plataformas de VR.”

Reduzindo os custos de renderização
Com a renderização Single Pass Instanced do URP, a Ramen VR pôde renderizar visuais para ambos os olhos em um só lugar, economizando tempo de CPU e GPU e melhorando o desempenho. A personalização também foi um ponto positivo. “Editamos os shaders padrão (Simple Lit, Unlit) para responder a mudanças do nosso ciclo dia-noite – tornando as coisas mais laranja ou vermelhas ao pôr do sol, adicionando um tom azul à noite, e assim por diante,” diz Frazier.
O estúdio está feliz com o que conseguiu com o URP, mas espera levar os visuais de Zenith ainda mais longe em um lançamento futuro. “Muita da nossa qualidade original foi sacrificada devido a limitações de hardware – principalmente memória, mas também tempo de GPU,” diz Frazier. “Agora estamos tentando aproveitar coisas como texture arrays para recuperar parte daquela fidelidade perdida.”

Gerenciando arquivos do projeto
Para garantir que possam entregar novo conteúdo continuamente e dentro do prazo, a Ramen VR usa Unity Version Control (UVCS) para gerenciar o projeto. “Isso nos permitiu melhorar nossa produtividade, melhorar nossos fluxos de trabalho e trabalhar colaborativamente de forma muito mais fácil,” diz o programador Jordan J.
O UVCS tem fluxos de trabalho duplos para artistas e engenheiros, e os membros da equipe podem escolher trabalhar de forma centralizada ou distribuída enquanto se comprometem com o mesmo repositório. “O fluxo centralizado significa menos acidentes e incompatibilidades entre local e remoto do que você vê com algo como o Git,” diz Frazier. A Ramen VR nunca perdeu dados do projeto desde que adotou o UVCS.

Reunindo jogadores
A implementação inteligente de ECS e a otimização visual com o URP significa que os jogadores podem aventurar-se juntos e explorar o enorme mundo de Zenith sem experimentar lentidão ou perder progresso. E uma pilha de tecnologia escalável e personalizável significa que a Ramen VR está preparada para continuar adicionando novo conteúdo a Zenith por muitos anos.

Junte-se a desenvolvedores de todo o mundo que estão usando Unity para criar jogos de VR de sucesso.