> ## 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) à votre titre GDK pour PC.

Une fois votre titre GDK pour PC fonctionnel, ajoutez des services XBOX facultatifs et des fonctionnalités Microsoft Azure PlayFab selon les besoins de votre conception. Aucun de ces éléments n'est requis pour publier dans le Microsoft Store; choisissez ce qui convient à votre titre.

## Ordre d'adoption suggéré

1. **Connexion et identité** : [XUser](/fr-CA/build/core-features/common/user/gamecore-user-models) et [connexion PlayFab](/fr-CA/services/playfab/identity/player-identity/login).
2. **Succès et statistiques** : [succès XSAPI](/fr-CA/services/xbox-services/player-data/achievements/index) et [statistiques des joueurs](#player-stats).
3. **Sauvegardes infonuagiques** : [XGameSave](/fr-CA/build/core-features/common/game-save/game-saves-overview).
4. **Fonctionnalités sociales** : [amis et joueurs récents](/fr-CA/services/xbox-services/community/social-manager/live-social-manager-overview) et [présence enrichie](#rich-presence).
5. **Multijoueur** : [salons](#lobbies), [mise en correspondance](#matchmaking), [multijoueur](#multiplayer), [invitations](#invites) et [clavardage](#chat).
6. **Commerce** : [XStore](/fr-CA/publishing/xstore-commerce/xstore-overview), [achats en jeu](#in-game-purchases) et [DLC](/fr-CA/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 [opérations en direct](/fr-CA/services/playfab/live-service-management).

## Rubriques sur les services facultatifs

Chaque ligne ci-dessous correspond à une rubrique traitée dans le guide de bout en bout pour PC source. Les directives d'intégration détaillées se trouvent dans la documentation des fonctionnalités liée.

| Rubrique | SDK recommandé | Emplacement |
| - | - | - |
| [Clavardage](#chat) | PlayFab Party | [Clavardage PlayFab Party](/fr-CA/services/playfab/multiplayer/networking) |
| [Achats en jeu](#in-game-purchases) | XStore (GDK) | [Présentation approfondie de XStore](/fr-CA/publishing/xstore-commerce/xstore-overview) |
| [Invitations](#invites) | PlayFab Lobby + invitations XBOX | [PlayFab Lobby](/fr-CA/services/playfab/multiplayer/lobby) |
| [Classements](#leaderboards) | Classements gérés par le titre XSAPI | [Classements](/fr-CA/services/xbox-services/player-data/stats-leaderboards/index) |
| [Salons](#lobbies) | PlayFab Lobby | [PlayFab Lobby](/fr-CA/services/playfab/multiplayer/lobby) |
| [Mise en correspondance](#matchmaking) | PlayFab Matchmaking / SmartMatch | [PlayFab Matchmaking](/fr-CA/services/playfab/multiplayer/lobby) |
| [Multijoueur](#multiplayer) | MPSD + MPM, PlayFab Multiplayer | [Multijoueur](/fr-CA/services/xbox-services/multiplayer/index) |
| [Réseautique](#networking) | Réseautique PlayFab Party | [Réseautique PlayFab](/fr-CA/services/playfab/multiplayer/networking) |
| [Statistiques des joueurs](#player-stats) | XSAPI Stats Manager | [Statistiques](/fr-CA/services/xbox-services/player-data/stats-leaderboards/index) |
| [Présence enrichie](#rich-presence) | XSAPI Presence | [Présence enrichie](/fr-CA/services/xbox-services/community/presence/live-presence-overview) |
| [Authentification S2S](#s2s-authentication) | Entra ID + ID User Store | [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 | [Contenu généré par les utilisateurs PlayFab](/fr-CA/services/playfab/economy-monetization/index) |

## Clavardage

Utilisez **PlayFab Party** pour le clavardage vocal et textuel synchrone sur PC et XBOX. Étapes clés :

1. Configurez le [SDK PlayFab Party](/fr-CA/services/playfab/multiplayer/networking).
2. Authentifiez le joueur auprès des services XBOX et de PlayFab.
3. Créez un réseau Party ou joignez-vous à un réseau existant 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 au moyen de `PartyLocalChatControl::SetAudioInput/Output` et d'un `PartyAudioDeviceSelectionType`.
6. Configurez les autorisations de clavardage et l'état de mise en sourdine entre les paires de contrôles de clavardage.
7. Ajoutez le clavardage textuel au moyen de `SendText`, éventuellement avec traduction au moyen de `SetTextChatOptions`.
8. Ajoutez des fonctionnalités d'accessibilité : transcription de la parole en texte et synthèse de texte en parole au moyen d'Azure Speech Services.
9. Activez la suppression du bruit sur l'audio capté par le microphone.

Si vous publiez également sur XBOX, utilisez la [bibliothèque d'assistance Party XBOX Live](/fr-CA/services/playfab/multiplayer/networking) pour satisfaire aux exigences des services XBOX.

## Achats en jeu

Utilisez **XStore** (au moyen de `XGameRuntime.h`) pour les parcours d'achat en jeu dans le Microsoft Store :

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

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

## Invitations

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

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

Le salon sert également de session de jeu à laquelle les joueurs se joignent après avoir accepté une invitation.

## Classements

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

1. Définissez les classements dans Partner Center sous **Services XBOX → Données des joueurs**.
2. Émettez des événements de statistiques liés au classement à l'aide du Stats Manager.
3. Interrogez les classements au moyen de `XblLeaderboardGetLeaderboardAsync` (mondial) ou de `XblLeaderboardGetLeaderboardForSocialGroupAsync` (amis).

Consultez [Classements](/fr-CA/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, joignez, trouvez et quittez des salons avec le SDK C PlayFab Multiplayer.
* Stockez les métadonnées de jeu sous forme de propriétés du salon (mode de jeu, carte, état prêt).
* Combinez avec PlayFab Matchmaking pour former des salons à partir d'un groupe mis en correspondance.
* Combinez avec PlayFab Party pour ajouter la réseautique et la voix en plus de l'appartenance au salon.

## Mise en correspondance

Utilisez **PlayFab Matchmaking** pour une mise en correspondance basée sur les compétences ou les attributs qui produit un salon partagé :

* Définissez des files d'attente de mise en correspondance dans le Game Manager de PlayFab avec des règles portant sur les attributs des joueurs.
* Soumettez des tickets au moyen de `PFMatchmakingCreateMatchmakingTicket`.
* Lorsqu'une correspondance est trouvée, les joueurs sont placés dans un salon partagé qui vous appartient.

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

## Multijoueur

Deux piles multijoueurs prises en charge sur PC/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 exclusifs à XBOX.

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

## Réseautique

Utilisez **PlayFab Party** comme transport réseau pour le trafic de jeu 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 jeu 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 une solution 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 **Services XBOX → Données des joueurs**.
2. Ajoutez la statistique au joueur avec `XblStatsManagerSetStatAsNumber` / `SetStatAsString`.
3. Incrémentez ou remplacez les statistiques en réponse au jeu.
4. Videz les mises à jour en attente avec `XblStatsManagerDoWork` à chaque image.

Les statistiques alimentent les classements et sont affichées dans le profil du joueur.

## Présence enrichie

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 [Présence enrichie](/fr-CA/services/xbox-services/community/presence/live-presence-overview).

## Authentification S2S

Utilisez **Microsoft Entra ID + ID User Store** pour l'authentification de service à service lorsque votre serveur principal doit appeler les API du Microsoft Store au nom d'un joueur :

* Deux types d'ID User Store :
  * `UserCollectionsID` : s'authentifie auprès du service **Collections** du Microsoft Store (inventaire des droits d'utilisation).
  * `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 l'ID User Store provenant du client du jeu, pour appeler les API REST du Store.
* Recommandé pour les nouveaux titres; l'authentification basée sur les jetons X est une méthode héritée.

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

Utilisez **PlayFab Economy v2** pour les catalogues de contenu généré par les utilisateurs, en complément d'un pipeline de ressources interne ou tiers :

1. Authentifiez le joueur auprès de PlayFab.
2. Générez des URL de téléversement signées avec `CreateUploadUrls`.
3. Créez un élément brouillon avec `CreateDraftItem` (`Type:ugc`).
4. Énumérez les éléments brouillons au moyen de `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`).

L'examen et la modération facultatifs sont assurés par les réviseurs de catalogue dans le Game Manager de PlayFab.

## Contenu connexe

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

## Documentation d'API connexe

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


## Related topics

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