Conteneurisation et empaquetage des serveurs de jeu
Windows
Sous Windows, vous empaquetez généralement l’exécutable du serveur de jeu et les autres fichiers sous forme de fichiers zip, puis vous les téléversez en tant qu’actifs de jeu. Les actifs sont combinées à une image de conteneur pour créer votre build de serveur de jeu. L’image de conteneur de base fournit les fichiers du système d’exploitation Windows et l’environnement d’exécution qui permet au jeu de s’exécuter. PlayFab fournit un ensemble d’images de conteneur managées à utiliser pour les builds Windows. Lorsqu’une build Windows est créée au moyen de Game Manager ou des API telles que CreateBuildWithManagedContainer(), vous spécifiez les actifs et l’emplacement où ils doivent être montés dans le système de fichiers du conteneur. Vous spécifiez également la commande shell permettant de démarrer le jeu (StartGameCommand), qui peut ressembler à l’exemple ci-dessous.
StartGameCommand doit démarrer une application qui utilise le SDK du serveur de jeu PlayFab pour appeler ReadyForPlayers lorsqu’elle est prête à servir les clients de jeu. Le conteneur est arrêté et recyclé lorsque le processus de l’application se termine.
Linux
Sous Linux, vous créez vous-même l’image de conteneur en empaquetant l’exécutable et les actifs du jeu. L’utilisation d’actifs combinés à l’image de conteneur au moment de l’exécution est facultative. Lorsqu’une build Linux est créée au moyen de Game Manager ou des API telles que CreateBuildWithCustomContainer(), vous pouvez éventuellement spécifier les actifs et l’emplacement où ils doivent être montés dans le système de fichiers du conteneur. La spécification de la commande shell permettant de démarrer le jeu (StartGameCommand) est également facultative, car cette commande peut aussi être incluse dans l’image de conteneur.
Consultez cette page pour plus d’informations sur la création d’images de conteneur Linux pour PlayFab Multiplayer Servers
Conteneurs managés pour Windows
PlayFab prend actuellement en charge un conteneur managé : l’image de conteneur PlayFab Multiplayer, basée sur Windows Server Core. Vous pouvez télécharger ce conteneur sur Docker Hub afin que votre environnement local corresponde à l’environnement d’exécution dans Azure. Des outils de débogage vous permettent de parcourir pas à pas la machine à états du serveur multijoueur localement sur votre machine de développement. Pour plus d’informations, consultez Débogage local des serveurs de jeu et intégration à PlayFab. L’image suivante illustre les principaux flux de téléversement d’un serveur de jeu et de combinaison de ce package avec un conteneur sélectionné.
Mises à jour des conteneurs managés
Les conteneurs managés constituent l’option d’intégration la plus simple pour les projets Windows et un bon point de départ si vous ne connaissez pas bien les conteneurs. Une fonctionnalité clé des conteneurs managés est que PlayFab met automatiquement à jour l’image de base avec les correctifs de sécurité critiques afin de garantir un jeu fiable. En général, les mises à jour de sécurité ont lieu tous les mois et ne devraient pas entraîner d’interruption de service. Pour en savoir plus, consultez Mises à jour des correctifs du système d’exploitation pour Windows. Pendant une mise à niveau, les sessions en attente (standing-by) qui sont naturellement recyclées sont remplacées par une image de conteneur mise à jour et le même package de serveur de jeu. Lorsque PlayFab prévoit de mettre à jour une image de conteneur managée que vous utilisez, vous recevez des événements PlayStream.Intégration du SDK du serveur de jeu PlayFab
En savoir plus : Intégration des serveurs de jeu au SDK du serveur de jeu PlayFab (GSDK) Le SDK du serveur de jeu PlayFab (GSDK) est fourni dans plusieurs langages de programmation, tels que C++, C# et Java. Le GSDK connecte votre serveur de jeu à un agent local installé sur la machine virtuelle. Cet agent facilite les interactions clés du serveur avec l’infrastructure de contrôle PlayFab.
ReadyForPlayers().
Une fois cette méthode appelée, le serveur de jeu passe à l’état en attente (standing by) et attend les demandes d’allocation envoyées par votre service de matchmaking à PlayFab au moyen de la méthode RequestMultiplayerServer.
L’image ci-dessous montre les états d’un serveur multijoueur PlayFab.

ReadyForPlayers() est la seule condition requise pour que votre serveur de jeu s’exécute et continue de s’exécuter. Toutefois, il existe plusieurs rappels et événements que vous pouvez souhaiter traiter afin d’offrir la meilleure expérience utilisateur possible.
Scripts de serveur et variables d’environnement configurées par PlayFab
Dans certains cas, vous pouvez souhaiter que les serveurs de jeu exécutent un script CMD, PowerShell ou bash (un « programme d’amorçage »), qui lance ensuite l’exécutable compilé de votre serveur de jeu. Ce script peut configurer l’environnement interne du conteneur, transmettre des arguments de ligne de commande à l’exécutable ou effectuer toute autre tâche que vous ne souhaitez pas exécuter dans l’exécutable du serveur de jeu lui-même. Par commodité, PlayFab configure certaines informations de build sous forme des variables d’environnement suivantes dans le conteneur. Elles sont également accessibles au moyen du GSDK, mais l’utilisation des variables d’environnement peut être plus simple à partir d’un script.- PF_TITLE_ID : ID de titre de l’hôte de session
- PF_BUILD_ID : ID de build de l’hôte de session
- PF_REGION : région Azure de l’hôte de session
- PUBLIC_IPV4_ADDRESS : adresse IP publique de la machine virtuelle
- PF_VM_ID : identificateur unique de la machine virtuelle (par exemple ‘xcloudeau4u4yyxj4xymu:AustraliaEast:1E03_6f27ad88-9bc3-4ea3-8d16-75480aba4637:tvmps_0e05c37e0bbdca298a09fb0d597bd666eb7c5fd0ebcf1fed4c52e608a39a7c9c_d’)
- CERTIFICATE_FOLDER : dossier contenant les certificats du jeu
- PF_SERVER_LOG_DIRECTORY : dossier contenant les journaux du jeu
- PF_SERVER_INSTANCE_NUMBER : numéro d’instance du serveur. Le premier serveur de la machine virtuelle porte le numéro 0, le deuxième 1, le troisième 2, etc.
