Passer au contenu principal

Exécuter un serveur de jeu à l’aide de LocalMultiplayerAgent en mode processus

Ce tutoriel explique comment :
  • Créer une build à l’aide de l’exemple Wrapper
  • Configurer MultiplayerSettings.json
  • Exécuter LocalMultiplayerAgent
  • Tester la connexion à votre jeu

Créer une build de jeu

Pour tester vos serveurs de jeu à l’aide de LocalMultiplayerAgent (LMA), vous devez créer une build de jeu et l’enregistrer au format archive. Pour vous faciliter la tâche, nous fournissons l’exemple Wrapper avec des instructions et un script PowerShell. Ensuite, suivez l’étape “Wrapping an existing game server using the wrapper app” pour préparer votre serveur de jeu pour ce tutoriel.

Configurer MultiplayerSettings.json

Accédez au dossier dans lequel vous avez extrait l’ensemble d’outils LMA et ouvrez le fichier MultiplayerSettings.json. Ce fichier est un fichier de configuration de build simulé qui reproduit la build sur MPS. Vous pouvez générer le json à l’aide du générateur LMA MultiplayerSettings.json. Le générateur est une page web simple qui crée un json en fonction de vos options. Vous le trouverez dans le dossier extrait de LMA. Voici un exemple de MultiplayerSettings.json pour l’exemple Wrapper permettant d’exécuter LMA en mode processus.
Assurez-vous de mettre à jour correctement les champs suivants dans MultiplayerSettings.json pour exécuter LMA en mode processus.
  • LocalFilePath : chemin local complet (sur votre station de travail) du fichier zip des actifs du serveur de jeu créé précédemment, par exemple : D:\MyAmazingGame\asset.zip (notez que les barres obliques inverses doivent être échappées pour le format JSON).
  • StartGameCommand : pour un processus, le chemin StartGameCommand est un chemin relatif. Le répertoire de travail est celui dans lequel vos actifs de jeu sont extraits.
  • PortMappingsList : il s’agit des ports disponibles pour votre jeu pendant son exécution.
    • NodePort est le port ouvert sur votre station de travail
    • GamePort.Number n’est pas requis en mode processus. Le numéro de port est lié au NodePort au moyen du GSDK lorsque votre serveur de jeu s’exécute. Dans un scénario réel, MPS lie dynamiquement le port pour chaque session de jeu basée sur un processus.
    • Définissez GamePort.Name sur la même valeur que celle définie dans votre serveur de jeu. Vous pouvez vérifier cette valeur dans la configuration du GSDK au moment de l’exécution, avec la clé GamePort.Name. Si vous utilisez l’exemple Wrapper, le nom du port est déjà défini sur “game_port”; vous devez donc définir la même valeur ici.
    • GamePort.Protocol : spécifiez le type de protocole : TCP ou UDP
  • OutputFolder : chemin d’un lecteur ou d’un dossier dans lequel les sorties et les fichiers de configuration sont générés. Assurez-vous de disposer de suffisamment d’espace, car le serveur de jeu sera extrait sous ce chemin. Si ce champ n’est pas spécifié, le dossier de l’agent est utilisé.
  • AgentListeningPort : il s’agit du port utilisé par LMA pour communiquer avec le serveur de jeu. N’importe quel port ouvert convient; 56001 est la valeur par défaut. Si un autre processus est lié au port 56001, vous devez modifier cette valeur ou arrêter l’autre processus sur le port 56001.
  • ResourceLimits : non requis en mode processus.
  • MountPath : non requis en mode processus.
  • SessionCookie (facultatif) : tout cookie de session transmis à votre serveur de jeu dans le cadre de l’appel d’API RequestMultiplayerServer. Dans un scénario réel sur MPS, une fois la connexion établie, le serveur demande au client de charger les ressources correspondantes à partir de SessionCookie.

Exécuter LocalMultiplayerAgent

Vous êtes maintenant prêt à exécuter LocalMultiplayerAgent.
  • Dans une fenêtre PowerShell :
    Accédez au répertoire de LMA qui contient LocalMultiplayerAgent.exe.
  • Exécutez LocalMultiplayerAgent.exe. À ce stade, LMA configure l’écouteur http, décompresse les actifs du jeu et démarre le serveur de jeu dans un processus distinct.
    Si vous exécutez votre serveur de jeu en tant que processus, le Pare-feu Windows peut s’afficher et vous demander si vous souhaitez autoriser le trafic vers le NodePort que vous avez spécifié. Pour éviter cela, vous pouvez exécuter LocalMultiplayerAgent en mode administrateur ou autoriser le port dans le pare-feu.
LMA attend les pulsations du GSDK intégré à votre serveur de jeu. Si le GSDK est correctement intégré, LMA affiche les sorties dans l’ordre suivant :
  1. CurrentGameState - Initializing
    (Cette ligne peut ne pas s’afficher si votre serveur de jeu appelle directement GSDK::ReadyForPlayers sans appeler GSDK::Start)
  2. CurrentGameState - StandingBy
  3. CurrentGameState - Active
  4. CurrentGameState - Terminating
Pour en savoir plus sur les états d’un serveur de jeu, consultez Cycle de vie des serveurs de jeu de PlayFab Multiplayer Server. Si les rappels d’arrêt sont correctement configurés, votre serveur de jeu se ferme peu après le passage à l’état Terminating. Il est important de vérifier que le serveur de jeu se ferme afin d’éviter des arrêts non contrôlés sur la plateforme PlayFab. LMA doit également se terminer en même temps que le jeu.

Tester la connexion à votre jeu

Une fois que LMA affiche CurrentGameState - Active, vous pouvez vous connecter à votre serveur de jeu à l’aide de l’adresse IP 127.0.0.1 et du port NodePort sur lequel votre serveur de jeu écoute. Si vous utilisez l’exemple Wrapper, vous pouvez tester une requête GET en saisissant l’adresse http://127.0.0.1:56100/Hello dans votre navigateur. Pour plus de détails, consultez l’exemple Wrapper. Vous pouvez également mettre à jour les valeurs de NumHeartBeatsForActivateResponse et de NumHeartBeatsForTerminateResponse dans MultiplayerSettings.json pour ajuster la durée des états StandingBy/Active.
Dernière modification le 8 octobre 2026