Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Integración de Amazon GameLift Servers en un proyecto de servidor de juegos de Unity
nota
En este tema se proporciona información sobre una versión anterior del complemento de Amazon GameLift Servers para Unity. La versión 1.x usa el SDK del servidor para la versión 4.x o versiones anteriores de Amazon GameLift Servers. Para obtener documentación sobre la versión más reciente del complemento, que utiliza el SDK del servidor 5.x y es compatible con características más recientes, como el alojamiento de Amazon GameLift Servers Anywhere y de contenedores administrados, consulte Complemento de Amazon GameLift Servers para Unity (SDK 5.x del servidor).
En este tema le ayudaremos a preparar su servidor de juegos personalizado para el alojamiento en Amazon GameLift Servers. El servidor de juegos debe poder informar a Amazon GameLift Servers de su estado, iniciar y detener sesiones de juego cuando se le solicite, y realizar otras tareas. Para obtener más información, consulte Adición de Amazon GameLift Servers al servidor de juegos con el SDK del servidor.
Requisitos previos
Antes de integrar el servidor de juegos, realice las siguientes tareas:
Configuración de un proceso del servidor nuevo
nota
Este tema hace referencia a la versión 1.0.0 del complemento de Amazon GameLift Servers para Unity, que usa el SDK del servidor 4.x o una versión anterior.
Establezca la comunicación con Amazon GameLift Servers e informe de que el proceso del servidor está listo para alojar una sesión de juego.
-
Inicie el SDK del servidor mediante una llamada a
InitSDK() -
Para preparar el servidor para que acepte una sesión de juego, llame a
ProcessReady()con el puerto de conexión y los detalles de la ubicación de la sesión de juego. Incluya los nombres de las funciones de devolución de llamada que invoca el servicio de Amazon GameLift Servers, comoOnGameSession(),OnGameSessionUpdate(),OnProcessTerminate()oOnHealthCheck(). Amazon GameLift Servers podría tardar unos minutos en proporcionar una devolución de llamada. -
Amazon GameLift Servers actualiza el estado del proceso del servidor a
ACTIVE. -
Amazon GameLift Servers llama a
onHealthCheckde forma periódica.
El siguiente ejemplo de código muestra cómo configurar un proceso de servidor sencillo con Amazon GameLift Servers.
//initSDK var initSDKOutcome = GameLiftServerAPI.InitSDK(); //processReady // Set parameters and call ProcessReady var processParams = new ProcessParameters( this.OnGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnGameSessionUpdate, port, // Examples of log and error files written by the game server new LogParameters(new List<string>() { "C:\\game\\logs", "C:\\game\\error" }) ); var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams); // Implement callback functions void OnGameSession(GameSession gameSession) { // game-specific tasks when starting a new game session, such as loading map // When ready to receive players var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession(); } void OnProcessTerminate() { // game-specific tasks required to gracefully shut down a game session, // such as notifying players, preserving game state data, and other cleanup var ProcessEndingOutcome = GameLiftServerAPI.ProcessEnding(); } bool OnHealthCheck() { bool isHealthy; // complete health evaluation within 60 seconds and set health return isHealthy; }
Inicio de una sesión de juego
nota
Este tema hace referencia a la versión 1.0.0 del complemento de Amazon GameLift Servers para Unity, que usa el SDK del servidor 4.x o una versión anterior.
Una vez completada la inicialización del juego, podrá iniciar una sesión de juego.
-
Implemente la función de devolución de llamada
onStartGameSession. Amazon GameLift Servers invoca este método para iniciar una nueva sesión de juego en el proceso del servidor y recibir las conexiones de los jugadores. -
Para activar una sesión de juego, llame a
ActivateGameSession(). Para obtener más información sobre los SDK, consulte SDK del servidor de C# para Amazon GameLift Servers 4.x: acciones.
El siguiente código de ejemplo muestra cómo iniciar una sesión de juego con Amazon GameLift Servers.
void OnStartGameSession(GameSession gameSession) { // game-specific tasks when starting a new game session, such as loading map ... // When ready to receive players var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession(); }
Finalización de una sesión de juego
nota
Este tema hace referencia a la versión 1.0.0 del complemento de Amazon GameLift Servers para Unity, que usa el SDK del servidor 4.x o una versión anterior.
Informe a Amazon GameLift Servers cuando finalice una sesión de juego. Como práctica recomendada, cierre los procesos del servidor una vez finalizada la sesión de juego para reciclar y actualizar los recursos de alojamiento.
-
Configure una función denominada
onProcessTerminatepara recibir solicitudes de Amazon GameLift Servers y llamar aProcessEnding(). -
El estado del proceso cambia a
TERMINATED.
El siguiente ejemplo describe cómo finalizar un proceso de una sesión de juego.
var processEndingOutcome = GameLiftServerAPI.ProcessEnding(); if (processReadyOutcome.Success) Environment.Exit(0); // otherwise, exit with error code Environment.Exit(errorCode);
Creación de una compilación del servidor y carga en Amazon GameLift Servers
nota
Este tema hace referencia a la versión 1.0.0 del complemento de Amazon GameLift Servers para Unity, que usa el SDK del servidor 4.x o una versión anterior.
Una vez que haya integrado el servidor de juegos con Amazon GameLift Servers, cargue los archivos de compilación en una flota para que Amazon GameLift Servers pueda implementarlos para el alojamiento de juegos. Para obtener más información sobre cómo cargar el servidor en Amazon GameLift Servers, consulte Creación de una compilación de servidor de juegos para Amazon GameLift Servers.