Cómo ejecutar un servidor de juegos con LocalMultiplayerAgent en modo de proceso
Este tutorial describe cómo:- Crear una compilación con el ejemplo Wrapper
- Configurar MultiplayerSettings.json
- Ejecutar LocalMultiplayerAgent
- Probar la conexión con su juego
Crear una compilación del juego
Para probar sus servidores de juegos con LocalMultiplayerAgent (LMA), debe crear una compilación del juego y guardarla en formato de archivo comprimido. Para facilitarle la tarea, proporcionamos el ejemplo Wrapper con instrucciones y un script de PowerShell. A continuación, siga el paso “Wrapping an existing game server using the wrapper app” para preparar su servidor de juegos para este tutorial.Configurar MultiplayerSettings.json
Vaya a la carpeta donde extrajo el conjunto de herramientas de LMA y abra el archivo MultiplayerSettings.json. Este archivo es un archivo ficticio de configuración de compilación que simula la compilación en MPS. Puede rellenar el json con el Generador de MultiplayerSettings.json de LMA. El Generador es una página web sencilla que crea un json basado en sus opciones. Puede encontrar el Generador en la carpeta extraída de LMA. Este es el ejemplo de MultiplayerSettings.json para el ejemplo Wrapper para ejecutar LMA en modo de proceso.-
LocalFilePath: ruta local completa (en su estación de trabajo) al archivo zip del recurso del servidor de juegos creado anteriormente, por ejemplo: D:\MyAmazingGame\asset.zip (tenga en cuenta que las barras diagonales inversas deben escaparse para el formato JSON). -
StartGameCommand: la ruta de StartGameCommand para un proceso es una ruta relativa. El directorio de trabajo será donde se extraiga su recurso de juego. -
PortMappingsList: estos son los puertos que están disponibles para su juego mientras se ejecuta.-
NodePortes el puerto que se abre en su estación de trabajo -
GamePort.Numberno es necesario para el modo de proceso. El número de puerto se enlazará al Node Port mediante el GSDK cuando su servidor de juegos esté en ejecución. En el escenario real, MPS enlazará el puerto dinámicamente para cada sesión de juego basada en procesos. -
Establezca
GamePort.Nameen el mismo valor definido en su servidor de juegos. Puede comprobar la configuración del GSDK en tiempo de ejecución para obtener el valor con la clave GamePort.Name. Si usa el ejemplo Wrapper, el nombre del puerto ya está definido como “game_port”, por lo que debe establecer el mismo valor aquí. -
GamePort.Protocol: especifique el tipo de protocolo: TCP o UDP
-
-
OutputFolder: ruta a una unidad o carpeta donde se generan las salidas y los archivos de configuración. Asegúrese de que haya suficiente espacio disponible, ya que el servidor de juegos se extraerá en esta ruta. Si no se especifica, se usa la carpeta del agente. -
AgentListeningPort: este es el puerto que usa LMA para comunicarse con el servidor de juegos. Cualquier puerto abierto funcionará; 56001 es el valor predeterminado. Si tiene otro proceso enlazado al puerto 56001, debe cambiar este valor o finalizar el otro proceso en el puerto 56001. -
ResourceLimits: no es necesario para el modo de proceso. -
MountPath: no es necesario para el modo de proceso. -
SessionCookie(opcional): cualquier cookie de sesión que se pasa a su servidor de juegos como parte de la llamada a la API RequestMultiplayerServer. En el escenario real en MPS, después de establecer la conexión, el servidor notificará al cliente que cargue los recursos correspondientes desde SessionCookie.
Ejecutar LocalMultiplayerAgent
Ahora ya puede ejecutar LocalMultiplayerAgent.-
En una ventana de PowerShell:
Vaya al directorio de LMA que contiene LocalMultiplayerAgent.exe. -
Ejecute
LocalMultiplayerAgent.exe. En este punto, LMA configura el agente de escucha http, descomprime el recurso de juego e inicia el servidor de juegos en un proceso independiente.Si ejecuta su servidor de juegos como proceso, es posible que el Firewall de Windows aparezca y le pregunte si desea permitir el tráfico al NodePort que especificó. Si desea evitarlo, puede ejecutar LocalMultiplayerAgent en modo de administrador o habilitar el puerto en el firewall.
CurrentGameState - Initializing
(Es posible que esto no aparezca si su servidor de juegos llama directamente a GSDK::ReadyForPlayers y no llama a GSDK::Start)CurrentGameState - StandingByCurrentGameState - ActiveCurrentGameState - Terminating
