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

# Integração com o PlayFab Multiplayer Servers

> Saiba como configurar uma fila de matchmaking do PlayFab para alocar automaticamente um build ou alias de build do Multiplayer Server para cada partida concluída.

O matchmaking inclui uma opção que pode criar automaticamente um servidor de jogo para a partida resultante. O servidor alocado executa um build, que é configurado na configuração da fila. Na inicialização, os membros da partida são passados ao servidor como a lista de jogadores iniciais.

Uma fila de matchmaking está vinculada a um único build de servidor multijogador ou a um alias de build.

## Requisitos para usar a integração direta de matchmaking e servidores

Para alocar um servidor multijogador a partir do matchmaking, primeiro você precisa configurar um build e implantá-lo. Opcionalmente, você também pode criar um alias de build e usá-lo. Os aliases de build são preferíveis, pois permitem mais flexibilidade no uso do seu título. Siga os links fornecidos aqui para obter mais informações sobre [builds do Multiplayer Server](/pt-BR/services/playfab/multiplayer/servers/deploying-playfab-multiplayer-server-builds) e [alias de build do Multiplayer Server](/pt-BR/services/playfab/multiplayer/servers/allocating-with-build-alias)

O matchmaking também precisa que uma regra de seleção de região seja adicionada à fila, para que as partidas possam ser alocadas na região ideal para o build. As medições de latência passadas para a regra de seleção de região devem corresponder às regiões em que o build está ativo. Para obter mais informações sobre como passar atributos para uma regra de seleção de região, confira [Regra de seleção de região](/pt-BR/services/playfab/multiplayer/matchmaking/ticket-attributes#regra-de-seleção-de-região).

## Ativando a alocação de servidores para a fila

Para habilitar a alocação de servidores para uma fila, você precisa marcar a caixa de seleção **Enable server allocation** na página de configuração da fila. Depois de habilitá-la, escolha **Build alias** ou **Build Id**. Escolha o valor correto na lista suspensa para ser usado pela fila. Depois que você habilitar o recurso, o matchmaking tentará alocar um servidor para todas as partidas criadas na fila.

O exemplo a seguir mostra como deve ser a configuração de uma fila com integração de servidor multijogador
usando uma Build Id.

```json theme={null}
"MatchmakingQueue": {
    "Name": "ServerEnabledQueue",
    "MinMatchSize": 2,
    "MaxMatchSize": 2,
    "ServerAllocationEnabled": true,
    "BuildId": "88b3e315-829c-4b6d-9872-74f427ad5331",
	"RegionSelectionRule": {
		"MaxLatency": 1000,
		"Path": "Latencies",
		"Weight": 1.0,
		"Name": "RegionSelectionRule"
	}
}
```

Veja o mesmo exemplo usando um alias de build.

```json theme={null}
"MatchmakingQueue": {
    "Name": "ServerEnabledQueue",
    "MinMatchSize": 2,
    "MaxMatchSize": 2,
    "ServerAllocationEnabled": true,
    "BuildAliasParams": {
        "AliasId": "d14e2ac7-ea51-47aa-a7ba-cc427ab74f9s"
    },
	"RegionSelectionRule": {
		"MaxLatency": 1000,
		"Path": "Latencies",
		"Weight": 1.0,
		"Name": "RegionSelectionRule"
	}
}
```

O fluxo de chamadas ao matchmaking permanece o mesmo com a alocação de servidores habilitada. Depois que o matchmaking aloca um servidor para a partida, os detalhes do servidor resultante podem ser lidos no próprio objeto Match chamando
[GetMatch](xref:titleid.playfabapi.com.multiplayer.matchmaking.getmatch).

Veja abaixo uma resposta de exemplo de uma chamada `GetMatch` para uma fila com a alocação de servidores
habilitada.

```json theme={null}
{
    "MatchId": "7c36330d-46b5-443f-8d8f-10390bce09d5",
    "Members": [{
        "TeamId": "",
        "Entity": {
            "Id": "67282A13A1A58910",
            "Type": "title_player_account",
            "TypeString": "title_player_account"
        },
        "Attributes": {
            "DataObject": null,
            "EscapedDataObject": "{\"StringEqualityRulePath\":\"0bc42969-76b1-4dcb-871d-d6e19cee741b\"}"
        }
    },
    {
        "TeamId": "",
        "Entity": {
            "Id": "6DB2B17FD21CC230",
            "Type": "title_player_account",
            "TypeString": "title_player_account"
        },
        "Attributes": {
            "DataObject": null,
            "EscapedDataObject": "{\"StringEqualityRulePath\":\"0bc42969-76b1-4dcb-871d-d6e19cee741b\"}"
        }
    }],
    "RegionPreferences": ["WestUs", " EastUs"],
    "ServerDetails": {
        "IPV4Address": "40.76.31.170",
        "Ports": [{
            "Name": "game_port",
            "Num": 30003
        }]
    }
}
```

Os clientes podem usar o IP e a porta da seção de detalhes do servidor da resposta para se conectar ao servidor. Para obter mais informações sobre como conectar clientes a servidores multijogador, confira [Conectando clientes a
servidores](/pt-BR/services/playfab/multiplayer/servers/connecting-clients-to-game-servers)

> [!NOTE]
>
> Quando uma região do seu build fica sem capacidade, o matchmaking não consegue alocar partidas para a fila nessa região. O matchmaking continuará tentando a alocação até que o tíquete expire. Para aumentar a capacidade multijogador, confira [Acessando limites de núcleos maiores e regiões adicionais do Azure](/pt-BR/services/playfab/multiplayer/servers/identifying-and-increasing-core-limits)

## Informações passadas ao servidor de jogo

Veja a lista de informações que o matchmaking passa ao servidor.

* **SessionId** - O `SessionId` do servidor é igual ao MatchId da
  partida.
* **InitialPlayers** - Este valor é definido como a lista de membros da partida. A
  lista de jogadores pode ser lida no jogo usando o
  [GSDK](/pt-BR/services/playfab/multiplayer/servers/integrating-game-servers-with-gsdk).
* **PreferredRegions** - Este campo é definido como o campo `RegionPreferences` da
  partida. O serviço de servidores de jogo escolhe uma região apropriada para o
  servidor nessa lista.

O matchmaking não passa nenhum atributo de tíquete ao servidor de jogo. Se o jogo
precisar acessar algum atributo de tíquete no servidor, poderá fazer isso chamando
[GetMatch](xref:titleid.playfabapi.com.multiplayer.matchmaking.getmatch) com
o cabeçalho `ReturnMemberAttributes` definido como `true`.

> [!NOTE]
>
> Recentemente, habilitamos a passagem do nome da fila durante a alocação de servidores. Este recurso está em versão prévia, e você pode ler mais sobre ele [aqui](https://github.com/PlayFab/MpsSamples/blob/main/MatchmakeSample/matchMakingAndMps.md).


## Related topics

- [Matchmaking](/pt-BR/services/playfab/multiplayer/matchmaking/index.md)
- [Depurando servidores de jogo localmente e integração com o PlayFab](/pt-BR/services/playfab/multiplayer/servers/locally-debugging-game-servers-and-integration-with-playfab.md)
- [Integração com PlayFab Lobby e Match](/pt-BR/services/xbox-services/multiplayer/mpa/concepts/live-mpa-playfab-integration.md)
- [Integrando servidores de jogo ao PlayFab Game Server SDK (GSDK)](/pt-BR/services/playfab/multiplayer/servers/integrating-game-servers-with-gsdk.md)
- [Integração de marketplace - Microsoft Store](/pt-BR/services/playfab/economy-monetization/economy-v2/marketplace/marketplace-integrations/microsoft.md)
