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

# Services facultatifs

> Intégrez des services XBOX et PlayFab facultatifs (connexion XUser, succès, XGameSave, fonctionnalités sociales, multijoueur et commerce XStore) dans votre titre PC GDK.

Une fois votre titre PC GDK fonctionnel, intégrez des services XBOX facultatifs et des fonctionnalités Microsoft Azure PlayFab selon les besoins de votre conception. Aucun d'entre eux n'est requis pour publier sur le Microsoft Store : choisissez ceux qui conviennent à votre titre.

## Ordre d'adoption suggéré

1. **Connexion et identité** : [XUser](/fr/build/core-features/common/user/gamecore-user-models) et [connexion PlayFab](/fr/services/playfab/identity/player-identity/login).
2. **Succès et statistiques** : [Succès XSAPI](/fr/services/xbox-services/player-data/achievements/index) et [Statistiques des joueurs](#player-stats).
3. **Sauvegardes dans le cloud** : [XGameSave](/fr/build/core-features/common/game-save/game-saves-overview).
4. **Fonctionnalités sociales** : [amis et joueurs récents](/fr/services/xbox-services/community/social-manager/live-social-manager-overview) et [Rich Presence](#rich-presence).
5. **Multijoueur** : [Salons](#lobbies), [Matchmaking](#matchmaking), [Multijoueur](#multiplayer), [Invitations](#invites) et [Conversation](#chat).
6. **Commerce** : [XStore](/fr/publishing/xstore-commerce/xstore-overview), [Achats dans le jeu](#in-game-purchases) et [DLC](/fr/publishing/game-publishing/concepts/add-ons).
7. **Intégrations côté serveur** : [Authentification S2S](#s2s-authentication), [Contenu généré par les utilisateurs](#user-generated-content) et [Live ops](/fr/services/playfab/live-service-management).

## Rubriques sur les services facultatifs

Chaque ligne ci-dessous correspond à une rubrique traitée dans le guide PC E2E d'origine. Les instructions d'intégration détaillées se trouvent dans la documentation des fonctionnalités liée.

| Rubrique | SDK recommandé | Emplacement |
| - | - | - |
| [Conversation](#chat) | PlayFab Party | [Conversation PlayFab Party](/fr/services/playfab/multiplayer/networking) |
| [Achats dans le jeu](#in-game-purchases) | XStore (GDK) | [Présentation approfondie de XStore](/fr/publishing/xstore-commerce/xstore-overview) |
| [Invitations](#invites) | PlayFab Lobby + invitations XBOX | [PlayFab Lobby](/fr/services/playfab/multiplayer/lobby) |
| [Classements](#leaderboards) | Classements gérés par le titre XSAPI | [Classements](/fr/services/xbox-services/player-data/stats-leaderboards/index) |
| [Salons](#lobbies) | PlayFab Lobby | [PlayFab Lobby](/fr/services/playfab/multiplayer/lobby) |
| [Matchmaking](#matchmaking) | PlayFab Matchmaking / SmartMatch | [PlayFab Matchmaking](/fr/services/playfab/multiplayer/lobby) |
| [Multijoueur](#multiplayer) | MPSD + MPM, PlayFab Multiplayer | [Multijoueur](/fr/services/xbox-services/multiplayer/index) |
| [Mise en réseau](#networking) | Mise en réseau PlayFab Party | [Mise en réseau PlayFab](/fr/services/playfab/multiplayer/networking) |
| [Statistiques des joueurs](#player-stats) | XSAPI Stats Manager | [Statistiques](/fr/services/xbox-services/player-data/stats-leaderboards/index) |
| [Rich Presence](#rich-presence) | XSAPI Presence | [Rich Presence](/fr/services/xbox-services/community/presence/live-presence-overview) |
| [Authentification S2S](#s2s-authentication) | Entra ID + User Store IDs | [Authentification de service à service](https://learn.microsoft.com/en-us/store/commerce/service-to-service) |
| [Contenu généré par les utilisateurs](#user-generated-content) | PlayFab Economy v2 | [UGC PlayFab](/fr/services/playfab/economy-monetization/index) |

## Conversation

Utilisez **PlayFab Party** pour la conversation vocale et textuelle synchrone sur PC et XBOX. Étapes clés :

1. Configurez le [SDK PlayFab Party](/fr/services/playfab/multiplayer/networking).
2. Authentifiez le joueur auprès des services XBOX et de PlayFab.
3. Créez un réseau Party ou rejoignez-en un avec `PartyManager::CreateNewNetwork()`.
4. Créez un `PartyLocalChatControl` par utilisateur local et connectez-le avec `PartyNetwork::ConnectChatControl()`.
5. Choisissez les périphériques d'entrée/sortie audio via `PartyLocalChatControl::SetAudioInput/Output` et un `PartyAudioDeviceSelectionType`.
6. Configurez les autorisations de conversation et l'état de désactivation du son entre les paires de contrôles de conversation.
7. Ajoutez la conversation textuelle via `SendText`, éventuellement avec traduction via `SetTextChatOptions`.
8. Ajoutez des fonctionnalités d'accessibilité : transcription de la parole en texte et synthèse vocale via Azure Speech Services.
9. Activez la suppression du bruit sur l'audio capturé par le microphone.

Si vous publiez également sur XBOX, utilisez la [Party XBOX Live Helper Library](/fr/services/playfab/multiplayer/networking) pour satisfaire aux exigences des services XBOX.

## Achats dans le jeu

Utilisez **XStore** (via `XGameRuntime.h`) pour les parcours d'achat dans le jeu sur le Microsoft Store :

* Interrogez le catalogue du Store, les produits associés (extensions, consommables, biens durables) et la collection de droits de l'utilisateur.
* Affichez l'interface utilisateur d'achat via `XStoreShowPurchaseUIAsync`.
* Consommez les consommables via `XStoreReportConsumableFulfillmentAsync`.
* Actualisez les licences avec `XStoreQueryProductForCurrentSkuAsync` après des changements de droits.

Pour les économies virtuelles gérées par PlayFab (monnaies, inventaire, lots), associez les achats XStore à PlayFab Economy v2.

## Invitations

Utilisez **PlayFab Lobby** pour les invitations et les participations entre PC et XBOX :

1. Intégrez le [SDK PlayFab Lobby & Matchmaking](/fr/services/playfab/multiplayer/lobby).
2. Authentifiez-vous auprès des services XBOX et de PlayFab.
3. Choisissez la propriété du salon : détenu par un joueur (`PFMultiplayerCreateAndJoinLobby`), détenu par un serveur (`PFMultiplayerCreateAndClaimServerLobby`) ou créé par le matchmaking.
4. Écoutez les invitations via `PFMultiplayerStartListeningForLobbyInvites`.
5. Envoyez les invitations via l'interface utilisateur d'invitation de la plateforme afin que le destinataire reçoive une notification native XBOX/Store.

Le salon sert également de session de jeu que les joueurs rejoignent après avoir accepté une invitation.

## Classements

Utilisez les **classements gérés par le titre XSAPI** pour les classements sociaux et globaux des services XBOX :

1. Définissez les classements dans Partner Center sous **XBOX services → Player data**.
2. Émettez des événements de statistiques liés au classement à l'aide du Stats Manager.
3. Interrogez les classements via `XblLeaderboardGetLeaderboardAsync` (global) ou `XblLeaderboardGetLeaderboardForSocialGroupAsync` (amis).

Consultez [Classements](/fr/services/xbox-services/player-data/stats-leaderboards/index).

## Salons

Utilisez **PlayFab Lobby** pour l'état de session partagé (liste des membres, propriétés arbitraires, propriété) :

* Créez, rejoignez, recherchez et quittez des salons avec le SDK C PlayFab Multiplayer.
* Stockez les métadonnées de gameplay sous forme de propriétés du salon (mode de jeu, carte, état prêt).
* Combinez-le avec PlayFab Matchmaking pour former des salons à partir d'un groupe apparié.
* Combinez-le avec PlayFab Party pour ajouter la mise en réseau et la voix en plus de l'appartenance au salon.

## Matchmaking

Utilisez **PlayFab Matchmaking** pour un matchmaking basé sur les compétences ou les attributs qui produit un salon partagé :

* Définissez les files d'attente de matchmaking dans PlayFab Game Manager avec des règles portant sur les attributs des joueurs.
* Soumettez des tickets via `PFMatchmakingCreateMatchmakingTicket`.
* Lorsqu'une correspondance est trouvée, les joueurs sont placés dans un salon partagé dont vous êtes propriétaire.

Pour les titres exclusivement XBOX Live, SmartMatch via MPSD est également pris en charge, mais PlayFab Matchmaking est la voie recommandée pour les nouveaux titres.

## Multijoueur

Deux piles multijoueur sont prises en charge sur PC et XBOX :

* **PlayFab Multiplayer** : multiplateforme, utilise PlayFab Lobby pour les sessions et PlayFab Party pour le transport. Recommandé pour les nouveaux titres.
* **Multijoueur des services XBOX** : sessions MPSD + Multiplayer Manager (MPM). Toujours pris en charge pour les titres exclusivement XBOX.

Les deux approches sont décrites dans la [vue d'ensemble du multijoueur](/fr/services/xbox-services/multiplayer/index).

## Mise en réseau

Utilisez **PlayFab Party** comme transport réseau pour le trafic de gameplay en temps réel :

* Envoyez des messages fiables/non fiables entre les points de terminaison connectés.
* Superposez la voix, le texte et les données de gameplay sur le même réseau Party.
* Sur XBOX, Party s'intègre automatiquement au chemin réseau de la plateforme ; sur PC, il utilise UDP avec un mécanisme de repli.

## Statistiques des joueurs

Utilisez le **XSAPI Stats Manager** pour les statistiques des joueurs gérées par le titre :

1. Définissez les statistiques dans Partner Center sous **XBOX services → Player data**.
2. Ajoutez la statistique au joueur avec `XblStatsManagerSetStatAsNumber` / `SetStatAsString`.
3. Incrémentez ou remplacez les statistiques en fonction du gameplay.
4. Videz les mises à jour en attente avec `XblStatsManagerDoWork` à chaque image.

Les statistiques alimentent les classements et s'affichent sur le profil du joueur.

## Rich Presence

Utilisez **XSAPI Presence** pour diffuser ce que fait le joueur :

1. Définissez les énumérations de présence et les ensembles de chaînes dans Partner Center.
2. Mettez à jour la présence avec `XblPresenceSetPresenceAsync` lorsque le joueur passe à un nouvel état (menu, niveau, partie).
3. Interrogez les autres joueurs avec `XblPresenceGetPresenceAsync` ou `XblPresenceGetPresenceForMultipleUsersAsync`.

Consultez [Rich Presence](/fr/services/xbox-services/community/presence/live-presence-overview).

## Authentification S2S

Utilisez **Microsoft Entra ID + User Store IDs** pour l'authentification de service à service lorsque votre back-end doit appeler les API du Microsoft Store pour le compte d'un joueur :

* Deux types de User Store ID :
  * `UserCollectionsID` : s'authentifie auprès du service **Collections** du Microsoft Store (inventaire des droits).
  * `UserPurchaseID` : s'authentifie auprès du service **Purchase** du Microsoft Store (vérification des transactions).
* Votre service obtient un jeton d'accès Entra ID et l'utilise, avec le User Store ID fourni par le client du jeu, pour appeler les API REST du Store.
* Recommandé pour les nouveaux titres ; l'authentification basée sur les jetons X est héritée.

## Contenu généré par les utilisateurs

Utilisez **PlayFab Economy v2** pour les catalogues d'UGC reposant sur un pipeline de ressources interne ou tiers :

1. Authentifiez le joueur auprès de PlayFab.
2. Générez des URL de chargement signées avec `CreateUploadUrls`.
3. Créez un élément brouillon avec `CreateDraftItem` (`Type:ugc`).
4. Énumérez les éléments brouillons via `GetEntityDraftItems`.
5. Publiez avec `PublishDraftItem` : les éléments publiés apparaissent dans le catalogue public.
6. Vérifiez l'état avec `GetItemPublishStatus`.
7. Interrogez le catalogue avec `SearchItems` (OData `Filter`, `OrderBy`, `Select`).

La révision/modération facultative est assurée par les Catalog Reviewers dans PlayFab Game Manager.

## Ressources connexes

* [Vue d'ensemble de bout en bout pour PC](/fr/build/gdk-and-engines/overview)
* [Vue d'ensemble des services XBOX](/fr/services/xbox-services/index)
* [Vue d'ensemble de PlayFab](/fr/services/playfab/get-started)

## Documentation des API associées

* [Vue d'ensemble de XSAPI](/fr/reference/live/xsapi-c/atoc-xsapi-c) : identité, présence, fonctionnalités sociales, succès, classements
* [Référence de l'API XStore](/fr/reference/system/xstore/xstore_members) : commerce du Microsoft Store
* [Vue d'ensemble de PlayFab](/fr/services/playfab/get-started/index) : surface REST + SDK de PlayFab


## Related topics

- [PFMultiplayerServerRequestPartyServiceResponse](/fr/services/playfab/api-references/c/pfmultiplayerservertypes/structs/pfmultiplayerserverrequestpartyserviceresponse.md)
- [Notifications push pour Android](/fr/services/playfab/live-service-management/game-configuration/title-communications/push-notifications/push-notifications-for-android.md)
- [PFInventoryRedeemPlayStationStoreInventoryItemsRequest](/fr/services/playfab/api-references/c/pfinventorytypes/structs/pfinventoryredeemplaystationstoreinventoryitemsrequest.md)
- [Notes de publication PlayFab 2015](/fr/services/playfab/release-notes/2015.md)
- [PFAccountManagementNintendoServiceAccountPlayFabIdPair](/fr/services/playfab/api-references/c/pfaccountmanagementtypes/structs/pfaccountmanagementnintendoserviceaccountplayfabidpair.md)
