Entender a relação entre o Lobby e o Matchmaking
O Lobby e o Matchmaking funcionam perfeitamente juntos para criar uma experiência coesa de matchmaking multijogador para o seu título.- O Matchmaking reúne um conjunto de jogadores que querem participar de uma sessão de jogo.
- Depois que o matchmaking identifica um conjunto de jogadores, o Lobby oferece a eles um meio de comunicação para coordenar o ingresso conjunto em uma sessão de jogo.
- Os cenários comuns do lobby incluem compartilhar informações de conexão do servidor de jogo, compartilhar IPs dos clientes para jogos ponto a ponto e compartilhar configurações dos jogadores.
Lobbies combinados
Os títulos podem usar “lobbies combinados” para facilitar a criação de lobbies para jogadores agrupados por meio do matchmaking. Depois que o tíquete de matchmaking combina com êxito um grupo de jogadores, o tíquete de matchmaking contém uma lobbyArrangementString. Cada jogador pode então passar a cadeia de caracteres de combinação para PFMultiplayerJoinArrangedLobby para ingressar no mesmo lobby.Cenário de exemplo
Um jogador quer jogar com outras pessoas. O jogador inicia um jogo multijogador, convida amigos e aguarda que outros ingressem.Especificações de design
- O jogo está aberto para que todos ingressem.
- O conjunto inicial de jogadores é preenchido por meio do matchmaking.
- O proprietário do lobby pode convidar amigos para ingressar.
- Quando o número necessário de jogadores é atingido, todos os jogadores do lobby recebem uma mensagem perguntando se estão prontos para iniciar o jogo. Eles têm um minuto para responder. O jogo começa depois que todos os jogadores confirmam que estão prontos para começar.
- Se os jogadores do lobby não confirmarem que estão prontos para jogar, o proprietário do lobby poderá removê-los como jogadores inativos e usar o matchmaking para encontrar novos jogadores e substituí-los rapidamente.
- Quando algum jogador for desconectado inesperadamente durante o jogo, o título deverá encontrar um substituto para o jogador que caiu por meio do matchmaking usando o preenchimento de vagas do servidor.
- Quando o jogo terminar, todos os jogadores retornam ao lobby. Os jogadores recebem conquistas de equipe igualmente. Eles podem ficar para iniciar outro jogo juntos ou sair do lobby.
Implementação
Esta seção descreve como usar o Matchmaking e o Lobby para implementar as especificações de design.- Criar um lobby formado por matchmaking
- Enviar convites aos amigos
- Permitir que as pessoas encontrem o jogo e ingressem nele
- Obter a confirmação dos jogadores para iniciar o jogo
- Remover e substituir jogadores inativos
- Tratar um jogo concluído
Criar um lobby formado por matchmaking
Crie um lobby público para um grupo de jogadores combinados pelo matchmaking.- Cada jogador cria um tíquete de matchmaking com os atributos de matchmaking especificados.
- Para saber mais, consulte Especificar atributos do tíquete.
- Todos os tíquetes criados são adicionados a uma fila de matchmaking para serem combinados entre si.
- Os tíquetes são combinados com base em regras.
- As regras podem ser definidas na configuração da fila de matchmaking.
- Para saber mais, consulte Configurar filas de matchmaking.
- Após o matchmaking, cada jogador ingressa no lobby formado por matchmaking por meio da lobbyArrangementString do tíquete de matchmaking.
- Ao ingressar no lobby combinado, especifique que a accessPolicy do lobby é Public para torná-lo aberto.
- Para obter mais informações, consulte Lobbies combinados.
- O primeiro jogador a ingressar no lobby combinado se torna o proprietário do lobby.
- As propriedades do lobby podem ser usadas para especificar qual mapa de jogo uma sessão de jogo pretende usar.
- Para obter mais informações, consulte Propriedades do lobby.
- Use propriedades de pesquisa para permitir que os jogadores encontrem esse lobby e essa sessão de jogo entre todos os lobbies ativos do seu título.
- Para obter mais informações, consulte Propriedades de pesquisa.
Enviar convites aos amigos
Permita que o proprietário do lobby selecione amigos e envie convites.- Obtenha a lista de amigos do proprietário do lobby
- Exiba a interface do usuário do jogo para permitir que o proprietário do lobby selecione os amigos a convidar
- Envie convites no jogo aos amigos selecionados.
- Para obter mais informações, consulte Convites de lobby.
Permitir que as pessoas encontrem o jogo e ingressem nele
Configure as propriedades de pesquisa do lobby para permitir que outros jogadores o encontrem- Exiba todos os lobbies na interface do usuário do jogo. Seu título também deve oferecer uma forma de aceitar os termos de pesquisa do jogador.
- Use PFMultiplayerFindLobbies com os parâmetros de pesquisa do jogador para retornar uma lista de lobbies que correspondam aos critérios.
- Depois que um jogador optar por ingressar em um jogo, use PFMultiplayerJoinLobby para adicionar o jogador ao jogo.
Obter a confirmação dos jogadores para iniciar o jogo
Informe a todos os jogadores do lobby que o jogo está pronto para começar- Quando o número necessário de jogadores estiver no lobby, exiba a interface do usuário do jogo para que os jogadores confirmem que estão prontos para começar a jogar.
- Permita que o proprietário do lobby veja essas respostas de confirmação.
Remover e substituir jogadores inativos
O proprietário do lobby pode remover jogadores inativos ou desconectados e iniciar o matchmaking para preencher as vagas restantes- Se um jogador se desconectar ou não responder dentro do período definido (um minuto), use PFLobbyForceRemoveMember para remover o jogador.
- O proprietário do lobby usa CreateServerBackfillTicket para criar um tíquete de matchmaking. Os tíquetes criados usando essa API recebem prioridade durante a pesquisa. Essa abordagem minimiza a interrupção da jogabilidade. Para saber mais, consulte Usar tíquetes de preenchimento de vagas do servidor.
- Depois de ingressar no lobby de preenchimento de vagas, o proprietário do lobby do jogo pode compartilhar a cadeia de conexão do lobby original com os novos jogadores de preenchimento, e eles podem ingressar no lobby original.
- Estenda o horário de início do jogo quando apropriado.
Tratar um jogo concluído
Após o término do jogo, todos os jogadores retornam à tela do lobby para concluir a sessão de jogo.- Os lobbies são transitórios, portanto quaisquer dados do lobby que devam ser persistidos precisam ser retidos por cada jogador nesse momento.
- Por exemplo, alguns cenários de jogo podem se beneficiar do processamento dos dados armazenados nas propriedades de membro e da transformação desses dados em conquistas do jogador.
- Os jogadores que quiserem continuar jogando com o mesmo grupo permanecem no lobby.
- Os jogadores que quiserem parar de jogar com o mesmo grupo saem do lobby com PFLobbyLeave e reiniciam o processo com um novo grupo de matchmaking.
