Como utilizar a autoridade distribuída para jogos cooperativos Multiplayer

EMILY RAINE / UNITY TECHNOLOGIESContributor
Sep 29, 2025|11 Min
Night Vision na Directiva Dagger
Esta página da Web foi automaticamente traduzida para sua conveniência. Não podemos garantir a precisão ou a confiabilidade do conteúdo traduzido. Se tiver dúvidas sobre a precisão do conteúdo traduzido, consulte a versão oficial em inglês da página da Web.

Quando a Arcane Alpacas lançou a primeira demonstração do seu jogo de tiro FPS Digger Directive no Steam no início deste ano, o feedback geral foi ótimo, mas a comunidade deixou claro que queriam jogar esse jogo juntamente. Com base nessa resposta, a equipe decidiu adicionar funcionalidade Multiplayer ao jogo. Eles testaram algumas soluções diferentes antes de decidir escolher o conjunto de soluções Multiplayer integradas incluídas no Unity 6. Nós nos reunimos com o programador e designer Daniel Fowler para saber como eles aproveitaram o Netcode for GameObjects, Relay e outros serviços de rede da Unity para conectar jogadores e como a Distributed Authority (DA) impulsiona toda a operação com suporte de servidor escalável e simples.

Começamos com um pouco sobre como o Arcane Alpacas começou e o que você queria criar.

Daniel Fowler, programador e designer: Eu comecei a empresa há alguns anos. Antes disso, nós – Wade Hribar, Cody Rowland e eu – trabalhamos na Oculus em Onward, um jogo FPS em VR, e queríamos deixar de trabalhar para grandes empresas.

Eu mesmo comecei esse projeto e, depois, trouxe os outros dois com o passar do tempo, conforme a necessidade. Eu consegui um contrato de publicação com o MicroProse e, depois, lancei uma demonstração. A demonstração foi muito bem, e queríamos adicionar o Multiplayer pois esse foi o nosso maior ponto de feedback da comunidade. Desde então, o jogo está a passar bem. Lançamos e estamos prestes a lançar um pacote de conteúdo.

Há algumas semanas, lançamos uma atualização de rede depois de conversar com a equipe da Unity – eles nos deram alguns comentários, compartilhamos alguns, e temos muitas ideias boas que analisamos e implementamos. O Multiplayer é muito mais estável agora, e tivemos feedback positivo da comunidade, embora ainda haja alguns problemas para resolver.

Isso é espetacular! O que mais está acontecendo com esse projeto?

Eu comecei esse projeto há quatro anos e meio. Na época, estávamos portando o Onward para o Quest, então estávamos pegando um jogo de VR PC de ponta e tentando colocá-lo em um celular. Para isso, tivemos que remover um monte de coisas, principalmente grama, e não pudemos usar os shaders computacionais no Oculus. Então, eu queria iniciar um projeto e ver como posso gerar uma quantidade enorme de grama e executá-la de maneira bastante eficiente. No final, construí um sistema de grama personalizado que usa o compilador Burst para gerar milhões de polígonos de grama, pequenas plantas e flores à medida que o jogador se move pelo mapa.

Os jogadores podem selecionar qualquer hora do dia para iniciar suas missões, e o tempo avança à medida que jogam. Portanto, iniciar uma missão às 6 da manhã e esperar uma hora fará com que a posição do sol se mova tanto. Usamos iluminação totalmente em tempo real e desenvolvemos nosso próprio Sky Shader. O pós-processamento também é afetado por isso, com o suporte de ScriptableObjects para manter todos os valores e como eles mudam ao longo do dia, e a iluminação e a hora do dia afetam os comportamentos e sensores de IA.

Eu adicionei coisas durante o dia porque eu queria confundir com a iluminação em tempo real também porque também estávamos desenvolvendo um segundo jogo. Esta foi a minha coisa divertida de fim de semana. Depois de um tempo, comecei a adicionar alguns personagens, e parecia que tinha um jogo inteiro aqui. Eu desenvolvi isso um pouco mais e fiz algumas pessoas trabalharem nisso, e eles gostaram.

A iluminação em tempo real e milhões de polígonos de grama são possíveis porque estamos usando o Pipeline de Renderização Universal (URP) e a renderização Forward+, juntamente com a caixa residente da GPU e o oclusão da GPU. Estávamos usando o batcher do SRP antes de atualizar para o Unity 6 a partir do Unity 2021.3. O Resident Drawer e oclusion culling melhoraram o desempenho em cerca de 20% em relação ao SRP Batcher.Os shaders e as texturas de menor complexidade também ajudaram no desempenho. Verificamos que tudo isso estava funcionando por meio de amostragem com RenderDoc e correção de problemas assim que surgiram. No fim você pode jogar no SteamDeck a 30-60 FPS em configurações gráficas médias.

Eu realmente queria criar um grande ambiente aberto que permitisse aos jogadores fazer o que quiserem. É mais uma caixa de areia do que algo como Call of Duty, onde você está simplesmente indo pelo mesmo corredor com os mesmos inimigos que geram posições. Eu queria dar liberdade ao jogador a escolher como abordar diferentes objetivos e misturar durante o dia. Depois, com jogabilidade cooperativa, isso permite que eles se dividam em indivíduos ou equipes de dois ou simplesmente permaneçam em um grupo grande de quatro. Isso adiciona muito mais.

Vamos ampliar o jogo, temos mais cinco missões em breve. Acabamos de concluir nosso primeiro pacote de conteúdo, adicionando outras 12 armas, 14 ou 16 opções uniformes e vários equipamentos novos.

Eu realmente gostei dos antigos jogos Delta Force e Ghost Recon, então eu queria criar algo semelhante. Eu tive que manter o estilo de arte simples porque eu sou um engenheiro, não um artista. Eu estava me concentrando em fazer arte que eu era capaz de fazer, então se eu tivesse que fazer todo o jogo sozinho, eu seria capaz. É daí que veio o estilo do jogo. Mas acho que funcionou bem, misturando efeitos de iluminação em tempo real e pós-processamento com texturas antigas e modelos de baixa poligonalidade. Reúna um pouco de coisas.

Eu acho que Valheim me deu muita inspiração quando isso saiu porque antes eu realmente não tinha todos os efeitos de pós-processamento e iluminação, parecia muito mais um jogo de meados dos anos 90. Depois, vi o que fizeram com muitos dos efeitos que tiveram, e pensei que eu poderia fazer isso também.

Quando mudou para o Unity 6?

O projeto começou no Unity 2019, depois atualizei para o Unity 2021.3. Eu segui isso até o final do ano passado, quando atualizei para o Unity 6 apenas para testar o oclusão da GPU. E isso nos deu um bom aumento de 15 a 20% no desempenho.

Antes, eu usava o SRP Batcher com o URP e outras coisas, e pude desligar tudo isso e seguir com o GPU Oclusion Culling. Eu não uso LODs, mas ele tem a configuração para cull com base no tamanho da tela, então eu ativei tudo isso e, novamente, houve uma melhoria de 15 a 20% no desempenho. E agora temos o jogo em execução no Steam. Não voltei desde que vejo aumentos de desempenho.

Jogabilidade na Directiva Dagger

Vamos falar um pouco mais sobre o lado da rede – como você está usando o Relay?

É destinado principalmente aos jogadores, para que não precisem configurar muitos itens em seus roteadores. Eu tentei o forwarding de porta quando eu usei alguns dias para testar vários sistemas Multiplayer e veja o que funcionou bem. Fizemos a configuração muito rapidamente inicialmente, mas uma vez que decidimos usar o Unity 6 Multiplayer para rede, então eu simplesmente fui configurar o Relay, e nós temos feito testes assim desde então.

Para desempenho, estamos usando o simulador de rede, que tem funcionado bem. Apenas se conectar a um celular em um hotspot nos ajudou bastante no desempenho dos testes.

Você usou autoridade distribuída também. Como isso aconteceu?

Eu olhei para fazer o Multiplayer para este jogo depois que lançamos a demonstração. O maior ponto de feedback foi que as pessoas queriam jogo cooperativo, sabíamos que seria importante, mas estávamos pensando em guardá-lo para o segundo jogo.

Mas com o volume de feedback e depois de conversar com nossa editora, decidimos ficar sentados e ver quanto tempo levaria. Eu experimentei o Photon, depois o sistema de fusão do Photon e, depois, olhei para outras bibliotecas. Eu pensei em criar meu próprio, e então decidi experimentar o Netcode for GameObjects. Eu decidi tentar o Distributed Authority porque, basicamente, todo o jogo foi feito. Não queria lidar com a solicitação e a solicitação de aprovação para alterações de propriedade de GameObjects.

Como é um jogo cooperativo, as pessoas traindo não é realmente uma preocupação que temos – se eles estão traindo com seus amigos, então isso depende deles. Também temos os trapaças no jogo, para que possam ativar infinitas munições e muito mais, portanto, se estiverem duplicando objetos, não importa.

Foi isso que me ajudou a decidir ir com o DA. Nós conseguimos configurar essa coisa rapidamente, para que os outros dois membros pudessem trabalhar na conclusão do conteúdo enquanto eu me concentrava em tudo relacionado à rede. Eu estimava que levaria 12 ou 13 semanas para fazer tudo isso, e acabou levando cerca de 14.

Jogabilidade na Directiva Dagger

Você estava usando o Relay, então acho que às vezes você a executa em um modo de conexão direta?

Sim. Também configuro a conexão direta para que os jogadores possam executá-la sozinhos e que seus amigos se conectem diretamente a eles. Eles têm que configurar o forwarding de porta em seu roteador, mas tenho instruções sobre como configurá-lo. Mas não há migração de host, então, se o host sair, isso acaba por acabar com o jogo para todos.

Esta funcionalidade é ainda mais se algum dia desligarmos como um estúdio ou se o Unity desligar os servidores Relay ou algo assim, os jogadores ainda podem pelo menos jogar jogos de conexão direta, espero por um tempo.

Isso faz sentido. Isso é muito futurista e também bom para os jogadores, então é incrível ouvir.

Quase todos os jogos que trabalhei nos últimos 15 anos foram Multiplayer, e isso tem sido um problema em todos os lugares que eu estive – algo se desliga inesperadamente e, depois, temos que agitar para corrigir algo. Eu queria estar à frente dessas coisas.

Você mencionou migração de host e transferências de propriedade em Discussões. O que você sente sobre o valor que a DA traz isso? Ele é uma boa adição ao seu jogo e auxilia no desenvolvimento?

A migração de host especialmente foi quase perfeita. Novamente, isso é uma dessas coisas que sempre foram um problema em jogos em que trabalhei no passado, onde o host se foi de repente e, depois, precisamos mudar um monte de coisas e decidir quem é o proprietário do que e tudo isso.

Mas houve muitas coisas que acabaram de funcionar. Eu tenho feito isso para sempre, então vejo isso acontecer e sou muito suspeita na primeira vez. Mas também não tivemos problemas, ou se tivermos um pequeno problema, vejo a documentação e costumo dizer: “Oh, esqueci de marcar uma caixa que diz que transferirá automaticamente esse objeto de jogo para a próxima pessoa”, ou qualquer coisa. Era apenas uma questão de me certificar de configurar as coisas corretamente, então se eu encontrar problemas, posso corrigi-los rapidamente com esse sistema.

Confira Dagger Directive no Early Access no Steam e veja a atualização mais recente da equipe aqui. Saiba mais sobre a autoridade distribuída e outras soluções Unity Multiplayer, além de encontrar histórias de desenvolvedores Unity em nossa página de recursos.