> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Alocar servidores de jogo e conectar o depurador do Visual Studio

> Saiba como alocar servidores de jogo multijogador do PlayFab com RequestMultiplayerServer e anexar as ferramentas de depuração do Visual Studio a uma sessão em execução.

## 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](xref:titleid.playfabapi.com.multiplayer.multiplayerserver.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](/pt-BR/services/playfab/live-service-management/gamemanager/secret-key-management).

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:

* O endereço **IPv4** do servidor.
* Os mapeamentos de portas **TCP/UDP** (consulte [Conectando clientes a servidores de jogo](/pt-BR/services/playfab/multiplayer/servers/connecting-clients-to-game-servers)).
* A **região** do servidor.

<Note>
  Você pode usar o MpsAllocatorSample (encontrado [aqui](https://github.com/PlayFab/MpsSamples/tree/master/MpsAllocatorSample)) como uma maneira fácil de alocar servidores de jogo durante o desenvolvimento do seu jogo
</Note>

## 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**.

<img src="https://mintcdn.com/microsoft-4404708b/U1LR64ZWxo45eXwl/images/playfab/multiplayer/servers/tutorials/game-manager-settings-api-features-allow-client-to-start-games.png?fit=max&auto=format&n=U1LR64ZWxo45eXwl&q=85&s=3096df2ab104fcd3bed5015146b33436" alt="Game Manager - Settings - API Features - Allow Client to start games" width="1133" height="1200" data-path="images/playfab/multiplayer/servers/tutorials/game-manager-settings-api-features-allow-client-to-start-games.png" />

Quando essa configuração estiver ativada, você poderá chamar [RequestMultiplayerServer](xref:titleid.playfabapi.com.multiplayer.multiplayerserver.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.

<Note>
  O procedimento a seguir habilitará a depuração não segura e não autenticada.
</Note>

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:

```cmd theme={null}
Invoke-WebRequest -OutFile rtools_setup_x64.exe -Uri
https://aka.ms/vs/15/release/RemoteTools.amd64ret.enu.exe
```

2. Inclua essas ferramentas no pacote de ativos do seu servidor de jogo.
3. 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.
4. 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.
5. Execute o `msvsmon` uma vez com:

```cmd theme={null}
/prepcomputer /quiet
```

6. Execute o `msvsmon` com os sinalizadores (mostrados abaixo).

```cmd theme={null}
/nostatus /noauth /nosecuritywarn /anyuser /nofirewallwarn /nodiscovery /port 4022
```

<Note>
  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.
</Note>

7. Aloque seu servidor de jogo.
8. Tente depurar pelo VS, usando a porta de depuração externa retornada pela chamada de alocação.


## Related topics

- [Conectar-se diretamente para depurar servidores de jogo](/pt-BR/services/playfab/multiplayer/servers/directly-debugging-game-servers.md)
- [Depurar projetos de PC em dispositivos Windows remotos no Visual Studio](/pt-BR/tools/tools-pc/visualstudio/gr-vs-debugging-with-visualstudio-remote-windows.md)
- [Propriedades do Visual Studio para o desenvolvimento de jogos para PC](/pt-BR/tools/tools-pc/visualstudio/gr-vs-property-pages.md)
- [Como implantar arquivos de recursos do jogo usando o Visual Studio](/pt-BR/tools/tools-console/visualstudio/how-to-deploy-resources.md)
- [Conectar-se a um servidor Unreal hospedado na nuvem](/pt-BR/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/connect-to-mps-hosted-build.md)
