Integración de Amazon GameLift Servers en un proyecto de servidor de juegos de Unity - Amazon GameLift Servers

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.

  1. Inicie el SDK del servidor mediante una llamada a InitSDK()

  2. 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, como OnGameSession(), OnGameSessionUpdate(), OnProcessTerminate() o OnHealthCheck(). Amazon GameLift Servers podría tardar unos minutos en proporcionar una devolución de llamada.

  3. Amazon GameLift Servers actualiza el estado del proceso del servidor a ACTIVE.

  4. Amazon GameLift Servers llama a onHealthCheck de 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.

  1. 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.

  2. 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.

  1. Configure una función denominada onProcessTerminate para recibir solicitudes de Amazon GameLift Servers y llamar a ProcessEnding().

  2. 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.