> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Démarrage rapide de PlayFab Online Subsystem (OSS)

> Démarrage rapide de PlayFab Online Subsystem dans Unreal Engine, couvrant la configuration du chat vocal Party, des lobbies et du matchmaking avec le SDK Multiplayer.

# Démarrage rapide : PlayFab Online Subsystem

Cet article vous aide à configurer et à utiliser les fonctionnalités PlayFab Multiplayer telles que Lobby, Matchmaking et Party pour les jeux créés avec Unreal Engine 4 ou Unreal Engine 5. Pour obtenir la liste complète des plateformes et versions prises en charge dans Unreal Engine 4 ou Unreal Engine 5, consultez [Plateformes prises en charge](https://docs.xbox.com/fr/services/playfab/multiplayer/networking/party-unreal-engine-oss-overview.md).

Après avoir suivi les étapes pertinentes décrites sur cette page pour vos plateformes cibles, vous serez prêt à utiliser PlayFab Online Subsystem (PF OSS). L'authentification, la mise en réseau, la VOIP, le regroupement dans des lobbies et le matchmaking sont gérés pour vous, sans qu'aucune autre modification ne soit nécessaire.

## Télécharger et installer PlayFab Online Subsystem

Accédez à [PlayFab Online Subsystem](https://github.com/PlayFab/PlayFabMultiplayerUnreal) pour télécharger ou cloner la source de PF OSS. Le dépôt téléchargé ou cloné s'appelle PlayFabMultiplayerUnreal. Il doit être renommé en OnlineSubsystemPlayFab.

## Ce dont vous avez besoin

* **TitleID PlayFab :** si vous n'avez pas de TitleID configuré pour les kits de développement logiciel (SDK) PlayFab Party et Multiplayer, consultez [Activation de PlayFab Party](https://docs.xbox.com/fr/services/playfab/multiplayer/networking/enable-party.md).

### Microsoft Game Development Kit (GDK), PC, Switch, PlayStation®5 et PlayStation®4

* **Bibliothèques PlayFab Party, Lobby et Matchmaking propres à la plateforme :** consultez [Obtention des bibliothèques PlayFab Party et Multiplayer](https://docs.xbox.com/fr/services/playfab/multiplayer/networking/party-unreal-engine-oss-obtaining-playfab-party-libraries.md).

## Configuration initiale

### Base de code d'Unreal Engine

* Copiez le dossier OnlineSubsystemPlayFab et son contenu dans votre répertoire Unreal Engine, sous **Engine\Plugins\Online**.
* Exécutez `GenerateProjectFiles.bat` pour créer les fichiers de projet du moteur.
* Chargez le projet dans Visual Studio en sélectionnant le nouveau fichier `UE5.sln`.
* Définissez la configuration de votre solution sur **Development Editor** et la plateforme de votre solution sur **Win64**. Sélectionnez la cible **Unreal Engine 5**, puis sélectionnez **Build**.

### Base de code du jeu

* Pour ajouter OnlineSubsystemPlayFab à votre liste de plug-ins, appliquez les modifications suivantes à la section Plugins du fichier de projet.
  * Supprimez toutes les plateformes sur lesquelles vous ne publiez pas
  * Utilisez XboxOneGDK au lieu de XB1 si vous utilisez Unreal Engine 4. Unreal Engine 5 déprécie XboxOneGDK

```json theme={null}
{
    "Name": "OnlineSubsystemPlayFab",
    "Enabled": true,
    "PlatformAllowList": [
    "XB1",
    "WinGDK",
    "XSX",
    "Win64",
    "Switch",
    "PS4",
    "PS5"
    ],
    "SupportedTargetPlatforms": [
    "XB1",
    "WinGDK",
    "XSX",
    "Win64",
    "Switch",
    "PS4",
    "PS5"
    ]
}
```

* Générez le fichier de solution du jeu en sélectionnant le fichier `{ProjectName}.uproject`, puis sélectionnez **Switch Unreal Engine Version** pour pointer vers le chemin du code d'Unreal Engine.

## Configuration du jeu

* Quelle que soit la plateforme ciblée, votre jeu doit configurer certaines valeurs propres à PlayFab dans le fichier INI de la plateforme cible prévue (situé dans \[yourGameDirectory]/Platforms/\[yourPlatform]/Config).
  * **XBOX Series X GDK :** XSXEngine.ini
  * **PC GDK :** WinGDKEngine.ini
  * **XBOX One GDK :** XB1Engine.ini (ou XboxOneGDKEngine.ini si vous utilisez Unreal Engine 4)
  * **PC Steam :** WindowsEngine.ini (ou dans \[yourGameDirectory]/Config/Windows)
  * **Nintendo Switch** SwitchEngine.ini
  * **PS4™** PS4Engine.ini
  * **PS5™** PS5Engine.ini
* Remplacez les sections INI de la configuration si elles existent déjà (par exemple, Engine.GameEngine) par celles présentées dans les sections suivantes.
* Veillez à remplacer tous les champs *\<REPLACE ME>* par vos données :
* Sur UE 5.6 et versions ultérieures, le paramètre `DriverClassName` nécessite le préfixe "/Script/". Par exemple, utilisez `"/Script/OnlineSubsystemPlayFab.PlayFabNetDriver"` au lieu de `"OnlineSubsystemPlayFab.PlayFabNetDriver"`.

```ini theme={null}
[OnlineSubsystemPlayFab]
bEnabled=true
PlayFabTitleID=<REPLACE ME with your PlayFab title ID>
MaxDeviceCount=<REPLACE ME with your max player count (note: split screen is still 1 device). In the example of an 8 player game, this would be 8.>
MaxDevicesPerUserCount=<REPLACE ME with your max player count per box (note: split screen is still 1 device) In the example of an 8 player game, this would be 1.>
MaxEndpointsPerDeviceCount=<REPLACE ME with your max player count per box (note: split screen is still 1 device)  In the example of an 8 player game, this would be 1.>
MaxUserCount=<REPLACE ME with your max player count (note: split screen is still 1 device)  In the example of an 8 player game, this would be 8.>
MaxUsersPerDeviceCount=<REPLACE ME with your max player count per box (note: split screen is still 1 device)  In the example of an 8 player game, this would be 1.>
DirectPeerConnectivityOptions=<REPLACE ME with your connectivity options, in the form of an array of strings. The default case corresponds to the following:
+DirectPeerConnectivityOptions=AnyPlatformType
+DirectPeerConnectivityOptions=AnyEntityLoginProvider.
If you want to disable P2P and use cloud relay instead, set DirectPeerConnectivityOptions=None>
bHasPlayFabVoiceEnabled=<REPLACE ME with true/false>

[/Script/OnlineSubsystemPlayFab.PlayFabNetDriver]
NetConnectionClassName="OnlineSubsystemPlayFab.PlayFabNetConnection"
ReplicationDriverClassName="<REPLACE ME with your existing replication driver class name>" . Skip if the game doesn't have a replication driver class (https://docs.unrealengine.com/5.2/en-US/replication-graph-in-unreal-engine/).
ConnectionTimeout=15.0
InitialConnectTimeout=30.0

[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemPlayFab.PlayFabNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
```

## Considérations propres à la plateforme

Une fois tout cela fait, nous avons presque terminé. Il ne reste que quelques paramètres clés propres à la plateforme à définir.

### GDK

Lorsque vous développez des jeux avec le GDK, configurez les services de plateforme.

```ini theme={null}
[OnlineSubsystem]
DefaultPlatformService=PlayFab
NativePlatformService=GDK
```

### Steam

Si vous développez des jeux pour Win64 avec Steam, définissez vos services de plateforme.

```ini theme={null}
[OnlineSubsystem]
DefaultPlatformService=PlayFab
NativePlatformService=Steam
```

### Switch

Pour plus d'informations sur Switch, consultez le fichier [ReadMe.md](https://dev.azure.com/PlayFabPrivate/Switch/_git/PlayFabMultiplayerUnrealSwitch?path=/README.md) fourni avec PlayFab OSS pour Switch. Si vous n'y avez pas accès, vous pouvez [demander l'accès](https://docs.xbox.com/fr/services/playfab/sdks/request-access-for-sdks-samples.md) à nos dépôts privés.

### PS5™ et PS4™

Pour plus d'informations sur PS5™ et PS4™, consultez le fichier [ReadMe.md](https://dev.azure.com/PlayFabPrivate/PS5/_git/PlayFabMultiplayerUnrealPlayStation?path=/README.md) fourni avec PlayFab OSS pour PS5™ et PS4™. Si vous n'y avez pas accès, vous pouvez [demander l'accès](https://docs.xbox.com/fr/services/playfab/sdks/request-access-for-sdks-samples.md) à nos dépôts privés.

### Multiplateforme

Si votre jeu utilise la prise en charge de la mise en réseau multiplateforme de PlayFab, définissez les plateformes autorisées à se connecter.

```ini theme={null}
[/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl]
!CompatibleUniqueNetIdTypes=ClearArray
+CompatibleUniqueNetIdTypes=STEAM
+CompatibleUniqueNetIdTypes=GDK
+CompatibleUniqueNetIdTypes=SWITCH
+CompatibleUniqueNetIdTypes=PS4
+CompatibleUniqueNetIdTypes=PS5
```

Toutes les plateformes autorisent la VoIP par défaut. Pour désactiver la VoIP sur une plateforme spécifique, ajoutez le nom du modèle de plateforme à votre fichier de configuration Unreal Engine, comme indiqué dans l'exemple suivant.

```ini theme={null}
[OnlineSubsystemPlayFabVoiceChatDisabledPlatforms]
!Platforms=ClearArray
+Platforms=WIN64
+Platforms=STEAM
+Platforms=SWITCH
+Platforms=PS4
+Platforms=PS5
```

Ces étapes terminent la configuration de l'OSS nécessaire à son utilisation dans votre jeu.

## Utilisation dans le code du jeu

> [!NOTE]
>
> PlayFab Online Subsystem ne prend en charge que le nommage de session de jeu `NAME_GameSession`

Comme pour les autres plug-ins Online Subsystem :

Ajoutez `PublicDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "OnlineSubsystemUtils" });` dans Game.Build.cs, puis utilisez-le de la même manière que les autres plug-ins de jeu.

Exemple de code dans GameSession.cpp :

```cpp theme={null}
#include "OnlineSubsystem.h"
#include "OnlineSubsystemUtils.h"

...

bool Game::JoinSession(const FUniqueNetIdPtr UserId, FName SessionName, const FOnlineSessionSearchResult& SearchResult)
{

    IOnlineSubsystem* OnlineSub = Online::GetSubsystem(GetWorld()); // Using OnlineSubsystemPlayFab plugin
    if (OnlineSub)
    {
        IOnlineSessionPtr Sessions = OnlineSub->GetSessionInterface(); // Using OnlineSessionInterfacePlayFab.h
        if (Sessions.IsValid() && UserId.IsValid())
        {
            // ...
        }
    }
    // ...
}
```

Exemple de code dans GameFriends.cpp :

```cpp theme={null}
#include "OnlineSubsystem.h"
#include "OnlineSubsystemUtils.h"

...

void Game::ViewFriendProfile()
{
    IOnlineSubsystem* OnlineSub = Online::GetSubsystem(GetWorld()); // Using OnlineSubsystemPlayFab plugin
    if (OnlineSub)
    {
        IOnlineIdentityPtr Identity = OnlineSub->GetIdentityInterface(); // Using OnlineIdentityInterfacePlayFab.h
        if (Identity.IsValid() && Friends.IsValidIndex(FriendIndex))
        {
            // ....
        }
    }
}
```

## Résolution des problèmes

Moyens de vous aider à résoudre les problèmes.

### Builds installés d'Unreal Engine

Les utilisateurs peuvent rencontrer des problèmes lorsqu'ils tentent de créer un build installé d'Unreal Engine avec OnlineSubsystemPlayFab sur les variantes de build GDK. Nous fournissons les conseils suivants pour surmonter ce problème en attendant une solution plus complète.

**Si vous utilisez Unreal Engine 5.4, 5.5, 5.6 ou 5.7 :**

* Vous pouvez rencontrer l'erreur d'exécution suivante : `Runtime dependency Party.dll is configured to be staged from C:\Program Files (x86)\Microsoft GDK\<version>\Party.dll and Engine\Plugins\Online\OnlineSubsystemPlayFab\Platforms\GDK\Redist\Party.dll`
* Accédez à Engine\Platforms\GDK\Plugins\Online\OnlineSubsystemGDK\\
* Ouvrez OnlineSubsystemGDK.uplugin et désactivez `PlayFabParty` :

```json theme={null}
{
    "Name": "PlayFabParty",
    "Enabled": false
}
```

* Accédez à Engine\Platforms\GDK\Plugins\Online\OnlineSubsystemGDK\Source\\
* Ouvrez OnlineSubsystemGDK.Build.cs et commentez l'inclusion de `PlayFabParty` :

```csharp theme={null}
if (Target.bCompileAgainstEngine)
{
    //PublicDependencyModuleNames.Add("PlayFabParty");
}
```

**Si vous utilisez Unreal Engine 5.0 à 5.3 :**

* Recherchez le répertoire où Unreal Engine est installé sur la machine.
* Accédez à Engine\Platforms\GDK\Plugins\Online\PlayFabParty
* Ouvrez PlayFabParty.uplugin et mettez à jour la configuration Modules avec **PlatformDenyList** :

```ini theme={null}
"Modules": [
        {
            "Name": "PlayFabParty",
            "Type": "Runtime",
            "LoadingPhase": "Default",
            "HasExplicitPlatforms": true,
            "PlatformDenyList": [ "WinGDK", "Win64" ]
        }
    ],
```

* Répétez ce processus pour XB1 (PlayFabParty\_XB1.uplugin) et XSX (PlayFabParty\_XSX.uplugin) si ces plateformes sont requises pour le build installé. Si Win64 est également une plateforme requise pour le build installé, ajoutez Win64 au tableau **PlatformDenyList**.

**Si vous utilisez Unreal Engine 4.27+ :**

* Recherchez le répertoire où Unreal Engine est installé sur la machine.
* Accédez à Engine\Platforms\GDK\Plugins\Online\PlayFabParty
* Ouvrez PlayFabParty.uplugin
* Remplacez la clé **WhitelistPlatforms** par **BlacklistPlatforms**
* Répétez le processus pour XboxOneGDK (PlayFabParty\_XboxOneGDK.uplugin) et XSX (PlayFabParty\_XSX.uplugin) si ces plateformes sont requises pour le build installé. Si Win64 est également une plateforme requise pour le build installé, ajoutez Win64 au tableau **BlacklistPlatforms**.

Exemple de configuration Modules dans PlayFabParty.uplugin pour Unreal Engine 4.27+ :

```ini theme={null}
"Modules": [
       {
            "Name": "PlayFabParty",
            "Type": "Runtime",
            "LoadingPhase": "Default",
            "BlacklistPlatforms": ["WinGDK", "Win64"]
        }
    ],
```

### Échec de l'établissement de liaison sur Steam

Si vous constatez un échec de l'établissement de liaison (par exemple `LogHandshake: IncomingConnectionless: Error reading handshake packet`), consultez ce [message du forum Unreal Engine](https://forums.unrealengine.com/t/ue-5-1-steam-sockets-problem/696726) pour vérifier les paramètres.

## Flux de travail d'OnlineSubsystemPlayFab

Les étapes décrites dans la section [Considérations propres à la plateforme](#platform-specific-considerations) vous demandent d'inclure :

```ini theme={null}
[OnlineSubsystem]
DefaultPlatformService=PlayFab
```

Le module OnlineSubsystemModule d'Unreal Engine crée une instance de sous-système en ligne pour PlayFab et commence à créer ⁠le PlayFabSingleton. À ce stade, le SDK est initialisé dans⁠ `FOnlineSubsystemPlayFab::Init()`,
qui initialise les SDK Party et Multiplayer avec le TitleID PlayFab (ce titleID est défini dans le fichier de [configuration du jeu](#game-configuration)). Pendant l'initialisation, nous appelons `⁠CreatePlayFabSocketSubsystem()` pour en faire le sous-système en ligne principal.

Flux de travail du SDK Multiplayer : `FOnlineSubsystemPlayFab::Init()` initialise le singleton du SDK multijoueur `InitializeMultiplayer()` pour votre titre. Dans `PlayFabLobby.cpp`, `FPlayFabLobby::DoWork()` traite les
changements d'état déclenchés par les API Multiplayer (consultez `Platforms/GDK/Include/PFLobby.h` pour les API).

Flux de travail du SDK Party : `FOnlineSubsystemPlayFab::Init()` initialise le singleton du SDK multijoueur `InitializeParty()` pour votre titre. Dans `OnlineSubsystemPlayFab.cpp`, `FOnlineSubsystemPlayFab::DoWork()` traite les
changements d'état déclenchés par les API Party (consultez `Platforms/GDK/Include/Party.h` pour les API).

« PlayStation » est une marque déposée ou une marque commerciale de Sony Interactive Entertainment Inc.

« PS4 » est une marque déposée ou une marque commerciale de Sony Interactive Entertainment Inc.

« PS5 » est une marque déposée ou une marque commerciale de Sony Interactive Entertainment Inc.


## Related topics

- [Notes de publication de PlayFab OnlineSubsystem pour Unreal Engine 4 et 5](https://docs.xbox.com/fr/services/playfab/multiplayer/networking/unreal-release-notes.md)
- [Configuration de serveurs dédiés avec PlayFab Online Subsystem (OSS)](https://docs.xbox.com/fr/services/playfab/multiplayer/networking/party-unreal-engine-oss-dedicated-servers.md)
- [PlayFab Online Subsystem (OSS)](https://docs.xbox.com/fr/services/playfab/multiplayer/networking/party-unreal-engine-oss-overview.md)
- [Guide d'intégration du plug-in PlayFab SDK de la Marketplace Unreal Engine](https://docs.xbox.com/fr/services/playfab/multiplayer/networking/party-unreal-engine-oss-playfab-plugin-integration.md)
- [Vue d'ensemble de PlayFab pour Unreal Engine](https://docs.xbox.com/fr/services/playfab/sdks/unified-unreal/overview.md)
