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

# Inicialización del GDK

> Configure MicrosoftGame.config, inicialice Gaming Runtime y XSAPI, e inicie la sesión del usuario en XBOX Live al migrar un título de Steamworks al GDK.

Para empezar a usar Steamworks después de agregarlo al proyecto de su juego, debe llamar a la función `SteamAPI_Init` para inicializar la API. Opcionalmente, puede llamar a `SteamAPI_RestartAppIfNecessary` para reiniciar la aplicación a través de Steam si es necesario. La inicialización del Kit de desarrollo de juegos de XBOX (GDK) es un poco más compleja, porque no existe una aplicación unificada que se use para iniciar el juego y comunicarse con los distintos servicios de juegos como ocurre en Steam.

Para empezar a usar las API del Kit de desarrollo de juegos de XBOX (GDK), debe seguir estos pasos.

1. Agregue un archivo *MicrosoftGame.config* a su proyecto.
2. Inicialice el servicio Gaming Runtime.
3. Inicialice la API de servicios de XBOX para realizar llamadas a XBOX Live para la identidad del usuario, los guardados en la nube, los logros y mucho más.
4. Inicie la sesión del usuario en XBOX Live. Almacene el identificador y el identificador de usuario de XBOX (XUID) que se devolvió después de un inicio de sesión correcto para usarlo en el futuro.

<Note>
  En Steam, tiene acceso al identificador de Steam del usuario y a todas las API en el momento de la carga, porque el iniciador de Steam inserta automáticamente la información de la cuenta del usuario cuando los juegos se inician desde su servicio. Las API de XBOX Live las usan juegos en varios iniciadores, por lo que no obtiene esto de forma gratuita. Debe iniciar manualmente la sesión del usuario en el inicio.
</Note>

Para obtener información sobre cómo realizar el paso 1, consulte [Información general de MicrosoftGame.config](/build/core-features/common/game-config/MicrosoftGameConfig-Overview).

Puede encontrar información sobre cómo realizar los pasos 2 a 4 en [Introducción a las API de XBOX Live](/services/xbox-services/index) (o resumida a continuación), asegurándose de implementar también el comportamiento que se describe en la sección Limpieza de XSAPI de ese tema. Una vez inicializados Gaming Runtime y la API de servicios de XBOX, puede iniciar la sesión del usuario en XBOX Live. No necesita crear una `XTaskQueue`, porque se crea automáticamente si la deja en blanco.

```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.
    }
    // ...
}
```

## Inicio de sesión del usuario en XBOX Live

Use la [API XUserAddAsync](/build/core-features/common/user/xuser_howto_best_practice_signing_in) para iniciar la sesión de un usuario en XBOX Live. Si es la primera vez que inicia sesión en su juego, se le muestra una lista de los privilegios que solicita el juego. Deberá autorizar explícitamente estos privilegios para acceder a su cuenta de XBOX Live.

Una vez que hayan iniciado sesión correctamente, puede usar la referencia `XUserHandle` que pasó a la función [`XUserAddResult`](/reference/system/xuser/xuser_members). Puede usarse para obtener información sobre ese usuario de XBOX Live, como su gamertag, su foto de jugador, el estado de inicio de sesión, el grupo de edad y los privilegios.

Después de que el usuario inicie sesión por primera vez, debería poder iniciar sesión correctamente de forma silenciosa (es decir, sin que se requiera ninguna acción por su parte) si no necesita resolver un aviso de la interfaz de usuario (como un nuevo acuerdo de privacidad) desde la última vez que inició el juego. Sin embargo, seguirá teniendo que realizar estas llamadas API para obtener acceso a la identidad.

Se necesitará un `XblContextHandle` para llamar a las API de XBOX Live. Puede usar la función [XblContextCreateHandle](/reference/live/xsapi-c/xbox_live_context_c/xbox_live_context_c_members) para obtener un `XblContextHandle` mediante un `XUserHandle`.


## Related topics

- [Información general de la guía de portabilidad de Steam](/es/build/steam-porting-guide/overview.md)
- [Portar desde Steam](/es/paths/porting/from-steam.md)
- [Diferencias conceptuales entre el GDK y Steamworks](/es/build/steam-porting-guide/conceptual-differences.md)
- [Detección del estado de inicialización de la red](/es/build/console-features/networking/initialization-connectivity-networking.md)
- [Inicio rápido del GDK](/es/services/playfab/sdks/c/quickstart-gdk.md)
