Ajouter le GSDK au projet
Cet article explique comment mettre à niveau un projet existant afin qu’il puisse être hébergé sur PlayFab Multiplayer Servers (MPS). Le processus consiste à ajouter et à configurer le PlayFab GSDK dans un projet Unreal. Les instructions présentées ici utilisent le projet modèle Unreal ThirdPersonMP. Notez que votre projet Unreal doit disposer des fonctionnalités suivantes :- Mise en réseau
- Multijoueur
- Serveur de jeu dédié
Objectifs
Nous allons ajouter et configurer le GSDK Unreal PlayFab dans votre projet, puis le tester localement pour vérifier qu’il devrait fonctionner sur PlayFab Multiplayer Services.Exigences
- Téléchargez Visual Studio. La version Community est gratuite.
- Charges de travail requises : Développement .NET Desktop et Développement Desktop en C++
- Téléchargez le code source d’Unreal Engine. Pour obtenir des instructions, consultez Downloading Unreal Engine Source code (externe).
- Un exemple de projet ThirdPersonMP finalisé, ou un projet doté de fonctionnalités similaires
- Le plug-in PlayFab Unreal GSDK
- [Facultatif] Le plug-in PlayFab de la Marketplace ou la version source sur GitHub. Ce plug-in n’est pas requis pour le GSDK, mais il est nécessaire pour de nombreux services PlayFab, dont la connexion.
Implémentation C++
Ajouter le plug-in au projet
Suivez ces étapes pour ajouter le GSDK Unreal à votre projet :- Accédez à votre projet Unreal
- Ouvrez l’Explorateur de fichiers et créez un dossier Plugins dans le répertoire racine de votre jeu. Dans le dossier Plugins, créez un dossier appelé PlayFabGSDK.
- Accédez à {depot}\GSDK\gsdk\UnrealPlugin. Faites glisser tous les fichiers du dossier UnrealPlugin dans le dossier Plugins/PlayFabGSDK.
- Enfin, ouvrez le fichier
{ProjectName}.uprojectdans l’éditeur de texte de votre choix. Dans le tableau plugins, ajoutez le plug-in “PlayFabGSDK”.
Inclure le plug-in dans vos modules
- Mettez à jour le fichier {ProjectName}.Build.cs pour ajouter “PlayFabGSDK” à la liste PublicDependencyModuleNames.AddRange(); comme suit :
- Cliquez avec le bouton droit sur le fichier
{ProjectName}.uprojectet sélectionnez l’option Switch Unreal Engine version, qui vous permet de vérifier rapidement la version d’Unreal Engine que vous utilisez actuellement. La fenêtre contextuelle ci-dessous devrait s’afficher. Si la version d’Unreal Engine indiquée est déjà la build source, vous n’avez rien à modifier : cliquez sur Cancel. Si la version d’Unreal n’est pas actuellement la build source, sélectionnez-la dans la liste déroulante, puis cliquez sur OK.

-
Cliquez de nouveau avec le bouton droit sur le fichier
{ProjectName}.uprojectet sélectionnez “Generate Visual Studio Project Files”. - Enfin, générez le projet dans Visual Studio et démarrez l’éditeur en sélectionnant la configuration Development Editor.

Configuration du projet
Une fois le mode serveur activé dans votre projet, vous disposez d’un fichier {ProjectName}Server.Target.cs. Le résultat devrait ressembler à ceci :Créer/mettre à jour la classe GameInstance
Créer une classe GameInstance
Si vous créez un projet de A à Z et ne disposez pas encore d’une classe GameInstance, suivez d’abord ces exemples d’instructions pour créer une classe GameInstance. Si vous utilisez un projet qui dispose déjà d’une classe GameInstance (par exemple, ShooterGame de la bibliothèque d’exemples d’Unreal), passez à la section intitulée Modifier la classe GameInstance.Dans l’éditeur Unreal :
- Sélectionnez Files
- Sélectionnez Create a new C++ class
- Sélectionnez Show all classes
- Saisissez
GameInstancedans le champ de recherche- En la sélectionnant directement comme décrit, tout devrait être généré correctement ; vous pourrez ensuite ajouter les fonctions détaillées ci-dessous
- Fermez Unreal et exécutez de nouveau Generate project files en mode build source
- Dans Visual Studio, ouvrez ces fichiers nouvellement créés et suivez les instructions pour modifier la classe GameInstance.
Modifier la classe GameInstance
Selon la configuration de votre projet, vous pouvez modifier la classe GameInstance en C++ ou à l’aide de Blueprints. Les deux méthodes sont présentées ci-dessous ; choisissez celle qui correspond à vos besoins.Implémentation C++
Recherchez votre classe GameInstance, qui s’appelle très probablement {ProjectName}GameInstance, MyGameInstance ou un nom similaire. Dans la suite, votre classe GameInstance est désignée par [YourGameInstanceClassName].Modifier le fichier d’en-tête de GameInstance
Commencez par vérifier les instructions include et assurez-vous que les éléments suivants sont inclus dans le fichier d’en-tête de votre classe GameInstance ([YourGameInstanceClassName].h) :Modifier le fichier CPP de GameInstance
Recherchez ensuite le fichier [YourGameInstanceClassName].cpp. Assurez-vous que les éléments suivants sont inclus :Créer la fonction Init()
Si vous disposiez déjà d’une fonction Init(), vérifiez dans le fichier
[YourGameInstanceClassName].cpp si vous avez une variable indiquant si l’instance est destinée à un serveur dédié. Si vous trouvez cette variable, ajoutez ce qui suit à la fin de votre fonction Init() :
Modifier la fonction Init() existante
Enfin, ajoutez ces implémentations de méthodes à la fin du fichier
[YourGameInstanceClassName].cpp :
Implémentation Blueprint
Cette partie n’est nécessaire que si vous avez choisi l’implémentation Blueprint plutôt que l’implémentation purement C++.- Observez la fenêtre Content Browser de l’éditeur Unreal
- Choisissez ou créez un dossier pour contenir les nouveaux Blueprints
- Cliquez avec le bouton droit et créez une classe Blueprint
- Dans le menu déroulant All classes, recherchez votre classe GameInstance
- Dans cet exemple, le Blueprint s’appelle “MyGameInstance”
- Double-cliquez sur le Blueprint
- À gauche, pointez sur le champ des fonctions et sélectionnez la liste déroulante Override
- Sélectionnez la fonction Init
- Cliquez avec le bouton droit dans le graphe et ajoutez toutes les fonctions d’inscription du GSDK
- Pour les délégués GSDK Shutdown et Maintenance, faites glisser une ligne depuis le carré rouge et sélectionnez “Add Custom Event”
- Pour “Register GSDK Health Check Delegate”, sélectionnez “Create Event” dans “Event Dispatchers”.
-

- Dans la liste déroulante du nouveau nœud, sélectionnez “Create matching function”. C’est important, car le délégué GSDK Health Check a une valeur de retour.
-

- Dans la fonction, assurez-vous que la valeur booléenne de retour est cochée.
-

- N’oubliez pas de connecter tous les nœuds au nœud Event Init.
- Enfin, ajoutez le nœud “ReadyforPlayers” pour pouvoir réagir au signal de disponibilité de PlayFab.
- N’oubliez pas non plus d’ajouter le nœud “SetDefaultServerHostPort” pour vous connecter au port attendu par le GSDK.
- Pour chaque fonction ou nœud du GSDK que vous souhaitez ajouter à votre Blueprint, vous pouvez vérifier qu’il existe en saisissant les premières lettres du nom de la fonction dans votre nouveau nœud : la fonction GSDK attendue doit apparaître dans les suggestions.
- Au final, votre Blueprint devrait ressembler à celui présenté dans l’image ci-dessous.
-

Définir la classe GameInstance
Après avoir créé une classe GameInstance personnalisée intégrée au GSDK, vous devez configurer votre projet pour qu’il utilise réellement cette nouvelle classe GameInstance. Il existe deux façons de procéder : via l’éditeur Unreal Engine ou en modifiant directement DefaultEngine.ini.Dans l’éditeur Unreal
Dans l’éditeur, la GameInstance par défaut peut être définie via l’interface utilisateur. Dans l’éditeur, accédez à Edit -> Project Settings. Dans la fenêtre qui s’ouvre, accédez à Maps&Modes sur la gauche. Faites défiler jusqu’en bas : vous pouvez alors définir directement l’optionGameInstanceClass sur votre nouvelle classe GameInstance (évitez les fautes de frappe : la correspondance doit être exacte).
