Mantendo uma gigante da VR sempre atualizada: O ritmo de duas semanas das operações ao vivo da Gorilla Tag

Gorilla Tag se tornou um dos maiores jogos sociais em VR, construído em torno de um sistema de locomoção baseado nas mãos que permite aos jogadores correr, escalar e balançar usando apenas os braços. Para manter este mundo vibrante, Another Axiom oferece atualizações em um cronograma agressivo de duas semanas, com novos mapas, itens cosméticos e modos de jogo lançados simultaneamente em todas as plataformas de VR compatíveis com o jogo.
Manter esse ritmo de forma consistente em várias plataformas de VR traz suas próprias exigências técnicas. A equipe precisa manter o desempenho, o conforto e a estabilidade em níveis sólidos, ao mesmo tempo que oferece aos criadores de mapas personalizados as ferramentas necessárias para desenvolver novos conteúdos sem comprometer essa consistência.
Conversamos com Derek Arabian, produtor da Another Axiom, sobre a criação e a gestão da estratégia de operações ao vivo do Gorilla Tag : os objetivos técnicos por trás de um ciclo de atualização quinzenal, a manutenção do desempenho do conteúdo gerado pelo usuário em todas as plataformas, a criação da atualização do mapa espacial e o que é necessário para atingir metas consistentes de desempenho em VR .
Quais eram seus principais objetivos técnicos para executar operações ao vivo de forma consistente em diferentes plataformas de VR ?
Derek Arabian: O desempenho é o mais importante para nós, antes de mais nada, porque em VR, uma taxa de quadros consistente é fundamental para o conforto – essa é a prioridade número um em um headset. Fora isso, focamos em um acesso fácil e tranquilo ao jogo: minimizando frustrações ou pontos problemáticos antes que os jogadores comecem a se divertir. Além disso, mantemos os princípios fundamentais de um serviço online: alta disponibilidade dos serviços e minimização de bugs críticos ou problemas graves que impeçam os jogadores de jogar o jogo que tanto amam.
Quais foram os maiores desafios técnicos para manter a consistência na frequência de atualizações quinzenais?
O maior desafio em manter nossa cadência de duas semanas sincronizada em todas as plataformas de VR é garantir que tudo – funcionalidade e usabilidade – seja mantido de forma consistente em cada plataforma.
Especificamente nas plataformas de PC , existem diferenças significativas em shaders e builds que precisamos levar em consideração, e como nosso ritmo de desenvolvimento é muito acelerado, nosso tempo de controle de qualidade é realmente mínimo. A parte mais importante é realizar testes em todas as plataformas e versões, inclusive nos headsets, e confirmar que tudo funciona antes do lançamento – é difícil fazer isso bem em um ciclo de duas semanas.

Quais foram os desafios para manter o conteúdo gerado pelo usuário (CGU) e os mapas personalizados com bom desempenho e consistência?
Existem muitos desafios relacionados ao conteúdo gerado pelo usuário e aos mapas personalizados. O principal ponto é que, quando você dá às pessoas as ferramentas para construir coisas, elas querem dar tudo de si – o que é ótimo, porque nossa comunidade é incrivelmente criativa e faz coisas incríveis mesmo com limitações.
Para manter o desempenho e a consistência dos mapas personalizados e do conteúdo gerado pelo usuário (UGC), criamos um ambiente de testes com limitações em mente: limites no número de polígonos em um mapa personalizado, limites para objetos ativos e restrições vinculadas ao seu impacto no desempenho.
Também utilizamos uma forma de lista de permissões para conteúdo gerado pelo usuário. O Gorilla Tag possui muitos componentes, e permitimos apenas um subconjunto deles no conteúdo gerado – aqueles que sabemos serem estáveis, seguros para todos os usuários e com pouca probabilidade de causar grandes problemas de configuração. À medida que aprimoramos nossas ferramentas internas, transferimos mais delas para o conjunto de conteúdo gerado pelo usuário (UGC) e mapas personalizados, para que os criadores tenham cada vez mais recursos à sua disposição ao longo do tempo.
Como você planeja e prioriza os lançamentos em cada ciclo de atualização quinzenal?
A equipe tem grandes aspirações, então o planejamento de cada ciclo se resume a quanto conseguimos encaixar. Garantimos que a cada duas semanas sejam lançadas novas funcionalidades e conteúdo. Fora isso, trabalhamos em diversas ramificações do Git para reunir diferentes recursos, correções e melhorias em todo o jogo.
Cada ciclo se divide em aproximadamente uma semana de combinação – reunindo tudo o que pode realisticamente entrar nesse ciclo e mesclando em nossa ramificação de lançamento – e uma segunda semana focada na estabilização: aprimorando e garantindo que tudo esteja em um bom estado antes do lançamento.
Além do planejamento quinzenal, o planejamento também ocorre estrategicamente: garantindo que a equipe planeje os principais momentos da história, eventos narrativos e atualizações sazonais com bastante antecedência. Na verdade, existem duas vertentes: uma estratégica, que visa o panorama geral, e outra tática, que se consolida em cada ciclo de duas semanas.

De que forma o Universal Render Pipeline (URP) ajudou você a iterar em novos conteúdos?
A mudança para o URP foi de grande ajuda – observamos melhorias significativas de desempenho em diversas plataformas. Passamos a utilizar uma configuração de shader URP construída em torno de um shader principal com diversas variantes, o que nos proporcionou um ganho significativo de desempenho, minimizando as chamadas de desenho e reduzindo o número de objetos não agrupáveis.
Como o Addressables e o Cloud Build Automation ajudaram a oferecer suporte a atualizações rápidas e sem atrito em todas as plataformas?
Os endereços IP são importantes para nós porque o Gorilla Tag tem um catálogo enorme de itens cosméticos – os itens cosméticos são nossa única fonte de monetização, então é tudo decorativo, sem nenhum elemento "pague para ganhar". Como um jogo em desenvolvimento com atualizações a cada duas semanas, esse catálogo cresceu bastante ao longo dos anos, e o Addressables nos ajuda a pegar todos esses recursos e empacotá-los em um Opaque Binary Blob (OBB).
No Meta Quest, há limites para o tamanho do APK, então, ao ultrapassar um determinado tamanho, os recursos precisam ser movidos para o OBB. Os Addressables são úteis para dividir nosso APK ao compilar no Unity e garantir que os recursos sejam carregados do local certo e no momento certo para manter um desempenho sólido.
A Unity Build Automation é quase um requisito para manter um jogo online com prazos de entrega tão curtos quanto os nossos – você precisa de um pipeline de implantação contínua, pelo menos para uso interno. Tem sido importante para garantir versões consistentes em todas as nossas ramificações, que chegam aos canais de lançamento para que possamos carregá-las rapidamente nos headsets para iteração. Em termos de tempo de resposta, isso é realmente importante.

Qual foi o impacto das suas ferramentas de conteúdo gerado pelo usuário (UGC) no conteúdo criado pela comunidade e nas funcionalidades sociais?
Nossas ferramentas de conteúdo gerado pelo usuário (UGC) têm sido uma parte fundamental da popularidade contínua do Gorilla Tag . Aproveitar a criatividade e a paixão dos nossos jogadores e permitir que isso enriqueça o conteúdo do nosso jogo é uma grande vitória do ponto de vista do desenvolvimento. O conteúdo gerado pelo usuário (UGC) é um dos nossos conteúdos mais envolventes – os jogadores são genuinamente apaixonados por ele e passam muito tempo nele.
O impacto é significativo e estamos constantemente tentando melhorar o fluxo de criação e acesso, porque é um dos nossos melhores conteúdos e queremos que seja o mais fácil possível para todos criarem e aproveitarem.
Quais recursos ou ferramentas do Unity 6 fizeram a maior diferença na criação e execução da sua estratégia de operações em produção?
A atualização para o Unity 6 demorou bastante para chegar. As melhorias na usabilidade do Editor são substanciais, e muitas ferramentas, de modo geral, funcionam melhor. Se eu tivesse que escolher uma que se destacou para mim pessoalmente, seria a busca aprimorada no Unity 6 em comparação com as versões anteriores – ela é visivelmente mais rápida e mais eficiente.
Além disso, houve muitas melhorias abrangentes em todos os aspectos: controles de pré-fabricados, perfis de construção e uma série de pequenas conquistas que, juntas, resultaram em uma grande melhoria geral para nós.

A atualização do mapa espacial alterou a jogabilidade ao reformular a gravidade e, posteriormente, permitiu a criação de mapas personalizados. O que isso desbloqueou e como o feedback dos jogadores influenciou as iterações subsequentes?
A atualização do mapa espacial era muito aguardada. Já vínhamos dando dicas sobre isso há anos, e era um dos recursos de jogabilidade mais pedidos. Isso significava analisar a fundo como brincar com a gravidade afetaria a experiência do jogador em VR. Existem muitas suposições fundamentais que os desenvolvedores de VR tendem a fazer, e nós queríamos questionar algumas delas.
Ao explorarmos o mapa espacial e todas as maneiras pelas quais podíamos alterar e manipular a gravidade nesse ambiente, desbloqueamos muitas novas possibilidades de jogabilidade que ainda estamos explorando. Abrir essa possibilidade para nossos criadores de mapas personalizados gerou uma série de novos conceitos de minijogos e oportunidades de jogabilidade para eles.
Alterar a perspectiva do jogador em um headset de VR sempre foi algo com que tomamos cuidado, já que existem considerações reais de conforto envolvidas. Garantir que o espaço do mundo, a sinalização dentro do jogo e os elementos visuais correspondessem à forma como a perspectiva do jogador mudava foi fundamental para resolver esses problemas de conforto.
Quais metas de desempenho você definiu para cada plataforma e como o Unity Profiler ajudou você a monitorá-las e atingi-las?
Não definimos metas de desempenho rígidas e explícitas, porque há muita variabilidade em Gorilla Tag – o tamanho das salas varia de um a vinte jogadores, e os jogadores podem estar em ambientes diferentes, realizando todos os tipos de ações e usando qualquer combinação de itens cosméticos.
Em vez disso, o que mais importa é manter a taxa de quadros o mais consistente possível em VR. Nosso principal parâmetro de avaliação de desempenho é o Quest 2 em modo independente, já que ele representa uma grande parcela da nossa base de jogadores. Para nós, isso significa tentar manter uma taxa de quadros o mais próxima possível de 90 fps estáveis em situações de jogo razoáveis, com alguma tolerância para quedas quando muita coisa estiver acontecendo na tela. Esse objetivo é a nossa estrela guia para as decisões de desempenho e jogabilidade.
Executamos o Unity Profiler em todas as versões de lançamento e em muitas versões intermediárias, monitorando chamadas de desenho, coleta de lixo e uso de memória. É fundamental para descobrir o que está consumindo seu tempo de renderização limitado. A VR precisa atingir consistentemente a alta taxa de 90 fps, renderizando para ambos os olhos, portanto, o tempo de renderização por quadro é limitado. O Unity Profiler é o que nos permite analisar os rastreamentos e descobrir exatamente qual parte do jogo está consumindo frames ou causando travamentos.

Quais decisões de implementação ou otimizações foram mais importantes para o envio de atualizações operacionais em tempo real para todas as plataformas?
A melhoria do nosso sistema de automação de construção teve o maior impacto. Ter um pipeline de CI/CD consistente e confiável significava que todos podiam testar seu trabalho no dispositivo, em um ambiente real e de forma confiável. A maior melhoria para nós foi garantir 100% de consistência nesses fluxos de trabalho. Isso melhorou enormemente nossa capacidade de lançar atualizações dentro do prazo e com o nível de qualidade desejado.
Qual é a sua principal dica para desenvolvedores que gerenciam operações ao vivo para um título de VR multiplataforma?
Primeiro, ouça seu público. Eles vão te dizer o que mais querem – aproveite esse entusiasmo e construa uma forte percepção do que realmente lhes traz alegria e os faz voltar sempre.
Em segundo lugar, lembre-se de que o desenvolvimento de operações em tempo real é uma maratona, não uma corrida de curta distância. Existe sempre um desejo de adicionar mais e mais conteúdo a cada atualização, e essa paixão é realmente valiosa para o seu jogo. Mas você precisa equilibrar isso com sua capacidade de continuar fornecendo as atualizações que as pessoas adoram, de forma consistente, a longo prazo.
Para saber mais sobre projetos criados com Unity, visite a página de Recursos .
