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.-
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.-
NodePortest le port ouvert sur votre station de travail -
GamePort.Numbern’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.Namesur 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.
CurrentGameState - Initializing
(Cette ligne peut ne pas s’afficher si votre serveur de jeu appelle directement GSDK::ReadyForPlayers sans appeler GSDK::Start)CurrentGameState - StandingByCurrentGameState - ActiveCurrentGameState - Terminating
