Interacciones entre Amazon GameLift y el servidor del juego - 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.

Interacciones entre Amazon GameLift y el servidor del juego

En este tema se describen las interacciones entre el cliente del juego, un servicio de backend, un servidor de juegos y Amazon GameLift.

El siguiente diagrama ilustra las interacciones entre el cliente del juego, el servicio de backend, el GameLift SDK de Amazon, el servidor de juegos EC2 administrado, el SDK GameLift del servidor de Amazon y Amazon GameLift. Para obtener una descripción detallada de las interacciones que se muestran, consulte las siguientes secciones de esta página.


            El juego se aloja en el marco de los casos de uso que se detallan en las siguientes secciones.

Inicializar un servidor de juegos

Los siguientes pasos describen las interacciones que se producen cuando preparas el servidor de juegos para albergar sesiones de juego.

  1. Amazon GameLift Lanza el servidor en una instancia de Amazon Elastic Compute Cloud (Amazon EC2).

  2. El servidor del juego llama a:

    1. InitSDK() para inicializar el SDK del servidor.

    2. ProcessReady()para comunicar la preparación de la sesión de juego, la información de conexión y la ubicación de los archivos de registro de la sesión del juego.

    A continuación, el proceso del servidor espera a que Amazon le devuelva la llamada GameLift.

  3. Amazon GameLift actualiza el estado del proceso del servidor paraACTIVE permitir la ubicación de las sesiones de juego.

  4. Amazon GameLift comienza a llamar a laonHealthCheck devolución de llamada y continúa llamándola periódicamente mientras el proceso del servidor está activo. El proceso del servidor puede indicar que está bien o no en buen estado en un minuto.

Crear una sesión de juego.

Una vez inicializado el servidor de juegos, se producen las siguientes interacciones cuando creas sesiones de juego para alojar a tus jugadores.

  1. El servicio de backend llama a la operación del SDKStartGameSessionPlacement().

  2. Amazon GameLift crea un nuevoGameSessionPlacement ticket con el estadoPENDING y lo devuelve al servicio de backend.

  3. El servicio de backend obtiene el estado de un ticket de colocación de una cola. Para obtener más información, consulte Configurar la notificación de eventos para la colocación de las sesiones de juego.

  4. Amazon GameLift inicia la colocación de las sesiones de juego seleccionando una flota adecuada y buscando un proceso de servidor activo en una flota con sesiones de0 juego. Cuando Amazon GameLift localiza un proceso de servidor, Amazon GameLift hace lo siguiente:

    1. Crea unGameSession objeto con la configuración de la sesión de juego y los datos del jugador a partir de la solicitud de ubicación con unACTIVATING estado.

    2. Invoca laonStartGameSession devolución de llamada en el proceso del servidor. Amazon GameLift pasa información alGameSession objeto que indica que el proceso del servidor puede configurar la sesión de juego.

    3. Cambia el número de sesiones de juego del proceso del servidor a1.

  5. El proceso del servidor ejecuta la función deonStartGameSession devolución de llamada. Cuando el proceso del servidor está listo para aceptar las conexiones de los jugadores, llamaActivateGameSession() y espera las conexiones de los jugadores.

  6. Amazon GameLift actualiza elGameSession objeto con la información de conexión para el proceso del servidor. (Esta información incluye la configuración del puerto con la que se informó)ProcessReady(). Amazon GameLift también cambia el estado aACTIVE.

  7. El servicio de backend llamaDescribeGameSessionPlacement() para detectar el estado actualizado del ticket. A continuación, el servicio de backend utiliza la información de conexión para conectar el cliente del juego al proceso del servidor y unirse a la sesión del juego.

Añadir un jugador a un juego

Esta secuencia describe el proceso de añadir un jugador a una sesión de juego existente. También se pueden solicitar sesiones de juego como parte de una solicitud de ubicación de sesión de juego.

  1. El servicio de backend llama a la operación de la API del clienteCreatePlayerSession() con un ID de sesión de juego.

  2. Amazon GameLift comprueba el estado de la sesión de juego (debeACTIVE estarlo) y busca un espacio libre para jugadores en la sesión de juego. Si hay un espacio disponible, Amazon GameLift hace lo siguiente:

    1. Crea unPlayerSession objeto nuevo y establece el estado enRESERVED.

    2. Responde a la solicitud de servicio de backend con elPlayerSession objeto.

  3. El servicio de backend conecta el cliente del juego directamente al proceso del servidor con el ID de sesión del jugador.

  4. El servidor llama a la operación de la API del servidorAcceptPlayerSession() para validar el ID de sesión del jugador. Si se valida, Amazon GameLift pasa elPlayerSession objeto al proceso del servidor. A continuación, el proceso del servidor acepta o rechaza la conexión.

  5. Amazon GameLift realiza una de las siguientes acciones:

    1. Si se acepta la conexión, Amazon GameLift establece elPlayerSession estado enACTIVE.

    2. Si no se recibe ninguna respuesta en un plazo de 60 segundos desde laCreatePlayerSession() llamada original del servidor de fondo, Amazon GameLift cambia elPlayerSession estadoTIMEDOUT y vuelve a abrir el espacio de jugador durante la sesión de juego.

Apague un marco del

Al eliminar jugadores de una sesión de juego para crear espacio para que se unan nuevos jugadores, se producen las siguientes interacciones.

  1. Un jugador se desconecta del juego.

  2. El servidor detecta la conexión perdida y llama a la operación de la API del servidorRemovePlayerSession().

  3. Amazon GameLift cambia elPlayerSession estadoCOMPLETED y vuelve a abrir el espacio de jugador en la sesión de juego.

Apague la sesión de juego

Esta secuencia de interacciones se produce cuando un proceso del servidor cierra la sesión de juego actual.

  1. El servidor cierra la sesión del juego y el servidor.

  2. El servidor llamaProcessEnding() a Amazon GameLift.

  3. Amazon GameLift hace lo siguiente:

    1. Carga registros de sesión de juego en Amazon Simple Storage Service (Amazon S3).

    2. Cambia elGameSession estado aTERMINATED.

    3. Cambia el estado del proceso del servidor aTERMINATED.

    4. Recicla los recursos de la instancia.