Agrega Amazon GameLift a tu proyecto de servidor de juegos de Unity - Amazon GameLift

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.

Agrega Amazon GameLift a tu proyecto de servidor de juegos de Unity

Este tema te ayuda a preparar tu servidor de juegos personalizado para alojarlo en Amazon GameLift. El servidor del juego debe poder notificar a Amazon su estado, iniciar y detener las sesiones GameLift de juego cuando se le solicite y realizar otras tareas. Para obtener más información, consulte Añade Amazon GameLift a tu servidor de juegos.

Requisitos previos

Antes de integrar el servidor de juegos, realice las siguientes tareas:

Configurar un nuevo proceso de servidor

Configura la comunicación con Amazon GameLift e informa que el proceso del servidor está listo para albergar una sesión de juego.

  1. Inicialice el SDK del servidor mediante una llamadaInitSDK().

  2. Para preparar el servidor para aceptar una sesión de juego, llamaProcessReady() con los detalles del puerto de conexión y de la ubicación de la sesión de juego. Incluye los nombres de las funciones de devolución de llamadas que invoca el GameLift servicio de AmazonOnGameSession(), como,OnGameSessionUpdate(),OnProcessTerminate(),OnHealthCheck(). Amazon GameLift puede tardar unos minutos en devolver la llamada.

  3. Amazon GameLift actualiza el estado del proceso del servidor aACTIVE.

  4. Amazon GameLift llamaonHealthCheck periódicamente.

El siguiente ejemplo de código muestra cómo configurar un proceso de servidor sencillo con Amazon GameLift.

//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; }

Iniciar una sesión de juego

Una vez completada la inicialización del juego, podrás iniciar una sesión de juego.

  1. Implemente la función de devolución de llamada onStartGameSession. Amazon GameLift invoca este método para iniciar una nueva sesión de juego en el proceso del servidor y recibir las conexiones de los jugadores.

  2. Para activar una sesión de juego, llamaActivateGameSession(). Para obtener más información sobre SDKs, consulteReferenciaGameLift del SDK (C#) del servidor de Amazon: Acciones.

El siguiente ejemplo de código ilustra cómo iniciar una sesión de juego con Amazon GameLift.

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

Notifica a Amazon GameLift cuando finalice una sesión de juego. Como práctica recomendada, cierra los procesos del servidor una vez finalizadas las sesiones de juego para reciclar y actualizar los recursos de alojamiento.

  1. Configura una función llamadaonProcessTerminate para recibir solicitudes de Amazon GameLift y llamarProcessEnding().

  2. El estado del proceso cambia aTERMINATED.

En el siguiente ejemplo, se 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);

Crear servidor, construir y subir a Amazon GameLift

Después de integrar tu servidor de juegos con Amazon GameLift, sube los archivos de compilación a una flota para que Amazon GameLift pueda implementarlos como alojamiento de juegos. Para obtener más información sobre cómo subir tu servidor a Amazon GameLift, consultaSube una compilación de servidor personalizada a AmazonGameLift.