- Correspondência
- Tíquetes de preenchimento não podem ser combinados entre si.
- Tíquetes de preenchimento recebem prioridade durante a pesquisa, reduzindo a fragmentação da base de jogadores.
- Contrato
- Tíquetes de preenchimento podem ser criados com um campo
ServerDetails. Isso permite que o servidor indique como os jogadores combinados devem se conectar a ele. - Tíquetes de preenchimento podem ser criados com atribuições de equipe. Isso permite que jogos com equipes mantenham as informações de suas equipes.
- Tíquetes de preenchimento podem ser criados com um campo
- Propriedades da fila
- Tíquetes de preenchimento não disparam a alocação de Multiplayer Server.
- Tíquetes de preenchimento não são refletidos nas estatísticas da fila, pois seus jogadores já estão jogando uma partida e distorceriam o tempo de espera de forma imprecisa.
- Propriedade
- Tíquetes de preenchimento pertencem a um servidor de jogo, não a um usuário. Os usuários não podem visualizar nem interagir com tíquetes de preenchimento de forma alguma.
Pré-requisitos
- Familiaridade básica com o PlayFab Multiplayer SDK. Para obter mais informações, confira o Início rápido do SDK de Matchmaking.
- Defina
PFMULTIPLAYER_INCLUDE_SERVER_APISantes de incluir o cabeçalho de matchmaking. Por exemplo:
Configurar um tíquete de preenchimento de servidor
Crie e preencha uma struct PFMatchmakingServerBackfillTicketConfiguration com os detalhes necessários:-
timeoutInSeconds: Por quanto tempo tentar preencher o tíquete, em segundos. -
queueName: O nome de uma fila de partidas. -
memberCount: O número de membros que estão atualmente na partida. -
members: Os membros PFMatchmakingMatchMember que estão atualmente na partida. -
serverDetails(opcional): Preencha PFMultiplayerServerDetails com informações sobre o seu servidor (FQDN, endereço IP, portas, região) que são fornecidas aos clientes.
O campo
PFMultiplayerServerDetails::ipv4Address não é validado e pode ser usado para fornecer informações arbitrárias de cadeia de conexão aos clientes.Criando um tíquete de preenchimento de servidor
Ao usar PFMultiplayerCreateServerBackfillTicket para criar um tíquete de preenchimento de servidor, precisamos passar a entidade do nosso servidor de jogo (como um PFEntityKey) junto com a configuração de preenchimento que criamos na etapa anterior.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 retorna uma alteração de estado TicketStatusChanged sempre que o status do tíquete muda e uma alteração de estado TicketCompleted quando o matchmaking é concluído.Obter a partida
Depois de receber a alteração de estado PFMatchmakingStateChangeType::TicketCompleted, chame PFMatchmakingTicketGetMatch para obter os detalhes da partida. Esses detalhes contêm 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.Cancelando um tíquete
Se quiser cancelar o processo de matchmaking antes do tempo limite definido emPFMatchmakingServerBackfillTicketConfiguration, chame PFMatchmakingTicketCancel com o identificador do tíquete.
Chamar essa API não garante que o tíquete seja 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.
