Adaptação ao ritmo acelerado de um jogo multiplayer em VR ao vivo com PIGIAMA KASAMA

Fundada em 2022, a PIGIAMA KASAMA é uma empresa de produção de jogos que cria jogos para suas próprias marcas, como: Kasama: The Awakening, e oferece serviços de desenvolvimento de jogos para outras marcas.
Seu mais novo título, PICKABOOM, é um jogo social de VR de última geração construído em torno de exploração, interações caóticas e cooperação multiplayer em tempo real. Os jogadores descem em sistemas de cavernas imprevisíveis, sobrevivem a desastres naturais absurdos e criam seus próprios momentos de comédia, tensão e triunfo.
Conversamos com os cofundadores, Matteo Fanchin e Paride Stella, para discutir como eles abordaram a instabilidade de rede, falhas de reconexão, quedas de desempenho e prazos rápidos de produção de conteúdo – tudo isso enquanto desenvolviam seu primeiro jogo multiplayer ao vivo em VR.
Qual era o objetivo principal com PICKABOOM?
Paride Stella: Nosso principal objetivo era criar um jogo social de VR de alta energia que pareça vivo, imprevisível e infinitamente rejogável – um mundo onde os jogadores se unem, sobrevivem juntos e naturalmente geram os tipos de momentos que as pessoas querem compartilhar.
Como um jogo ao vivo, PICKABOOM tem demandas de movimento rápido: lançamos atualizações semanalmente, corrigimos constantemente problemas surgidos pela comunidade e adicionamos novos conteúdos, mantendo o desempenho sólido. Isso exigiu que desenhássemos sistemas que escalem, sincronizem a física entre vários jogadores e mantenham o desempenho em headsets autônomos.
Queríamos que parecesse uma sobrevivência cooperativa caótica misturada com a cultura criativa, onde o ambiente, os desastres e as interações físicas surpreendem os jogadores constantemente e os incentivam a colaborar.

Qual foi o maior desafio técnico no desenvolvimento do PICKABOOM?
Matteo Fanchin: PICKABOOM é o primeiro título multiplayer do nosso estúdio, e nos obrigou a enfrentar a instabilidade de rede, falhas de reconexão, quedas de desempenho durante eventos de física caótica e a pressão de lançar atualizações semanais enquanto melhoramos continuamente a qualidade da jogabilidade.

Que medidas a equipe tomou para superá-lo?
MF: Dividimos o problema em etapas – construindo um pipeline de conteúdo ao vivo e implementando o perfil contínuo. Para o pipeline de conteúdo ao vivo, modularizamos as ferramentas e os inimigos, permitimos que novos conteúdos fossem adicionados rapidamente, garantimos que as atualizações não quebrassem compilações anteriores e ajustamos o cronograma semanal quando necessário.
Para o perfil contínuo, executamos passagens regulares de desempenho, testamos a carga do multiplayer com jogadores reais da comunidade e priorizamos a otimização específica para VR no uso de memória, coleta de lixo e picos de GPU. Essa abordagem nos permitiu lançar atualizações semanais estáveis sem desacelerar o desenvolvimento.

Quais novos recursos e atualizações no Unity 6 ajudaram a superar os desafios técnicos enfrentados pela equipe?
PS: Ao dimensionar o jogo, otimizamos o tempo de iteração e melhoramos o desempenho com os seguintes recursos e atualizações:
Tempos de compilação mais rápidos: Um jogo ao vivo requer compilações frequentes. Dada a natureza multiplayer – até 10 jogadores simultaneamente – era crucial testar com equipes internas e externas. Tempos de compilação mais rápidos economizaram uma quantidade significativa de tempo de desenvolvimento.
Melhorias no desempenho do Universal Render Pipeline (URP): Desenvolver para a realidade virtual é sempre um desafio devido às limitações de hardware. Melhorias para URP facilitou o desenvolvimento, pois os ganhos de desempenho foram tangíveis. Ajustamos a iluminação, as sombras e os materiais para maior clareza e legibilidade em ambientes caóticos.
Atualizações do Shader Graph: Utilizamos Shader Graph extensivamente para melhorar a velocidade de criação de ativos, efeitos processuais, personalização de personagens e otimização.
Desenvolvemos shaders de mapa personalizados para pintar proceduralmente materiais complexos com um custo de desempenho mínimo. Os shaders podem gerar vários biomas visuais. Eles criam visuais dramaticamente diferentes enquanto usam muito poucos recursos e mantêm um baixo impacto na GPU e na memória.
O Shader Graph também foi fundamental na construção do nosso sistema de materiais de avatares. Por meio de um pipeline personalizado, um único material pode ser compartilhado entre todos os personagens sem depender de texturas, ao mesmo tempo em que permite que os jogadores personalizem quase todos os elementos do seu avatar – até detalhes como a cor das unhas. Essa abordagem garante o máximo desempenho, mesmo quando um grande número de personagens e acessórios é exibido simultaneamente.

Melhorias no desempenho do Unity Physics: Unity Physicscontrola todas as interações, incluindo arremesso, agarrar, reações de inimigos e desastres. Otimizamos as configurações do Rigidbody para permanecerem deterministas o suficiente para o modo Multiplayer.
Melhorias no sistema de áudio do Unity: O sistema de áudio do Unity foi usado para indicações de posição, vozes de jogadores, inimigos e explosões, ajudando os jogadores a se coordenarem e comunicarem em tempo real. Essas melhorias permitiram indicações de som espacial claras, mesmo em momentos caóticos.
Estabilidade do Addressables: Usamos o Addressables para suportar atualizações ao vivo de personagens, objetos e acessórios, garantindo o máximo de flexibilidade e possibilitando a escalabilidade a longo prazo para o projeto.

Como a equipe implementou efeitos otimizados para GPU?
PS: Implementamos efeitos otimizados para GPU usando primeiro a instanciamento de GPU para vegetação e joias. Isso desempenhou um papel importante na redução do impacto no desempenho dos efeitos visuais e partículas. Em seguida, otimizamos cada Shader Graph para mantê-lo o mais leve possível, contendo apenas a lógica estritamente necessária para o seu propósito.
Também otimizamos a geometria para manter o número de polígonos e chamadas de desenho o mais baixo possível. Nosso intrincado sistema de cavernas é extremamente leve, permitindo um desempenho suave em hardware de VR autônomo. Grandes seções do mapa PICKABOOM podem ser prototipadas, testadas e implantadas em menos de dois dias úteis, graças ao nosso editor de mapas desenvolvido sob medida.
Por último, reduzimos os custos de iluminação.O estilo visual do jogo foi projetado para minimizar o uso de iluminação em tempo real quase inteiramente. Luzes em tempo real são usadas apenas quando absolutamente necessário, como para momentos específicos de efeitos visuais ou para a lanterna do jogador. Nosso editor de mapas personalizado inclui um sistema de sonda de luz adaptativa construído especificamente para ambientes de caverna, permitindo que alcancemos uma iluminação estável e crível a uma fração do custo de desempenho.
Testámos cada parte desta abordagem para mais de 60 fps no Quest 3 e Quest 3S.

Quais são os seus objetivos de fluxo de conteúdo?
MF: Lançamos novas atualizações todas as semanas, incluindo novos itens, novos minijogos, melhorias de estabilidade e recursos solicitados pelos jogadores. Planejamos com duas a três semanas de antecedência, mas mantemos flexibilidade com base no feedback dos jogadores e nos relatórios de falhas. Podemos produzir conteúdo muito rapidamente usando conteúdo modular, abordagens de prototipagem rápida e Addressables.
Quais problemas relacionados ao desempenho a equipe encontrou?
PS: Enfrentamos picos de física, explosões de Rigidbody, instabilidade de rede e problemas de carga de GPU durante o jogo de desastre. Enfrentamos esses desafios simplificando a camada de física, otimizando os colisores, usando instanciamento de GPU e shaders de menor custo, melhorando a frequência de sincronização e removendo atualizações de objetos desnecessárias.
O Unity Profiler e o Frame Debugger foram muito úteis. Também contamos com o Deep Profiler para identificar problemas de coleta de lixo, bem como com o Android Logcat para diagnósticos em tempo de execução.

De quais marcos você tem mais orgulho?
MF: Em primeiro lugar, estamos felizes por termos alcançado uma estabilidade de mais de 60 fps no Quest 3 e Quest 3S. Também temos orgulho de suportar centenas de objetos de física em rede sem perda de desempenho e de manter zero bugs “bloqueadores” durante as atualizações semanais. Por último, é ótimo ter um sistema de câmera que captura imagens de alta qualidade sem quedas de quadros.
Que conselho você daria a um desenvolvedor que deseja escalar seu jogo de realidade virtual?
PS: Meu conselho seria prototipar rapidamente e refinar mais tarde. Também é importante manter a arquitetura multiplayer simples antes de escalar e fazer o perfil constantemente.
MF: É essencial criar conteúdo em peças modulares e priorizar a estabilidade de quadros em relação aos visuais. Eu também recomendo testar com jogadores reais semanalmente e desenvolver ferramentas desde o início.
Para saber mais sobre projetos feitos com Unity, visite o Página de recursos.
