O PlayFab Multiplayer SDK também fornece APIs para os PlayFab Lobbies. * Para obter mais informações sobre as APIs C++, confira o Início rápido do SDK de Lobby * Para obter mais informações sobre as APIs do Unity, confira o Início rápido para Unity * Para obter mais informações sobre as APIs do Unreal, confira o Início rápido para Unreal
Pré-requisitos
Você precisa de uma conta do PlayFab para usar o PlayFab Matchmaking. Para obter instruções sobre como criar uma conta, confira Início rápido: Game Manager.Configurar uma fila de matchmaking no Game Manager
A biblioteca combina usuários que criam tíquetes para filas configuradas no Game Manager. Para obter detalhes sobre como configurar uma, confira Configurando filas de matchmaking.Baixar e configurar o PlayFab Multiplayer SDK
Baixe o SDK C/C++ para sua plataforma e integre os arquivos de cabeçalho e de biblioteca do provedor ao seu build.Este início rápido se concentra no uso do SDK C/C++. Para as interfaces do Unity e do Unreal, confira os seguintes artigos: * Início rápido para Unity * Início rápido para Unreal
Fazer login de uma entidade do PlayFab
Para usar o PlayFab Lobby SDK, você precisa autenticar seu cliente usando chaves de entidade e tokens de entidade do PlayFab. Obtenha um par de chave e token de entidade do PlayFab fazendo login com a API REST LoginWithCustomId. Essa API também está disponível como uma projeção C/C++ por meio do PlayFab REST SDK.LoginWithCustomId é uma forma rápida de começar a usar os recursos do PlayFab, mas não se destina a ser o mecanismo de login com o qual você lança o jogo. Para obter orientações sobre login, confira Noções básicas e práticas recomendadas de login.
Inicializar o PlayFab Multiplayer SDK
Inicialize o PlayFab Multiplayer SDK seguindo estas etapas básicas:- Inicialize o SDK chamando PFMultiplayerInitialize
- Defina a chave e o token de entidade usados pela biblioteca em nome dos seus jogadores chamando PFMultiplayerSetEntityToken.
Criar um tíquete de matchmaking
Você cria um tíquete de matchmaking usando PFMultiplayerCreateMatchmakingTicket, no qual você especifica todos os usuários locais que devem fazer parte da partida e quaisquer atributos que deseja associar a esses usuários. Essa função também recebe um PFMatchmakingTicketConfiguration, no qual você especifica a qual fila o tíquete se destina, um tempo limite para o tíquete e quaisquer usuários remotos que você deseja incluir neste tíquete.Matchmaking com um único usuário local
Você pode iniciar o matchmaking para um único usuário local com uma chamada a PFMultiplayerCreateMatchmakingTicket.Matchmaking com um grupo de usuários remotos
Para iniciar o matchmaking em grupo com usuários remotos, é útil considerar um cliente como o líder. Peça ao líder que crie o tíquete usando PFMultiplayerCreateMatchmakingTicket, especificando os outros usuários do grupo por meio do parâmetro configuration. Depois que o tíquete for criado, chame GetTicketId para obter a ID do tíquete. Envie essa ID para cada um dos outros usuários por meio de um mecanismo externo, como uma malha de rede ou um PlayFab Lobby compartilhado, e peça a cada cliente que chame PFMultiplayerJoinMatchmakingTicketFromId com a ID do tíquete para ingressar no tíquete de matchmaking. O status do tíquete será PFMatchmakingTicketStatus::WaitingForPlayers enquanto aguarda o ingresso dos jogadores especificados e mudará para PFMatchmakingTicketStatus::WaitingForMatch quando todos os jogadores tiverem ingressado no tíquete.Matchmaking com vários usuários locais
Ao fazer matchmaking com vários usuários locais, em vez de passar um único PFEntityKey para as funções PFMultiplayerCreateMatchmakingTicket ou PFMultiplayerJoinMatchmakingTicketFromId, você precisa passar uma lista de chaves. Da mesma forma, você precisará passar uma lista de atributos para cada usuário. As posições das entradas de cada lista devem corresponder entre si. Ou seja, a primeira entrada da lista de atributos deve conter os atributos do primeiro jogador da lista de PFEntityKey.Verificar o status do tíquete de matchmaking
Você deve verificar se há atualizações no tíquete chamando PFMultiplayerStartProcessingMatchmakingStateChanges para receber as alterações de estado e, em seguida, chamando PFMultiplayerFinishProcessingMatchmakingStateChanges quando terminar de processar essas alterações de estado. O SDK retornará uma alteração de estado TicketStatusChanged sempre que o status do tíquete mudar e uma alteração de estado TicketCompleted quando o matchmaking for concluído.Exemplo usando o SDK de cliente de Matchmaking
Obter a partida
Depois de receber a alteração de estado PFMatchmakingStateChangeType::TicketCompleted, chame PFMatchmakingTicketGetMatch para obter os detalhes da partida. Esses detalhes conterão a ID da partida, os usuários que foram combinados, a região preferencial da partida e uma cadeia de caracteres de organização do lobby associado à partida. Depois de recuperar todas as informações necessárias da struct PFMatchmakingMatchDetails, o tíquete deve ser destruído com PFMultiplayerDestroyMatchmakingTicket.Exemplo usando o SDK de cliente de Matchmaking
Cancelando um tíquete de matchmaking
Se, por algum motivo, seu cliente quiser cancelar o processo de matchmaking antes do tempo limite definido emPFMatchmakingTicketConfiguration, chame PFMatchmakingTicketCancel com o identificador do tíquete.
Chamar essa API não garante que o tíquete será cancelado. O tíquete ainda pode ser concluído antes que o cancelamento possa ser processado, ou a solicitação de cancelamento pode falhar devido a erros de rede ou do serviço. Você ainda pode processar as alterações de estado de matchmaking para obter o resultado do tíquete, caso queira confirmar que o cancelamento do tíquete foi concluído antes de prosseguir. Caso contrário, você pode chamar imediatamente PFMultiplayerDestroyMatchmakingTicket.
Exemplo usando o SDK de cliente de Matchmaking
(Opcional) Conectando seus jogadores em um Lobby
Depois que seus jogadores forem combinados, eles poderão se reunir em um lobby. O PFMatchmakingMatchDetails do tíquete combinado contém um campo lobbyArrangementString, que pode ser usado para colocar os usuários no mesmo Lobby. Para obter mais informações sobre como o Lobby e o Matchmaking interagem, confira Usar o lobby e o matchmaking juntos. Para obter mais informações sobre os PlayFab Lobbies, confira a Visão geral do PlayFab Lobby.Exemplo usando o SDK de cliente de Matchmaking
Conclusão
Com este início rápido, você já deve ter um fluxo de matchmaking funcionando no seu jogo. Além disso, considere o seguinte:- Como seu título lida com a formação de grupos.
- O que seu título exibe enquanto os usuários aguardam uma partida.
- Como lidar com falhas e novas tentativas.
