Pular para o conteúdo principal
Jogos hospedados em um servidor às vezes precisam procurar jogadores adicionais. Na maioria das vezes, isso ocorre quando um ou mais jogadores se desconectam enquanto o jogo está em andamento. Os tíquetes de preenchimento de servidor permitem que um servidor de jogo procure jogadores adicionais que se encaixem no jogo que está sendo jogado no momento. Os tíquetes de preenchimento de servidor diferem dos tíquetes de matchmaking comuns de várias maneiras:
  1. 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.
  2. 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.
  3. Propriedades da fila
  4. 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_APIS antes 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 em PFMatchmakingServerBackfillTicketConfiguration, 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.
Última modificação em 8 de outubro de 2026