Pular para o conteúdo principal

Alocando sessões multijogador

Com o PlayFab Multiplayer Servers 2.0, você pode alocar instâncias do seu aplicativo de servidor multijogador usando a API RequestMultiplayerServer. Normalmente, essa API é chamada a partir dos seus próprios serviços (talvez um serviço de matchmaking ou de lobby), usando uma chave secreta de desenvolvedor do PlayFab configurada para o título específico. Para obter mais informações sobre chaves secretas, consulte Gerenciamento de chaves secretas. Um padrão típico para reunir jogadores e alocar servidores:
  1. Os clientes coletam informações de QoS da rede.
  2. Os clientes interagem com um serviço de matchmaking personalizado ou se reúnem por meio de convites sociais.
  3. Um serviço de matchmaking personalizado aloca uma sessão para o grupo, usando uma lista priorizada de regiões.
RequestMultiplayerServer tem vários parâmetros importantes:
  • BuildID: o build de servidor específico a ser alocado.
  • SessionID: um identificador da sessão. Esta é uma cadeia de caracteres GUID gerada pelo chamador. As novas tentativas dessa API para a mesma sessão lógica devem reutilizar o mesmo identificador. Isso reduz a possibilidade de o comportamento de repetição do chamador criar servidores desnecessários.
  • SessionCookie: dados arbitrários que serão comunicados por meio do SDK do servidor de jogo à sessão alocada na ativação. Um uso típico desse campo é comunicar uma chave compartilhada que os servidores de jogo usam para autenticar os clientes. Os dados devem ter menos de 4 kilobytes.
  • PreferredRegions: uma lista ordenada de regiões usada para alocar servidores. Recomendamos usar as medições de QoS da rede coletadas dos dispositivos cliente como o principal fator para classificar as regiões.
Uma alocação bem-sucedida retornará as seguintes informações:
Você pode usar o MpsAllocatorSample (encontrado aqui) como uma maneira fácil de alocar servidores de jogo durante o desenvolvimento do seu jogo

Alocação pelo cliente

Os servidores multijogador são caros e poderosos. Por padrão, você só pode solicitar um servidor multijogador a partir do seu próprio serviço confiável, usando uma chave secreta de desenvolvedor do PlayFab. No entanto, alocar servidores diretamente a partir dos dispositivos dos jogadores pode poupar o custo de implementar chamadas de serviço para serviço e ser útil em algumas circunstâncias. Para habilitar a alocação pelo cliente:
  • Selecione Settings no menu à esquerda.
  • Selecione a guia API Features.
  • Em seguida, ative a opção Allow Client to start games.
Game Manager - Settings - API Features - Allow Client to start games Quando essa configuração estiver ativada, você poderá chamar RequestMultiplayerServer usando o token de entidade de qualquer jogador associado ao título.

Depurando um servidor multijogador implantado

Talvez você queira depurar remotamente um servidor de jogo enquanto ele está implantado no Azure. Com o Visual Studio, isso atualmente exige que você instale e configure as Ferramentas de Depuração Remota do Visual Studio no contêiner.
O procedimento a seguir habilitará a depuração não segura e não autenticada.
O procedimento a seguir deve ser aplicado somente a builds de servidor destinados a desenvolvimento e testes, e geralmente evitado em um ambiente voltado para jogadores.
  1. Obtenha as Ferramentas de Depuração Remota do VS2017:
  1. Inclua essas ferramentas no pacote de ativos do seu servidor de jogo.
  2. Como parte da criação do build do servidor no Game Manager ou com a API de entidade, configure a porta TCP 4022 como uma porta de depuração.
  3. Você precisará executar o msvsmon dentro do contêiner para habilitar a depuração remota. Um padrão comum é especificar um script CMD como o comando de início do jogo e usar um argumento de linha de comando para iniciar o msvsmon além do executável do servidor de jogo.
  4. Execute o msvsmon uma vez com:
  1. Execute o msvsmon com os sinalizadores (mostrados abaixo).
Recomendamos listar especificamente a porta para que seu programa possa tratar o código de saída do processo se a porta já estiver em uso, em vez de se associar a uma porta aleatória que não está aberta.
  1. Aloque seu servidor de jogo.
  2. Tente depurar pelo VS, usando a porta de depuração externa retornada pela chamada de alocação.
Última modificação em 8 de outubro de 2026