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.
-
Inicialice el SDK del servidor mediante una llamada
InitSDK()
. -
Para preparar el servidor para aceptar una sesión de juego, llama
ProcessReady()
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. -
Amazon GameLift actualiza el estado del proceso del servidor a
ACTIVE
. -
Amazon GameLift llama
onHealthCheck
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.
-
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. -
Para activar una sesión de juego, llama
ActivateGameSession()
. 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.
-
Configura una función llamada
onProcessTerminate
para recibir solicitudes de Amazon GameLift y llamarProcessEnding()
. -
El estado del proceso cambia a
TERMINATED
.
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.