Matchmaking
Veja a seguir um fluxo simplificado de como usar o matchmaking e o MPSD junto com o PlayFab Party:- Os jogadores criarão sessões do MPSD e se reunirão nelas; essas sessões representam os grupos que desejam jogar juntos nas sessões de matchmaking. Os jogadores se reunirão nessas sessões usando os recursos de convite e ingresso do XBOX.
- Esses grupos de jogadores enviarão tíquetes ao serviço de matchmaking, que reunirá grupos de jogadores compatíveis em uma sessão de matchmaking. Essa sessão de matchmaking será, por sua vez, representada por um novo documento de sessão no qual os jogadores ingressarão. Os jogadores também devem escutar as alterações nesse documento de sessão.
- Depois que a sessão de matchmaking for finalizada e a lista de participantes estiver bloqueada, o título deverá eleger um dos membros da sessão de matchmaking para configurar a rede do PlayFab Party. Uma estratégia simples para selecionar o criador da rede do Party é usar o primeiro membro do documento de sessão do MPSD de matchmaking.
-
O membro selecionado criará a rede com um
PartyInvitationinicial que restringe o acesso à rede apenas aos membros da sessão de matchmaking. Depois que a criação da rede for concluída com êxito, o membro selecionado deverá publicar o descritor de rede resultante e o convite do Party no documento de sessão como uma propriedade de sessão para que os outros membros a usem. -
Quando cada membro vir o documento de sessão atualizado, poderá usar o descritor de rede e o convite para se conectar à rede e ingressar nela.
Aqui apresentamos um fluxo para incorporar o matchmaking e o MPSD com o PlayFab Party. As ideias principais desse fluxo podem ser estendidas a outros fluxos do MPSD de seu interesse, mas apresentar todos os fluxos possíveis está fora do escopo desta documentação. Para obter mais informações, consulte a documentação completa do MPSD.
Convites da plataforma
Veja a seguir um fluxo de como incorporar os convites da plataforma XBOX ao PlayFab Party:-
O PlayerA cria um documento de sessão do MPSD, escuta as alterações na sessão e cria uma rede do Party. Quando a criação da rede do Party for concluída, o PlayerA publicará o descritor de rede e um convite inicial (se necessário) no documento de sessão do MPSD.
- Quando o PlayerA quiser convidar o PlayerB para a rede do Party, o PlayerA iniciará um convite da plataforma para o PlayerB por meio da interface do usuário do jogo ou do console.
- O PlayerB recebe o convite da plataforma, que inclui um “identificador de convite” que o PlayerB pode usar para localizar o documento de sessão do MPSD do PlayerA.
- O PlayerB ingressa no documento de sessão e escuta as alterações.
-
O PlayerA vê o PlayerB ingressar no documento de sessão. O PlayerA cria um novo convite para o PlayerB usar e publica esse convite no documento de sessão
-
O PlayerB vê o convite publicado no documento de sessão e o usa para ingressar na rede do Party.
Os convites criados por meio de PartyNetwork::CreateInvitation se tornarão inválidos se o PartyLocalUser que os criou sair da rede. Portanto, se um novo usuário se adicionar a um documento de sessão, mas o usuário que o convidou sair, é recomendável que o novo usuário se remova do documento de sessão e aguarde ser convidado novamente por outro usuário.
Ingresso em andamento
Ingressar em sessões de jogo em andamento é muito semelhante ao cenário de convite da plataforma. A principal diferença é que, em vez de o PlayerA enviar ao PlayerB um “identificador de convite”, o PlayerB receberá um “identificador de ingresso” ao iniciar um ingresso em andamento pela interface do usuário da plataforma. Usando esse “identificador de ingresso”, o PlayerB ingressará no documento de sessão e escutará as alterações. O PlayerA responderá criando e publicando um novo convite do Party para ele no documento de sessão. O PlayerB verá esse novo convite junto com o descritor de rede e o usará para ingressar na rede do Party.Os convites criados por meio de PartyNetwork::CreateInvitation se tornarão inválidos se o PartyLocalUser que os criou sair da rede. Portanto, se um novo usuário receber um convite do Party pelo fluxo de ingresso em andamento, mas não puder usá-lo porque o usuário que o criou saiu, é recomendável que o novo usuário se remova do documento de sessão e ingresse novamente mais tarde. Isso permitirá que outro membro da sessão reinicie o fluxo e gere um novo convite do Party para esse usuário.
Desconexões e limpeza
Se um jogador sair ou for desconectado de uma rede do Party de outra forma, ele também deverá se remover de todas as sessões do MPSD associadas a essa rede do Party. As desconexões da rede do Party não iniciadas por uma operação PartyNetwork::LeaveNetwork são consideradas fatais. Depois de sofrer uma desconexão fatal, um jogador pode tentar se reconectar e se autenticar novamente na rede, mas também deve ingressar novamente na sessão do MPSD. Se a conexão de um jogador com uma sessão do MPSD for interrompida temporariamente, ele poderá ser desconectado dessa sessão. Os jogadores podem tentar ingressar novamente na sessão, mas, se não conseguirem, devem se remover voluntariamente da rede do Party chamando PartyNetwork::LeaveNetwork.Os mecanismos e as heurísticas que detectam desconexões das redes do Party e das sessões do MPSD são diferentes. Mesmo em cenários em que um jogador será desconectado da rede do Party e da sessão do MPSD, esses eventos de desconexão são independentes, e não há garantia de que ocorram próximos um do outro no tempo. Os títulos devem lidar com o cenário em que um jogador pode ser desconectado apenas da rede do Party ou apenas da sessão do MPSD.
