Passer au contenu principal
L’exemple Wrapper, également appelé wrappingGsdk, encapsule un jeu existant afin qu’il puisse être utilisé dans le déploiement de builds pour des serveurs de jeu utilisant le système d’exploitation Windows et Linux. Grâce à l’application wrapper, vous pouvez également utiliser votre build de serveur de jeu sur PlayFab Multiplayer Servers.
Un wrapper est une solution de contournement qui traite les flux de sortie et d’erreur standard pour appeler les méthodes du GSDK ; il n’est pas destiné à une utilisation en production.

Contenu de l’exemple

Cet exemple se compose de deux applications console .NET Core.
  • Wrapper—intègre le dernier package NuGet du SDK du serveur de jeu PlayFab (GSDK) à votre serveur de jeu. Cette application wrapper n’est pas destinée à une utilisation en production
  • Fakegame—un serveur de jeu de base qui n’a aucune connaissance du GSDK. Il ressemble au serveur de jeu type dont vous disposeriez avant d’utiliser PlayFab Multiplayer Servers. Il démarre le serveur web ASP.NET Core Kestrel, qui écoute sur le port TCP 80. Il est conçu pour simuler un serveur de jeu qui n’a absolument aucune connaissance du GSDK. Vous pouvez l’utiliser si vous ne disposez pas de votre propre serveur de jeu. Il propose deux routes GET utilisables : /hello pour obtenir une réponse simple et /hello/terminate pour arrêter le serveur.

Exigences

Pour utiliser et afficher PlayFab Multiplayer Servers, vous devez activer la fonctionnalité dans Game Manager. Pour obtenir des instructions, consultez Activer la fonctionnalité PlayFab Server.

Procédure pas à pas

Pour une démonstration en direct de la génération de cet exemple, consultez notre présentation lors de Microsoft Game Dev 2021 (à partir d’environ 2.52) :

Obtenir et générer l’exécutable Wrapper

  • Obtenez l’exemple de wrapper GSDK à l’aide des méthodes Git standard ou en le téléchargeant sous forme de fichier zip
  • Ouvrez l’invite de commandes et utilisez la commande cd pour accéder à l’emplacement du fichier wrapper.csproj. Exemple : cd C:/ReplaceWithYourFilePath/wrappingGsdk/wrapper
  • Exécutez ensuite la commande CLI .NET Core suivante :
Lorsque la génération du wrapper réussit, l’exécutable est publié dans le dossier ..\wrappingGsdk\wrapper\bin\Debug\netcoreapp3.1\win-x64\publish, comme illustré dans l’image ci-dessous. Emplacement de publication de l'exécutable wrapper

Créer une ressource de serveur de jeu

Il existe deux façons de créer une ressource de serveur de jeu.

Utiliser le serveur de jeu Fakegame avec le wrapper

Utilisez build.ps1 pour générer et empaqueter les deux projets (wrapper et fakegame). Ce script crée un dossier drop contenant un fichier .zip avec les fichiers requis.
  • Ouvrez PowerShell
  • Utilisez la commande cd pour accéder à l’emplacement du script build.ps1. Exemple : cd C:/ReplaceWithYourFilePath/wrappingGsdk/
  • Exécutez \build.ps1
  • Une fois le script exécuté avec succès, accédez au dossier ..\wrappingGsdk\drop. Vous y trouverez un fichier gameassets.zip contenant la build du faux serveur de jeu, l’exécutable wrapper (généré à l’étape précédente) et les autres fichiers requis.

Utiliser vos propres fichiers de serveur de jeu avec le wrapper

Pour utiliser votre projet de jeu dans l’évaluation, placez le wrapper et l’exécutable de votre serveur de jeu dans le même dossier.
  • Suivez les instructions de Générer l’exécutable wrapper
  • Accédez à l’emplacement de publication du wrapper : ..\wrappingGsdk\wrapper\bin\Debug\netcoreapp3.1\win-x64\publish
  • Dans une autre fenêtre, accédez à la build de votre serveur de jeu et aux fichiers nécessaires à son exécution. Si vous ne savez pas quels fichiers sont nécessaires, consultez Déterminer les fichiers DLL nécessaires
  • Copiez la build du serveur de jeu et tous les fichiers requis dans l’emplacement de publication du wrapper
  • Sélectionnez tous les fichiers de l’emplacement de publication du wrapper
  • Avec tous les fichiers sélectionnés, cliquez avec le bouton droit, puis sélectionnez Send to > Compressed (zip) files to zip. Ne sélectionnez pas le dossier de publication du wrapper pour l’ajouter au zip, car cela entraînerait un mappage incorrect.
Pour effectuer une vérification croisée, suivez les instructions de Utiliser le serveur de jeu Fakegame avec le wrapper pour générer gameassets.zip et l’utiliser comme référence.

Créer et charger une image de conteneur Linux (serveurs Linux uniquement)

Pour créer une image de conteneur Linux, vous avez besoin d’un Dockerfile. Un Dockerfile est un fichier texte sans extension qui contient toutes les commandes nécessaires pour générer une image de conteneur donnée. Dans cet exemple, ce fichier est déjà créé pour vous. Il vous suffit de générer l’image de conteneur et de l’exécuter. Si vous souhaitez utiliser votre appareil de développement Windows, vous devez installer le Sous-système Windows pour Linux (WSL). Les instructions sont fournies ci-dessous. Pour plus d’informations, consultez Différences entre les images de conteneur Windows et Linux.
  1. Configurer votre appareil de développement Windows (facultatif)
  2. Obtenir les informations d’identification de connexion à votre registre de conteneurs PlayFab
  3. Utiliser un Dockerfile existant ou créer le vôtre Cette étape diffère selon que vous utilisez FakeGame ou votre propre serveur de jeu.
    • Si vous utilisez FakeGame, vérifiez que vous disposez du Dockerfile
    • Si vous utilisez votre jeu ou devez créer un Dockerfile, consultez Créer votre Dockerfile. Vous pouvez utiliser le Dockerfile de FakeGame comme point de départ.
  4. Ouvrez votre terminal Linux sur lequel Docker est installé, par exemple Ubuntu. Remplacez les valeurs des variables TAG et ACR par vos propres valeurs. Exécutez ensuite les commandes ci-dessous.
Pour vérifier que les variables ACR et TAG sont correctement définies, exécutez echo ACR__ et __echo TAG.
  1. Saisissez le nom d’utilisateur et le mot de passe obtenus à l’étape précédente.
  2. Générez et chargez l’image de conteneur Linux.
Exécutez les commandes ci-dessous pour générer et charger le Dockerfile. La commande docker build se termine par un ”.”. Vous devez vous trouver dans le même dossier/répertoire que le Dockerfile. Pour plus de détails, consultez Générer et charger l’image de conteneur Linux.

Déployer une build à l’aide de Game Manager ou de l’API

Le processus de déploiement de build est similaire pour les serveurs de jeu Windows et Linux.

Déployer des serveurs de jeu Windows

Les étapes sont similaires à celles de l’exemple Windows Runner C#. Suivez ces étapes en tenant compte des différences répertoriées ci-dessous. Si vous préférez effectuer les tests localement, consultez Débogage local des serveurs de jeu et intégration à PlayFab. Paramètres propres à cet exemple
  • Commande de démarrage :
    • Utilisez C:\Assets\wrapper.exe -g C:\Assets\fakegame.exe arg1 arg2
    • Remplacez fakegame.exe par le nom de l’exécutable de votre serveur de jeu, si vous utilisez votre propre build de serveur de jeu
  • Configuration réseau : Name : gameport, Port : 80, Protocol : TCP
  • Ressources : si vous utilisez FakeGame, chargez gameassets.zip en tant que ressource.

Déployer des serveurs de jeu Linux

Suivez les étapes générales ci-dessous pour effectuer le déploiement. Paramètres propres à cet exemple
  • Sélectionnez le conteneur que vous avez chargé
  • Configuration réseau : Name : gameport, Port : 80, Protocol : TCP
  • Inutile de charger des ressources et de définir Start Command
Lors de l’allocation à l’aide de l’API RequestMultiplayerServer, le port auquel vous vous connectez sera différent de 80. En effet, le service PlayFab Multiplayer Server crée un mappage entre l’équilibreur de charge Azure (qui expose vos ports sur l’Internet public) et les serveurs de jeu qui s’exécutent sur les machines virtuelles Azure.

Exécution du wrapper à l’aide de LocalMultiplayerAgent

L’utilisation de LocalMultiplayerAgent est fortement recommandée si vous souhaitez tester l’intégration du GSDK sur vos serveurs de jeu personnalisés. Si vous utilisez LocalMultiplayerAgent avec des conteneurs Windows, vous devez configurer correctement le fichier MultiplayerSettings.json. Vous trouverez un exemple ci-dessous ; prêtez une attention particulière aux valeurs de LocalFilePath et de StartGameCommand. N’oubliez pas de remplacer fakegame.exe par le nom de l’exécutable de votre serveur de jeu.
Vous êtes maintenant prêt à effectuer des tests avec LocalMultiplayerAgent. Si la configuration est correcte, dès que LocalMultiplayerAgent lance votre serveur de jeu, vous pouvez vous y connecter avec curl à l’adresse http://localhost:56100/Hello.

Se connecter à un serveur de jeu sur MPS

Pour établir une connexion avec un serveur de jeu sur MPS, il est essentiel de déterminer le numéro de port approprié. Cette exigence découle de la configuration dans laquelle plusieurs machines virtuelles, chacune pouvant exécuter de nombreuses instances de serveur de jeu, sont gérées derrière un équilibreur de charge. Dans une telle configuration, un même port IP public peut correspondre à différents ports sur ces machines virtuelles, chacun étant associé à une instance de serveur de jeu distincte.

Utiliser Game Manager

Vous pouvez utiliser l’interface utilisateur de Game Manager pour allouer un serveur de jeu et établir une connexion avec celui-ci.
  1. Connectez-vous à Game Manager
  2. Accédez à la page Multiplayer => Servers, puis sélectionnez votre build
  3. Accédez à la page Servers, puis cliquez sur le bouton “Request server”.
  4. Sur la page suivante, notez l’adresse IPv4 publique et le Port.
  5. Utilisez curl pour vous connecter à http://[IPV4Address]:[Ports->Num]/Hello.”

Utiliser l’exemple MPS Allocator

Voici comment utiliser l’exemple MPS Allocator pour allouer un serveur de jeu et établir une connexion avec celui-ci.
  1. Compilez et exécutez l’exemple MPS Allocator.
  2. Utilisez la commande “ListBuildSummaries” pour afficher les builds disponibles et leurs ID de build correspondants.
  3. Appelez “RequestMultiplayerServer” pour lancer une demande d’instance de serveur de jeu.
  4. Saisissez l’ID de build sélectionné dans la commande “ListMultiplayerServers” pour générer la liste des serveurs disponibles.
  5. Choisissez une instance de serveur de jeu active, puis utilisez “GetMultiplayerServerDetails” avec les ID de build et de session obtenus aux étapes précédentes.
  6. Notez les valeurs IPV4Address et Ports->Num affichées dans la réponse.
  7. Utilisez curl pour vous connecter à http://[IPV4Address]:[Ports->Num]/Hello.

Voir aussi

Dernière modification le 8 octobre 2026