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

# Initialisation du GDK

> Configurez MicrosoftGame.config, initialisez le Gaming Runtime et XSAPI, et connectez l'utilisateur à XBOX Live lors du portage d'un titre de Steamworks vers le GDK.

Pour commencer à utiliser Steamworks après l'avoir ajouté au projet de votre jeu, vous devez appeler la fonction `SteamAPI_Init` pour initialiser l'API. Vous pouvez aussi, de façon facultative, appeler `SteamAPI_RestartAppIfNecessary` pour relancer l'application par l'intermédiaire de Steam au besoin. L'initialisation du XBOX Game Development Kit (GDK) est un peu plus complexe, car il n'existe pas d'application unifiée servant à lancer le jeu et à communiquer avec les différents services de jeu comme c'est le cas sur Steam.

Pour commencer à utiliser les API du XBOX Game Development Kit (GDK), vous devez suivre les étapes suivantes.

1. Ajoutez un fichier *MicrosoftGame.config* à votre projet.
2. Initialisez le service Gaming Runtime.
3. Initialisez l'API XBOX Services pour effectuer des appels à XBOX Live concernant l'identité de l'utilisateur, les sauvegardes infonuagiques, les succès, et plus encore.
4. Connectez l'utilisateur à XBOX Live. Stockez le handle et l'ID utilisateur XBOX (XUID) renvoyés après une connexion réussie pour une utilisation ultérieure.

<Note>
  Sur Steam, vous avez accès au Steam ID de l'utilisateur et à toutes les API dès le chargement, car le lanceur Steam injecte automatiquement les informations de compte de l'utilisateur lorsque des jeux sont lancés à partir de son service. Les API XBOX Live sont utilisées par des jeux dans plusieurs lanceurs, vous n'obtenez donc pas cela automatiquement. Vous devez connecter manuellement l'utilisateur au lancement.
</Note>

Pour savoir comment effectuer l'étape 1, consultez [Vue d'ensemble de MicrosoftGame.config](/fr-CA/build/core-features/common/game-config/MicrosoftGameConfig-Overview).

Vous trouverez de l'information sur la façon d'effectuer les étapes 2 à 4 dans [Bien démarrer avec les API XBOX Live](/fr-CA/services/xbox-services/index) (ou en résumé ci-dessous), en veillant à implémenter également le comportement décrit dans la section Nettoyage de XSAPI de cette rubrique. Une fois le Gaming Runtime et l'API XBOX Services initialisés, vous pouvez connecter l'utilisateur à XBOX Live. Vous n'avez pas besoin de créer un `XTaskQueue`, car celui-ci est créé automatiquement si vous le laissez vide.

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

## Connecter l'utilisateur à XBOX Live

Utilisez l'[API XUserAddAsync](/fr-CA/build/core-features/common/user/xuser_howto_best_practice_signing_in) pour connecter un utilisateur à XBOX Live. S'il s'agit de sa première connexion à votre jeu, une liste des privilèges demandés par votre jeu lui est présentée. Il devra autoriser explicitement ces privilèges pour que le jeu puisse accéder à son compte XBOX Live.

Une fois l'utilisateur connecté, vous pouvez utiliser la référence `XUserHandle` que vous avez transmise à la fonction [`XUserAddResult`](/fr-CA/reference/system/xuser/xuser_members). Elle permet d'obtenir de l'information sur cet utilisateur XBOX Live, comme son gamertag, sa photo de joueur, son état de connexion, son groupe d'âge et ses privilèges.

Après sa première connexion, l'utilisateur devrait pouvoir se connecter silencieusement (c'est-à-dire sans aucune action de sa part) s'il n'a pas à répondre à une invite d'interface utilisateur (comme une nouvelle entente de confidentialité) depuis son dernier lancement du jeu. Cependant, vous devrez tout de même effectuer ces appels d'API pour obtenir l'accès à l'identité.

Un `XblContextHandle` sera nécessaire pour appeler les API XBOX Live. Vous pouvez utiliser la fonction [XblContextCreateHandle](/fr-CA/reference/live/xsapi-c/xbox_live_context_c/xbox_live_context_c_members) pour obtenir un `XblContextHandle` à l'aide d'un `XUserHandle`.


## Related topics

- [Vue d'ensemble du guide de portage Steam](/fr-CA/build/steam-porting-guide/overview.md)
- [Porter depuis Steam](/fr-CA/paths/porting/from-steam.md)
- [Détection de l'état d'initialisation du réseau](/fr-CA/build/console-features/networking/initialization-connectivity-networking.md)
- [Différences des requêtes web entre GDK et XDK](/fr-CA/build/console-features/networking/xdk-migration/xdk-migration-web-requests-networking.md)
- [Communication en maillage de jeu : différences entre GDK et XDK](/fr-CA/build/console-features/networking/xdk-migration/xdk-migration-game-mesh-networking.md)
