> ## 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 éventuellement appeler `SteamAPI_RestartAppIfNecessary` pour relancer l'application via Steam si nécessaire. L'initialisation du Microsoft Game Development Kit (GDK) XBOX 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 Microsoft Game Development Kit (GDK) XBOX, vous devez suivre les étapes ci-dessous.

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 dans le cloud, les succès, etc.
4. Connectez l'utilisateur à XBOX Live. Stockez le handle et l'ID d'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 du compte de l'utilisateur lorsque des jeux sont lancés depuis son service. Les API XBOX Live sont utilisées par des jeux sur plusieurs lanceurs : vous ne bénéficiez donc pas de ce comportement 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/build/core-features/common/game-config/MicrosoftGameConfig-Overview).

Vous trouverez des informations sur la façon d'effectuer les étapes 2 à 4 dans [Prise en main des API XBOX Live](/fr/services/xbox-services/index) (ou résumées ci-dessous), en veillant également à implémenter 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 automatiquement créé pour vous si vous laissez ce paramètre 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/build/core-features/common/user/xuser_howto_best_practice_signing_in) pour connecter un utilisateur à XBOX Live. S'il se connecte à votre jeu pour la première fois, une liste des privilèges demandés par votre jeu lui est présentée. Il devra autoriser explicitement ces privilèges pour 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/reference/system/xuser/xuser_members). Elle permet d'obtenir des informations sur cet utilisateur XBOX Live, telles que son gamertag, son image de joueur, son état de connexion, sa tranche 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 besoin de répondre à une invite de l'interface utilisateur (comme un nouvel accord de confidentialité) depuis le dernier lancement du jeu. Vous devrez toutefois effectuer ces appels d'API pour obtenir l'accès à l'identité.

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


## Related topics

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