Cómo funciona el alojamiento con Amazon GameLift Servers - Amazon GameLift Servers

Cómo funciona el alojamiento con Amazon GameLift Servers

Amazon GameLift Servers es un servicio que proporciona servidores dedicados y de bajo costo, aprovisionamiento de infraestructura, escalado y administración de sesiones para juegos multijugador basados en sesiones. El servicio ofrece herramientas y características flexibles que puede personalizar para sus juegos o utilizarlas en colaboración con sus propios sistemas. Aproveche el alojamiento administrado por Amazon GameLift Servers para poder centrarse en crear experiencias de juego, en lugar de administrar las operaciones del servidor.

En este tema se describen los componentes básicos de una solución completa de alojamiento con Amazon GameLift Servers y cómo estos funcionan juntos para ofrecer sesiones de juego multijugador a los jugadores.

Componentes centrales de una solución de alojamiento de juegos

Una solución completa de alojamiento de Amazon GameLift Servers consta de varios componentes esenciales que funcionan juntos para ofrecer experiencias de juego multijugador. Algunos de estos componentes los debe compilar y administrar usted mismo, mientras que otros los proporciona Amazon GameLift Servers y se administran en función de sus opciones de configuración. Comprender cómo interactúan estos componentes y sus respectivas funciones es fundamental para desarrollar una solución de alojamiento de juegos eficaz. Los componentes incluyen:

  • El cliente del juego se ejecuta en los dispositivos de los jugadores.

  • El servicio de backend permite a los clientes de juego comunicarse con Amazon GameLift Servers para obtener información sobre las sesiones de juego y unirse a las partidas.

  • El software de servidor de juegos funciona con recursos de alojamiento de juegos y aloja sesiones de juego para un grupo de jugadores.

  • El sistema de ubicación inicia las sesiones de juego y empareja a los jugadores con las partidas.

  • Las flotas de alojamiento de juegos proporcionan servidores de juegos en una o más ubicaciones geográficas.

  • El sistema de administración de alojamiento de juegos supervisa el estado del alojamiento de juegos y administra la capacidad.

Arquitectura de juego con Amazon GameLift Servers administrado.

Cliente de juegos

Un cliente de juego es el software de juego que se ejecuta en el dispositivo de un jugador. Inicia la ubicación de jugadores en una sesión de juego comunicándose con un servicio de backend y se conecta directamente a un servidor de juegos para participar en el juego.

Funciones clave para el alojamiento de juegos
  • Enviar las solicitudes de incorporación al servicio de backend. Incluir datos relevantes de los jugadores y datos de las sesiones de juego como parte de la solicitud de incorporación.

  • Recopilar datos de latencia para el cliente de juego e incluir esa información en la solicitud de incorporación.

  • Recibir información de conexión de las sesiones de juego desde el servicio de backend y utilizarla para la conexión a un servidor de juegos.

  • Gestionar los escenarios de conexión de sesiones, como la verificación de jugadores, la aceptación de emparejamientos para Amazon GameLift Servers FlexMatch, la interrupción de sesiones, o las desconexiones.

Quién es el responsable

Usted añade la funcionalidad de alojamiento de juegos a su software de cliente de juegos y configura la comunicación con el servicio de backend.

Servicio de backend

El servicio de backend es una capa de coordinación entre los clientes de juego y el servicio Amazon GameLift Servers. Controla todas las comunicaciones con el servicio para solicitar la ubicación de las sesiones de juego y recuperar la información sobre las sesiones de juego y las sesiones de jugador. El uso de un servicio de backend es una práctica recomendada que mantiene una comunicación segura con el servicio en nombre de los clientes de juego y evita tener que compartir credenciales y permisos confidenciales de AWS con los clientes de juego.

El servicio de backend implementa una estrategia de agrupamiento de jugadores para las sesiones de juego. Dispone de una gran flexibilidad en cuanto a cómo se asigna a los jugadores a las sesiones de juego. Puede configurar un explorador de sesiones de juego para los jugadores o permitir los grupos definidos por los jugadores. También puede agrupar las solicitudes de sesión de juego a medida que vayan llegando, formar grupos de jugadores (posiblemente con una clasificación previa) e iniciar una sesión de juego para cada grupo. Con el sistema de emparejamiento de FlexMatch, puede formar emparejamientos de jugadores y reponer emparejamientos ya existentes.

Funciones clave para el alojamiento de juegos
  • Autenticar las comunicaciones de los clientes de juego.

  • Realizar solicitudes a Amazon GameLift Servers para iniciar nuevas sesiones de juego, obtener información de las sesiones de juego o unirse a sesiones de juego existentes. Incluir los datos relevantes de las sesiones de juego y de los jugadores en las solicitudes según sea necesario.

  • Si lo desea, crear solicitudes de sesiones de jugadores para supervisar más de cerca la disponibilidad de las sesiones de juego. Use las sesiones de los jugadores para reservar espacios para las sesiones de juego, validar a los jugadores cuando se conecten y hacer un seguimiento de las desconexiones de los jugadores.

  • Responda a los clientes de juego con los detalles de conexión de las sesiones de juego y otra información solicitada.

Quién es el responsable

Usted se encarga de crear el servicio de backend en un entorno administrado por usted para satisfacer los requisitos del juego e implementar la forma en que los jugadores entran en los juegos. Integre el SDK de AWS para realizar llamadas a la API de servicio de Amazon GameLift Servers. Si lo desea, cree el servicio de backend en AWS utilizando servicios como AWS Lambda, Amazon Simple Storage Service (Amazon S3) y Amazon Cognito.

Servidor de juegos

El servidor de juegos es un software de servidor personalizado que administra el estado del juego, procesa las acciones de los jugadores y sincroniza el juego entre varios jugadores conectados. El servidor de juegos mantiene la comunicación con el servicio Amazon GameLift Servers para administrar el alojamiento de las sesiones de juego.

Funciones clave para el alojamiento de juegos
  • Comuníquese con Amazon GameLift Servers para:

    • informar del estado (listo para alojar sesiones, listo para aceptar jugadores, estado general).

    • responder a llamadas de servicio (iniciar o finalizar sesiones de juego).

  • Administre el ciclo de vida de las sesiones de juego para alojar una sesión de juego a la vez por proceso.

  • Coordine con otros servicios de AWS para beneficiarse de una funcionalidad añadida.

  • Si lo desea, valide las conexiones de nuevos jugadores.

Quién es el responsable

Usted crea el software de servidor de juegos. Usted integra el SDK del servidor para Amazon GameLift Servers y añade funcionalidad para establecer una conexión con el servicio y permitir la administración de las sesiones del juego.

Flota de alojamiento de juegos

Una flota de alojamiento es un conjunto de recursos de computación que ejecutan sus servidores de juegos. Los recursos de la flota se pueden distribuir en varias ubicaciones geográficas para ofrecer a los jugadores una experiencia de juego de baja latencia, estén donde estén. Cada recurso de flota ejecuta uno o más procesos del servidor del juego, que se comunican directamente con Amazon GameLift Servers ellos. Cada proceso del servidor de juegos puede alojar una sesión de juego a la vez.

Las características y la funcionalidad de la flota varían según el tipo de alojamiento de la flota. Las flotas administradas implementan recursos en Nube de AWS y son administradas por Amazon GameLift Servers. Las flotas Anywhere son recursos de computación proporcionados por el cliente que se administran desde fuera de Amazon GameLift Servers.

Funciones clave para el alojamiento de juegos
  • Aprovisione recursos de alojamiento de servidores de juegos.

    • Las flotas administradas implementan instancias Amazon EC2 basadas en la nube con una amplia gama de ajustes de configuración. La configuración de la flota determina la potencia de computación de cada instancia de la flota, la ubicación física de las instancias y otros detalles. Las flotas administradas añaden o eliminan instancias de EC2 en respuesta al escalado de la capacidad

    • Las implementaciones de flotas de Anywhere se autoadministran. La flota puede consistir en hardware físico u otros recursos en la nube y configurarse según sea necesario.

  • Instale el entorno de tiempo de ejecución y el software del servidor de juegos.

    • Las instancias de flota de Amazon EC2 administradas se implementan con la compilación de servidor de juegos y una imagen de máquina de Amazon (AMI) con un entorno de tiempo de ejecución compatible.

    • Las instancias de flotas de contenedores administradas se implementan con la versión del servidor de juegos y una AMI optimizada para contenedores con herramientas de Docker y otros componentes para que funcionen con Amazon ECS.

    • En cualquier lugar, las flotas se implementan con el sistema operativo y el software de servidor de juegos que elija.

  • Gestione el ciclo de vida de los procesos del servidor de juegos. Aplica instrucciones de tiempo de ejecución preconfiguradas para iniciar y detener los procesos en cada recurso de la flota.

Quién es el responsable

Esto depende del tipo de alojamiento de la flota:

  • Flotas de Amazon EC2 administradas: usted carga la compilación del servidor de juegos en Amazon GameLift Servers, que la almacena para implementarla en las instancias de flota. Amazon GameLift Servers proporciona la infraestructura de Nube de AWS de la flota. Configura la flota y le indica cómo ejecutar los servidores del juego en cada instancia de la flota.

  • Flotas de contenedores gestionadas: empaquetas las instrucciones de compilación y tiempo de ejecución del servidor de juegos en una imagen de contenedor para guardarla en Amazon ECR para su implementación. Amazon GameLift Servers proporciona la infraestructura de la flota de Nube de AWS. Usted proporciona una arquitectura de contenedores y configura la flota para alojar sus contenedores.

  • Flotas en cualquier lugar: usted aprovisiona toda la infraestructura y administra la implementación del software del servidor. Crea las flotas de Anywhere con las que conectar tus recursos activos de alojamiento de juegos con Amazon GameLift Servers.

Sistema de ubicación de sesiones de juego

El sistema de ubicación de las sesiones de juego localiza los servidores de juego disponibles para alojar nuevas sesiones de juego. El sistema utiliza información en tiempo real sobre la disponibilidad del servidor del juego para tomar decisiones de ubicación óptimas.

En Amazon GameLift Servers, las colas son el mecanismo principal para la ubicación de las sesiones de juego. Una cola de sesiones de juego utiliza algoritmos, que puede configurar, para colocar las sesiones de juego y obtener el mejor resultado posible. Puede priorizar las ubicaciones en función de factores como el menor costo de alojamiento y la menor latencia de jugadores, así como configurar una cola para buscar en varias ubicaciones geográficas. Como alternativa a las colas, puede designar una flota específica para alojar las sesiones de juego.

Funciones clave para el alojamiento de juegos
  • Procesa las solicitudes de ubicación de sesiones de juego recibidas del servicio de backend.

  • Realice las ubicaciones en función de la información en tiempo real sobre la disponibilidad de los recursos de alojamiento.

  • Usa los datos de latencia de los jugadores y otros datos para priorizar las opciones de ubicación (solo colas)

  • Solicita los procesos del servidor del juego para iniciar nuevas sesiones de juego.

  • Actualice la información de la conexión de la sesión de juego cuando la sesión de juego esté lista para aceptar jugadores.

  • Si lo desea, puede configurar el emparejamiento de FlexMatch para crear partidas de jugadores y solicitar la ubicación de las sesiones de juego para las partidas.

Quién es el responsable

Amazon GameLift Servers suministra el sistema de ubicación. El comportamiento de ubicación se configura mediante la forma en que el servicio de backend realiza las solicitudes de ubicación y, opcionalmente, configurando las colas de las sesiones de juego y los emparejadores de FlexMatch. Utilice la consola de Amazon GameLift Servers, el SDK de AWS o la AWS CLI para crear y configurar colas y emparejadores para el juego.

Sistema de gestión de alojamiento de juegos

El sistema de gestión del alojamiento de juegos es la columna vertebral operativa que coordina y supervisa todos los aspectos de su solución de alojamiento de juegos. Este sistema proporciona la inteligencia y la automatización que hacen posibles las capacidades de colocación y escalado de Amazon GameLift Servers.

Funciones clave para el alojamiento de juegos
  • Realiza un seguimiento del estado y la disponibilidad en tiempo real de los procesos de los servidores de juegos, las sesiones de juego y las sesiones de los jugadores en todas las flotas para facilitar la ubicación de las sesiones de juego y el escalado automático de la capacidad.

  • Supervisa el estado y el rendimiento de la flota.

  • Recopile y analice las métricas de actividad del alojamiento de juegos.

  • Proporcione herramientas de escalado de capacidad, incluido el escalado automático en función de la demanda de los jugadores y la utilización de la flota.

  • Gestione las actualizaciones del software del servidor de juegos y las instrucciones de tiempo de ejecución.

Quién es el responsable
  • Flotas gestionadas: Amazon GameLift Servers proporciona un seguimiento de la disponibilidad, métricas sobre la actividad de alojamiento de juegos y el rendimiento del hardware, y herramientas de escalado de la capacidad. Utilice las herramientas de AWS disponibles para administrar las actualizaciones del software del servidor de juegos, modificar las instrucciones de tiempo de ejecución y personalizar el uso de las métricas (por ejemplo, configurar CloudWatch para la supervisión). Puede configurar una política de escalado personalizada y modificarla según sea necesario.

  • Flotas de Anywhere: Amazon GameLift Servers proporciona un seguimiento de la disponibilidad y métricas de la actividad de alojamiento de juegos. Tú gestionas los cambios en la configuración de la flota, incluidas las actualizaciones del software del servidor de juegos y las instrucciones de tiempo de ejecución. Usted crea sistemas para monitorear el rendimiento de la flota y administrar el escalado de la capacidad de la flota.

Cómo funcionan juntos los componentes

Cuando se implementa un cómputo de alojamiento de juegos
  • Software de servidor de juegos instalado: el proceso se instala con un entorno de tiempo de ejecución y la compilación del servidor de juegos

  • Lanzamientos del servidor de juegos: se lanza al menos una instancia del ejecutable del servidor de juegos, con parámetros de inicio opcionales, en el equipo.

  • El servidor de juegos se conecta a Amazon GameLift Servers: como parte de sus acciones de inicio, el proceso del servidor de juegos llama al SDK del servidor para inicializar una conexión con el servicio.

  • El servidor de juegos informa que está listo para albergar una sesión de juego: el proceso del servidor de juegos completa las acciones de inicio y, a continuación, llama al SDK del servidor para informar de que está listo. Comienza a informar sobre el estado de salud en función de su configuración.

  • Amazon GameLift Servers monitoriza la disponibilidad: el servicio registra la disponibilidad del servidor del juego en función de la ubicación de la sesión de juego. También actualiza las métricas de las flotas, las instancias y las sesiones de juego para hacer un seguimiento del uso y la capacidad.

  • El servidor del juego espera a que se le asigne una sesión de juego: el proceso del servidor del juego mantiene su estado inactivo mientras espera a que se le solicite iniciar una sesión de juego.

Cuando un jugador quiere unirse a una partida
  • El jugador inicia una partida: un jugador inicia tu cliente de juego, se autentica en tu servicio de backend y solicita unirse a una partida.

  • El servicio de backend solicita una sesión de juego: su servicio de backend llama a Amazon GameLift Servers para buscar o crear una sesión de juego adecuada, en función de su estrategia de agrupamiento de jugadores. La solicitud puede incluir datos del jugador o del juego para usarlos en la sesión de juego.

  • Amazon GameLift Servers coloca la sesión de juego: al iniciar una nueva sesión de juego, el sistema de ubicación identifica una ubicación óptima para albergar la sesión y selecciona un proceso de servidor de juego disponible. El servicio solicita al proceso seleccionado que inicie una nueva sesión de juego y transmite los datos del jugador o del juego. Si el emparejamiento de FlexMatch está en uso, el emparejador primero crea una partida y, a continuación, solicita la ubicación de la partida.

  • El servidor del juego inicia la sesión de juego: el servidor del juego inicia los pasos para iniciar una sesión de juego. Una vez completado, informa a Amazon GameLift Servers de que está listo para aceptar conexiones de jugadores.

  • Información de conexión enviada al cliente del juego: cuando el servidor del juego actualiza su estado, Amazon GameLift Servers proporciona la información de conexión de la sesión del juego. El servicio de backend recibe esta información y la entrega al cliente de juegos.

  • El jugador se conecta a la sesión de juego: el cliente de juego utiliza la información de conexión para conectarse directamente al servidor de juegos y empezar a jugar.

  • Amazon GameLift Servers supervisa el estado de la sesión de juego: el proceso del servidor de juegos informa sobre el estado general, el estado de conexión opcional del jugador y el estado de la sesión de juego para hacer un seguimiento de la disponibilidad de las sesiones de juego en curso.

  • El proceso del servidor del juego se cierra: el proceso del servidor del juego finaliza la sesión de juego, informa del estado y, a continuación, se apaga automáticamente.