Introdução
Este documento se destina a desenvolvedores de jogos que usam atualmente o MPSD e desejam passar a usar o PlayFab Multiplayer e o MPA em seus jogos multijogador. O documento aborda os cenários multijogador mais comuns e fornece trechos de código que mostram como usar o PlayFab Multiplayer com o MPA.Visão geral do Multiplayer Session Directory (MPSD)
- Serviço de sessão completo para compartilhar as informações necessárias para conectar um grupo de usuários
- Integrado à interface do usuário do XBOX para a funcionalidade de convites e entrada
- Totalmente integrado ao matchmaking do SmartMatch
- As sessões são derivadas de modelos de sessão predefinidos
- Funcionalidade integrada de detecção de conectividade e fluxo de sessão
- Disponível como serviço a serviço
Visão geral do Multiplayer Activity Service (MPA)
- Serviço leve para simplificar a integração com o XBOX Live para atividades de jogadores, convites e jogadores recentes
- Coordena-se com o shell e o sistema operacional do console para enviar/aceitar convites e receber entradas
- Sem gerenciamento de sessão nem matchmaking
- Disponível como serviço a serviço
Visão geral do PlayFab Multiplayer
- Serviço completo de lobby multijogador que inclui funcionalidade de pesquisa e navegação de lobbies
- Notificações de serviço multiplataforma em tempo real com integração de API transparente
- Serviço completo de matchmaking com suporte a notificações em tempo real
Inicialização
A tabela a seguir mostra uma lista de funções equivalentes usadas pelo MPSD e pelo PlayFab Multiplayer para a inicialização.Inicialização - Código de exemplo
Inicialize a biblioteca com o titleID do PlayFab e defina o token de entidade recebido durante o login no serviço PlayFab.Alterações de estado do lobby
A tabela a seguir mostra uma lista de funções equivalentes usadas pelo MPSD e pelo PlayFab Multiplayer para tratar eventos relacionados a sessões/lobbies.Alterações de estado do lobby - Código de exemplo
Notifique a biblioteca de que você está começando a processar as alterações de estado. Trate cada alteração de estado na fila e, em seguida, notifique que terminou de processar as alterações de estado.Criar lobby
A tabela a seguir mostra uma lista de funções equivalentes usadas pelo MPSD e pelo PlayFab Multiplayer para criar uma sessão/lobby e entrar nela.Nenhuma instalação ou configuração adicional no PlayFab Game Manager é necessária para criar um lobby. Toda a configuração pode ser feita no código.
Criar lobby - Código de exemplo
Configure o lobby e defina as propriedades iniciais do lobby ou dos membros e, em seguida, crie o lobby e entre nele.Encontrar lobbies
A tabela a seguir mostra uma lista de funções equivalentes usadas pelo MPSD e pelo PlayFab Multiplayer para pesquisar sessões/lobbies.Encontrar lobbies - Código de exemplo
Defina a configuração de pesquisa e, em seguida, pesquise lobbies.Chaves de pesquisa de lobby
Somente um conjunto restrito de chaves pode ser usado ao definir propriedades de pesquisa personalizadas.- Para propriedades de cadeia de caracteres, as seguintes chaves têm suporte: string_key1, string_key2, […] string_key30
- Para propriedades numéricas, as seguintes chaves têm suporte: number_key1, number_key2, […] number_key30
Operadores de pesquisa de lobby
As cadeias de consulta das APIs FindLobbies são estruturadas em uma sintaxe semelhante à do OData. O tamanho máximo da cadeia de filtro é de 600 caracteres. Estes operadores OData podem ser usados para compor cadeias de consulta. Os operadores diferenciam maiúsculas de minúsculas.Ao comparar propriedades de cadeia de caracteres, certifique-se de colocar o valor comparado entre aspas simples. Por exemplo, “string_key1 eq ‘SOME STRING VALUE’”. As propriedades numéricas não precisam ficar entre aspas.
Classificando os resultados da pesquisa
Cadeia no estilo OData que contém a classificação desta consulta em ordem crescente (“asc”) ou decrescente (“desc”). As cláusulas OrderBy podem ser usadas para qualquer uma das chaves numéricas de pesquisa ou das chaves de pesquisa predefinidas que sejam numéricas. Para classificar pela proximidade de um número, o moniker distance pode ser usado para classificar pela distância em relação à chave numérica de pesquisa informada. Não é possível usar ordem crescente ou decrescente com a classificação por distância. Este campo só oferece suporte a uma cláusula de classificação ou a uma cláusula de distância. Se nenhuma classificação for fornecida ou se for necessário um desempate para a classificação informada, a classificação padrão será decrescente com base no horário de criação.Classificando e filtrando os resultados da pesquisa - Código de exemplo
Entrar no lobby
A tabela a seguir mostra uma lista de funções equivalentes usadas pelo MPSD e pelo PlayFab Multiplayer para entrar em sessões/lobbies.Entrar em um lobby requer uma cadeia de conexão. Normalmente, o host do lobby define essa cadeia de conexão em sua atividade ou a envia por meio de um convite. Para obter a cadeia de conexão, você precisa chamar
PFLobbyGetConnectionString.Entrar no lobby - Código de exemplo
Defina a configuração inicial de entrada e, em seguida, entre no lobby.Atualizar o lobby
A tabela a seguir mostra uma lista de funções equivalentes usadas pelo MPSD e pelo PlayFab Multiplayer para atualizar uma sessão/lobby.PFLobbyPostUpdate pode ser usado para atualizar tanto as propriedades do lobby quanto as propriedades dos membros. Você pode atualizar um ou ambos os tipos de propriedades com uma única chamada à função.Atualizar o lobby - Código de exemplo (propriedades do lobby)
Atualizar o lobby - Código de exemplo (propriedades dos membros)
Matchmaking
As APIs de matchmaking do PlayFab Multiplayer são relativamente semelhantes às APIs de matchmaking do MPSD.As filas de matchmaking devem ser configuradas por meio do PlayFab Game Manager.
Alterações de estado do matchmaking
A tabela a seguir mostra uma lista de funções equivalentes usadas pelo MPSD e pelo PlayFab Multiplayer para tratar eventos relacionados ao matchmaking.Alterações de estado do matchmaking - Código de exemplo
Notifique a biblioteca de que você está começando a processar as alterações de estado. Trate cada alteração de estado na fila e, em seguida, notifique que terminou de processar as alterações de estado.Iniciar o matchmaking
Iniciar o matchmaking - Código de exemplo
O matchmaking não começará até que todos os especificados no campo
membersToMatchWith tenham entrado.Limpeza
A tabela a seguir mostra uma lista de funções equivalentes usadas pelo MPSD e pelo PlayFab Multiplayer para limpeza e encerramento.Certifique-se de sair de todos os lobbies ativos e destruir todos os tíquetes de matchmaking em andamento antes de chamar
PFMultiplayerUninitialize.Limpeza - Código de exemplo
Atividades
A tabela a seguir mostra uma lista de funções equivalentes usadas pelo MPSD e pelo MPA para gerenciar atividades.Ao definir uma atividade ou enviar um convite, certifique-se de usar a cadeia de conexão retornada por
PFLobbyGetConnectionString.Atividades - Código de exemplo
Convites
A tabela a seguir mostra uma lista de funções equivalentes usadas pelo MPSD e pelo MPA para enviar e receber convites.Convites - Código de exemplo (interface do usuário do título)
Convites - Código de exemplo (interface do usuário do XBOX)
XGameUiShowMultiplayerActivityGameInviteResult usa a atividade definida no momento. Você deve definir uma atividade usando XblMultiplayerActivitySetActivityAsync antes de usar essa função.Jogadores recentes
A tabela a seguir mostra como a lista de jogadores recentes é gerenciada ao usar o MPSD e o MPA.Para evitar a limitação de taxa, a prática recomendada é agrupar as chamadas a
XblMultiplayerActivityUpdateRecentPlayers.