Entre na Boss Room: nosso novo jogo de amostra multijogador

Explore a nova biblioteca de netcode experimental da Unity e os padrões subjacentes de um jogo multijogador em nosso RPG cooperativo de pequena escala, Boss Room
Criar jogos multijogador não é fácil, e é comum se sentir sobrecarregado ao explorar o desenvolvimento de um jogo multijogador, mesmo com a documentação do SDK fornecida. Você precisa de conselhos sobre o que fazer com os SDKs e padrões fornecidos que você pode usar como blocos de construção para seus próprios jogos. Nosso objetivo como equipe de rede Multiplayer da Unity é equipar e dar suporte aos desenvolvedores (como você) com as ferramentas necessárias para criar excelentes experiências de jogo multijogador para seus jogadores. Parte dessa promessa envolve fornecer não apenas a tecnologia de rede fundamental, mas também a documentação e os modelos educacionais necessários para entender sua aplicação. É aí que entram nossas amostras multijogador – com Boss Room sendo o primeiro conteúdo educacional desse tipo.
À medida que o Boss Room é desenvolvido, tutoriais sobre os diferentes aspectos da rede o exemplo será escrito para desenvolvedores em nosso novo site de documentação. Esses tutoriais abordarão muitas partes críticas da rede de um pequeno jogo cooperativo, como escolher entre RPCs e NetworkVariables, ou como projetar seu jogo para ser responsivo com técnicas de compensação de atraso.
Agora vamos mergulhar em nosso novo exemplo de co-op de acesso antecipado: Sala do chefe.
Entre na sala do chefe
Bem-vindo ao Boss Room, um projeto de amostra oficial criado no LTS 2020 que apresenta o conjunto nativo de ferramentas, gráficos e tecnologia de rede experimentaldo Unity – disponível agora como acesso antecipado pelo Github. Boss Room aproveita o novo pacote experimental netcode para reunir até oito jogadores para derrotar diabinhos e um chefe nesta adorável fatia vertical de uma masmorra RPG cooperativa. Ansioso por mais Boss Room? Não se preocupe – ele continuará a evoluir junto com a comunidade, à medida que nossa solução multijogador também evolui.
Comece aquiou continue lendo para ver um rápido tour sobre o que esperar no Boss Room hoje.
A premissa
Os jogadores começarão a Boss Room hospedando ou ingressando em um servidor de jogo, que será hospedado em um dos dispositivos dos jogadores.
Uma vez conectados, os jogadores selecionarão um Herói entre um dos oito disponíveis, entrarão em um lobby e selecionarão seu personagem enquanto aguardam que todos os membros do grupo estejam prontos para jogar. Quando todos os jogadores estiverem prontos, um breve cronômetro será exibido e todos os Heróis serão transportados para o ambiente da Sala do Chefe.
Uma vez na Sala do Chefe, os jogadores devem trabalhar juntos para passar pelos lacaios inimigos e derrotar o chefe.
Rede
Como o objetivo principal do Boss Room é ensinar aos desenvolvedores os conceitos e padrões subjacentes por trás de um jogo multijogador, os aspectos de rede do exemplo são cruciais.
Parte do principal valor projetado no Boss Room são os padrões multijogador que ele mostra: antecipação de animação de ação, lobby, estado vs. RPC e muito mais. O objetivo é fornecer aos usuários não apenas a implementação desses padrões, mas também documentação para ajudá-los a entendê-los. Não deixe de ficar de olho em nosso site de documentação para se manter atualizado com esses artigos conforme eles forem publicados nos próximos meses.
O modelo de rede usado no Boss Room é um servidor hospedado pelo cliente, e os jogadores podem se conectar entre si por meio de um Photon Relay integrado e conexão direta IP.
Personagens e classes
Para Personagens Jogadores, temos quatro classes de personagens 3D (Mago, Guerreiro, Ladino e Arqueiro), três raças (Elfo, Humano e Anão) e dois gêneros representados hoje. Esses personagens têm duas habilidades principais e algumas animações de emotes incluídas para cada uma. Para IA/Inimigos, mostramos diabinhos e um chefe de masmorra – cada um com suas próprias habilidades únicas.

Os personagens em Boss Room são todos baseados em um modelo de personagem comum que chamamos carinhosamente de “U” – projetado para ser reutilizado e dimensionado em novos formatos e tamanhos. Como todos compartilham uma estrutura comum, eles são projetados para reutilização. O Boss Room usa a licença UCL, o que significa que você poderá reutilizar todos os nossos recursos e criar sobre eles seu próprio projeto Unity , então, por favor... faça modificações!

Como mencionado anteriormente, Boss Room demonstra uma variedade de técnicas de jogo de ação comumente encontradas em RPGs cooperativos, juntamente com padrões de codificação e técnicas que são úteis ao implementar essas ações. Isso inclui localização de caminhos e movimentação orientada pelo servidor com interpolação do lado do cliente, além de ter o Sistema de Ação como um mecanismo generalizado para personagens “fazerem coisas” de forma em rede.
As ações incluem tudo, desde o ataque básico do seu personagem até uma habilidade AOE sofisticada, como o Tiro de Voleio do Arqueiro. Abaixo está uma lista de arquétipos de ação implementados usando este sistema:
- Ataque corpo a corpo com uma verificação de hitbox baseada em física.
- Ataque de área de efeito. O ataque é centralizado em um ponto fornecido pelo cliente para mostrar a seleção de área do lado do cliente com um efeito acionado pelo servidor.
- Ataque de projétil de longo alcance que gera um projétil controlado pelo servidor. Também inclui uma variante desta ação com a capacidade de "carregar" o tiro mantendo pressionado o botão de ação.
- Ação atordoada que impede que agentes controlados por IA façam qualquer coisa.
- Ação furtiva que alterna o modo furtivo para ladino.
- Uma ação de polimento com uma habilidade incluída para carregá-la mantendo pressionado o botão de ação. Produz efeito extra no nível máximo de carga.
- Ações de emote que reproduzem animações bobas de personagens – elas mostram a comunicação do jogador.
- Ação de perseguição que faz seu personagem seguir o alvo escolhido
- Seleção de alvo usada para ações que podem mirar em um alvo, caso um seja escolhido.
- Ação de atropelar que o chefe executa e empurra heróis incautos para o lado – isso mostra padrões para física em rede.
- Ação de reviver que permite que os heróis tragam uns aos outros de volta à vida.
Masmorra e jogabilidade
O ambiente da Sala do Chefe foi criado para permitir que os jogadores tenham alguns momentos para testar as habilidades de seus personagens antes de enfrentar o chefe.
A masmorra possui uma antecâmara e uma sala de chefe, com um quebra-cabeça simples de troca de cooperativa para entrar na área do chefe. O objetivo é simples: derrotar os diabinhos, resolver o quebra-cabeça, derrotar o chefe – e chegar ao tesouro no final!

Uma nota da nossa equipe
O objetivo do Boss Room é maior do que apenas educação em API . O Multiplayer é uma das áreas da criação de jogos que influenciará o design do jogo, não apenas sua implementação. Conhecer boas práticas como "quando é aceitável ser controlado pelo cliente ou pelo servidor se eu tiver um NPC controlado pelo servidor, com impacto na física, como o chefe" ou "truques onde você pode usar animações de aceleração para esconder a latência" ajudará você a criar um jogo multijogador melhor. Todo o conjunto de recursos do Boss Roomé um exemplo dessas práticas e padrões.
O objetivo da nossa equipe é fornecer a você uma referência de todo o processo de engenharia em torno do desenvolvimento de jogos multijogador para que você possa criar um jogo multijogador de A a Z para tipos específicos de jogos. Isso envolverá design, implementação, testes e como lidar com um ambiente ativo. Começaremos com o Boss Room como referência – nossa documentação sobre ele está sendo escrita no momento.
O objetivo secundário do Boss Room é dogfood o novo pacote experimental de netcode GameObject (uma evolução do MLAPI). A equipe de amostras e a equipe do SDK trabalham juntas para melhorar o MLAPI, fornecer feedback sobre a experiência do usuário e levantar problemas. À medida que o MLAPI adiciona novos recursos e atualiza o SDK, continuaremos usando esses recursos e garantiremos que eles façam sentido no contexto de desenvolvimento do projeto.
O que vem a seguir?
À medida que nossa solução de rede continua a crescer e melhorar, este exemplo também o fará. Aqui estão algumas maneiras de permanecer envolvido.
- Siga este projeto no Githube explore suas capacidades com este guia
- Acompanhe o progresso do netcode principal no GitHub e adicione solicitações de atualizações ou recursos ao nosso roteiro público
Converse conosco no Discord ou no fórum Unity Multiplayer e compartilhe suas experiências ou peça ajuda