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

# Inicializando o GDK

> Configure o MicrosoftGame.config, inicialize o Gaming Runtime e o XSAPI e conecte o usuário ao XBOX Live ao portar um título do Steamworks para o GDK.

Para começar a usar o Steamworks depois de adicioná-lo ao projeto do seu jogo, você precisa chamar a função `SteamAPI_Init` para inicializar a API. Opcionalmente, você pode chamar `SteamAPI_RestartAppIfNecessary` para reiniciar o aplicativo pelo Steam, se necessário. Inicializar o XBOX Game Development Kit (GDK) é um pouco mais complexo, pois não há um aplicativo unificado usado para iniciar o jogo e se comunicar com os diferentes serviços de jogos, como acontece no Steam.

Para começar a usar as APIs do XBOX Game Development Kit (GDK), você precisa seguir as etapas abaixo.

1. Adicione um arquivo *MicrosoftGame.config* ao seu projeto.
2. Inicialize o serviço Gaming Runtime.
3. Inicialize a XBOX Services API para fazer chamadas ao XBOX Live para identidade do usuário, salvamentos na nuvem, conquistas e muito mais.
4. Conecte o usuário ao XBOX Live. Armazene o identificador e a ID de usuário do XBOX (XUID) retornados após uma entrada bem-sucedida para uso futuro.

<Note>
  No Steam, você tem acesso à Steam ID do usuário e a todas as APIs no momento do carregamento, pois o inicializador do Steam injeta automaticamente as informações da conta do usuário quando os jogos são iniciados a partir do serviço. As APIs do XBOX Live são usadas por jogos em vários inicializadores, portanto você não obtém isso automaticamente. Você precisa conectar o usuário manualmente na inicialização.
</Note>

Para obter informações sobre como realizar a etapa 1, confira [Visão geral do MicrosoftGame.config](/pt-BR/build/core-features/common/game-config/MicrosoftGameConfig-Overview).

Você pode encontrar informações sobre como realizar as etapas 2 a 4 em [Introdução às APIs do XBOX Live](/pt-BR/services/xbox-services/index) (ou resumidas a seguir), certificando-se de implementar também o comportamento descrito na seção Limpando o XSAPI desse tópico. Depois que o Gaming Runtime e a XBOX Services API forem inicializados, você poderá conectar o usuário ao XBOX Live. Você não precisa criar uma `XTaskQueue`, pois ela é criada automaticamente se você a deixar em branco.

```cpp theme={null}
#include <XGameRuntimeInit.h>
#include <XTaskQueue.h>
#include <xsapi-c/services_c.h>

// ...

void InitializeXboxLive()
{
    // ...
    HRESULT hr = XGameRuntimeInitialize();
    if (FAILED(hr))
    {
        // handle error: couldn't initialize the Gaming Runtime service.
    }

    XblInitArgs xblArgs = {};
    xblArgs.scid = "00000000-0000-0000-0000-000000000000"; // Add your SCID here that you got from the Partner Center web portal.

    HRESULT hr = XblInitialize(&xblArgs);
    if (FAILED(hr))
    {
        // handle error: couldn't initialize XBOX Live.
    }
    // ...
}
```

## Conectar o usuário ao XBOX Live

Use a [API XUserAddAsync](/pt-BR/build/core-features/common/user/xuser_howto_best_practice_signing_in) para conectar um usuário ao XBOX Live. Se for a primeira vez que ele entra no seu jogo, ele verá uma lista dos privilégios que seu jogo está solicitando. Ele precisará autorizar explicitamente esses privilégios para acessar sua conta do XBOX Live.

Depois que o usuário entrar com êxito, você poderá usar a referência `XUserHandle` que passou para a função [`XUserAddResult`](/pt-BR/reference/system/xuser/xuser_members). Ela pode ser usada para obter informações sobre esse usuário do XBOX Live, como gamertag, imagem do jogador, estado de entrada, faixa etária e privilégios.

Depois que o usuário entrar pela primeira vez, ele deverá conseguir entrar silenciosamente com êxito (ou seja, sem nenhuma ação de sua parte) se não precisar resolver uma solicitação de interface do usuário (como um novo contrato de privacidade) desde a última vez que iniciou o jogo. No entanto, você ainda precisará fazer essas chamadas de API para obter acesso à identidade.

Um `XblContextHandle` será necessário para chamar as APIs do XBOX Live. Você pode usar a função [XblContextCreateHandle](/pt-BR/reference/live/xsapi-c/xbox_live_context_c/xbox_live_context_c_members) para obter um `XblContextHandle` usando um `XUserHandle`.


## Related topics

- [Visão geral do guia de portabilidade do Steam](/pt-BR/build/steam-porting-guide/overview.md)
- [Portar do Steam](/pt-BR/paths/porting/from-steam.md)
- [Diferenças conceituais entre o GDK e o Steamworks](/pt-BR/build/steam-porting-guide/conceptual-differences.md)
- [Wrappers de API C# do Unity para o GDK](/pt-BR/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [Linguagens compatíveis com o PlayFab](/pt-BR/services/playfab/sdks/languages/index.md)
