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

# Criar um lobby

> Crie instâncias do PlayFab Lobby pertencentes ao cliente ou ao servidor e configure o máximo de jogadores, a política de acesso e as propriedades iniciais de membro para sessões multijogador.

Este artigo explica como criar um lobby.

## Como os lobbies são criados?

Há várias formas de criar um lobby.

* **Pelos seus jogadores**: os lobbies podem ser criados por jogadores que querem reunir uma equipe de jogadores para jogar. Esses são lobbies pertencentes ao cliente.
* **Pelos seus servidores de jogo**: os servidores de jogo do seu título podem criar lobbies e aguardar que os jogadores ingressem. Esses são lobbies pertencentes ao servidor.
* **Pelo matchmaking**: depois que um grupo de jogadores é formado após o matchmaking, um lobby é criado como local de espera antes do início do jogo. Esses são lobbies pertencentes ao cliente.

Do ponto de vista técnico, todos os lobbies se enquadram em duas categorias principais com base na propriedade: pertencentes ao servidor e pertencentes ao cliente. Para saber mais, consulte [Requisitos e privilégios do proprietário](/pt-BR/services/playfab/multiplayer/lobby/owner-requirements-and-privileges).

O uso geral do PlayFab Lobby é manter temporariamente um grupo de jogadores juntos. Para conhecer as aplicações mais comuns do Lobby, consulte a [visão geral do PlayFab Lobby](/pt-BR/services/playfab/multiplayer/lobby).

### Tipos de entidade compatíveis

Antes que um lobby possa ser criado, seu título precisa fazer login como uma entidade do PlayFab.

* Ao criar lobbies pertencentes ao cliente em nome dos seus jogadores, faça login como uma entidade title\_player\_account. Para obter mais informações, consulte [Noções básicas e práticas recomendadas de login](/pt-BR/services/playfab/identity/player-identity/login/login-basics-best-practices).
* Ao criar lobbies pertencentes ao servidor em nome dos seus servidores de jogo, faça login como uma entidade game\_server. Para obter mais informações, consulte [AuthenticateGameServerWithCustomId](https://learn.microsoft.com/en-us/rest/api/playfab/authentication/authentication/authenticate-game-server-with-custom-id).

## Como os lobbies são configurados

Várias configurações importantes de um lobby são definidas durante a criação: **maxMemberCount**, **accessPolicy**, **owner** e **ownerMigrationPolicy**.

* **maxMemberCount** define quantos jogadores o lobby pode comportar
* **accessPolicy** define quem pode descobrir a cadeia de conexão do lobby
* **owner** define o proprietário do lobby, que tem permissões especiais para atualizar os dados do lobby. Esse valor é, implicitamente, a entidade de cliente ou de servidor que está criando o lobby.
* **ownerMigrationPolicy** define políticas sobre como a propriedade do lobby deve ser transferida se o proprietário atual sair do lobby ou tiver problemas para manter a conexão com o lobby.

Além disso, durante a criação, o criador do lobby também pode definir propriedades personalizadas do lobby e propriedades de pesquisa para anexar dados personalizados à sessão do lobby. Essas propriedades personalizadas também podem ser modificadas pelo proprietário do lobby ao longo da vida útil do lobby.

Para obter mais informações, consulte [Propriedades do lobby](/pt-BR/services/playfab/multiplayer/lobby/lobby-properties).

<a id="example-creating-a-client-owned-lobby-using-the-lobby-and-matchmaking-sdk" />

## Exemplo de criação de um lobby pertencente ao cliente usando o SDK de Lobby e Matchmaking

Este exemplo usa um jogador local que fez login no PlayFab como uma entidade [title\_player\_account](/pt-BR/services/playfab/live-service-management/game-configuration/entities/available-built-in-entity-types).

Neste trecho de código, as propriedades do lobby são passadas como **lobbyConfiguration**, e o jogador que está criando o lobby passa suas propriedades iniciais de membro por meio de **creatorMemberConfiguration**. O jogador local se torna o proprietário do lobby, portanto é um lobby pertencente ao cliente. Depois que o lobby é criado com êxito, o **PFLobbyHandle** pode ser usado para convidar outros jogadores com [PFLobbySendInvite](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/functions/pflobbysendinvite).

```cpp theme={null}
    // Retrieved elsewhere from SDK's PFMultiplayerInitialize API
    PFMultiplayerHandle apiHandle = g_pfmHandle;

    // Retrieved elsewhere from one of PlayFab's title_player_account login APIs
    const PFEntityKey* clientOwner = m_localPlayerTitlePlayerAccounts[0];

    // Initialize the lobby configuration
    const char* gameModePropertyKey = "GameMode";
    const char* gameModePropertyValue = "GameMode_Foo";

    PFLobbyCreateConfiguration lobbyConfiguration{};
    lobbyConfiguration.maxMemberCount = 16;
    lobbyConfiguration.ownerMigrationPolicy = PFLobbyOwnerMigrationPolicy::Automatic;
    lobbyConfiguration.accessPolicy = PFLobbyAccessPolicy::Private;
    lobbyConfiguration.lobbyPropertyCount = 1;
    lobbyConfiguration.lobbyPropertyKeys = &gameModePropertyKey;
    lobbyConfiguration.lobbyPropertyValues = &gameModePropertyValue;
    
    // Initialize the creator's member properties
    const char* playerColorPropertyKey = "PlayerColor";
    const char* playerColorPropertyValue = "Red";

    PFLobbyJoinConfiguration creatorMemberConfiguration{};
    creatorMemberConfiguration.memberPropertyCount = 1;
    creatorMemberConfiguration.memberPropertyKeys = &playerColorPropertyKey;
    creatorMemberConfiguration.memberPropertyValues = &playerColorPropertyValue;

    // Create a lobby using our first player
    PFLobbyHandle lobby;
    HRESULT error = PFMultiplayerCreateAndJoinLobby(
        apiHandle,
        clientOwner,
        &lobbyConfiguration,
        &creatorMemberConfiguration,
        nullptr,
        &lobby);
```

Quando a chamada para criar um lobby for concluída, uma [PFLobbyCreateAndJoinLobbyCompletedStateChange](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/structs/pflobbycreateandjoinlobbycompletedstatechange) será fornecida por [PFMultiplayerStartProcessingLobbyStateChanges](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/functions/pfmultiplayerstartprocessinglobbystatechanges).

## Exemplo de criação de um lobby pertencente ao servidor usando o SDK de Lobby e Matchmaking

Este exemplo é semelhante ao [exemplo de lobby pertencente ao cliente](#example-creating-a-client-owned-lobby-using-the-lobby-and-matchmaking-sdk), exceto que cria o lobby como uma entidade [game\_server](/pt-BR/services/playfab/live-service-management/game-configuration/entities/available-built-in-entity-types) e chama [PFMultiplayerCreateAndClaimServerLobby](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/functions/pfmultiplayercreateandclaimserverlobby) em vez de [PFMultiplayerCreateAndJoinLobby](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/functions/pfmultiplayercreateandjoinlobby).

```cpp theme={null}
    // Retrieved elsewhere from SDK's PFMultiplayerInitialize API
    PFMultiplayerHandle apiHandle = g_pfmHandle;

    // Retrieved elsewhere from one of PlayFab's game_server login APIs
    const PFEntityKey* serverOwner = m_gameServerEntityKey;

    const char* gameModePropertyKey = "GameMode";
    const char* gameModePropertyValue = "GameMode_Foo";
    
    // Initialize the lobby configuration
    PFLobbyCreateConfiguration lobbyConfiguration{};
    lobbyConfiguration.maxMemberCount = 16;
    lobbyConfiguration.ownerMigrationPolicy = PFLobbyOwnerMigrationPolicy::Automatic;
    lobbyConfiguration.accessPolicy = PFLobbyAccessPolicy::Public;
    lobbyConfiguration.lobbyPropertyCount = 1;
    lobbyConfiguration.lobbyPropertyKeys = &gameModePropertyKey;
    lobbyConfiguration.lobbyPropertyValues = &gameModePropertyValue;
    
    // Create a lobby using our first player
    PFLobbyHandle lobby;
    HRESULT error = PFMultiplayerCreateAndClaimServerLobby(
        apiHandle,
        serverOwner,
        &lobbyConfiguration,
        nullptr,
        &lobby);
```

Quando a chamada para criar um lobby for concluída, uma [PFLobbyCreateAndClaimServerLobbyCompletedStateChange](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/structs/pflobbycreateandclaimserverlobbycompletedstatechange) será fornecida por [PFMultiplayerStartProcessingLobbyStateChanges](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/functions/pfmultiplayerstartprocessinglobbystatechanges).

Para obter mais informações sobre as diferenças entre lobbies pertencentes ao cliente e lobbies pertencentes ao servidor, consulte [Servidores de jogo e lobbies](/pt-BR/services/playfab/multiplayer/lobby/lobby-server-overview).

<Note>
  Para habilitar as APIs de servidor de jogo no PlayFab Multiplayer, você precisa definir PFMULTIPLAYER\_INCLUDE\_SERVER\_APIS antes de incluir PFLobby.h. Para obter mais informações, consulte [Servidores de jogo e lobbies](/pt-BR/services/playfab/multiplayer/lobby/lobby-server-overview)
</Note>

## Confira também

* [Referência do SDK do Lobby](/pt-BR/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pflobby/pflobby_members)
* [Criar lobbies pesquisáveis](/pt-BR/services/playfab/multiplayer/lobby/define-search-keywords)
* [Convidar jogadores para um lobby](/pt-BR/services/playfab/multiplayer/lobby/lobby-invites)
* [Propriedades do lobby](/pt-BR/services/playfab/multiplayer/lobby/lobby-properties)
* [Lobby e matchmaking](/pt-BR/services/playfab/multiplayer/lobby/lobby-and-matchmaking)


## Related topics

- [Início rápido do SDK do Lobby](/pt-BR/services/playfab/multiplayer/lobby/lobby-getting-started.md)
- [Criar lobbies pesquisáveis](/pt-BR/services/playfab/multiplayer/lobby/define-search-keywords.md)
- [Propriedade do lobby](/pt-BR/services/playfab/multiplayer/lobby/owner-requirements-and-privileges.md)
- [Localizar lobbies](/pt-BR/services/playfab/multiplayer/lobby/find-lobbies.md)
- [Ingressar em lobbies](/pt-BR/services/playfab/multiplayer/lobby/join-lobbies.md)
