Hoja de ruta de desarrollo para el alojamiento con contenedores Amazon GameLift Servers gestionados - 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.

Hoja de ruta de desarrollo para el alojamiento con contenedores Amazon GameLift Servers gestionados

Esta hoja de ruta le guía sobre cómo desarrollar una solución de alojamiento Amazon GameLift Servers gestionado para sus servidores de juegos en contenedores. Los contenedores gestionados son solo una de las soluciones de alojamiento que ofrece. Amazon GameLift Servers Para obtener más información sobre las opciones de alojamiento, consulteSoluciones de Amazon GameLift Servers.

Una solución de contenedor gestionado Amazon GameLift Servers tiene los siguientes componentes:

  • Una o más flotas de contenedores, que utilizan instancias de Amazon Elastic Compute Cloud (Amazon EC2) optimizadas para el alojamiento de juegos multijugador.

  • Una imagen contenedora con la versión de tu servidor de juegos, cargada en el repositorio privado de Amazon Elastic Container Registry (Amazon ECR). La versión del servidor de juegos está integrada con el SDK del servidor Amazon GameLift Servers y diseñada para funcionar en Linux.

  • Un servicio de back-end que interactúa con el Amazon GameLift Servers servicio en nombre de tus clientes de juegos. El servicio de backend utiliza la funcionalidad de la API del servicioAmazon GameLift Servers, que forma parte del SDK. AWS

  • Una cola de sesiones de Amazon GameLift Servers juego que procesa las solicitudes de nuevas sesiones de juego, busca los servidores de juegos disponibles en todas las flotas y pide al servidor de juegos que inicie una sesión de juego.

  • (Opcional) Un FlexMatch emparejador para crear partidas de varios jugadores y configurar sesiones de juego para ellas.

Esta hoja de ruta presenta una ruta simplificada para que sus servidores de juegos en contenedores funcionen correctamente con contenedores gestionados. Amazon GameLift Servers Cuando tenga los componentes necesarios, podrá continuar con la iteración del desarrollo del juego y personalizar la solución de alojamiento. A medida que se acerque el lanzamiento, consulte Preparar tu juego para su lanzamiento con Amazon GameLift Servers hosting: le resultará de ayuda a fin de preparar la solución de alojamiento para el uso en producción.

Acelera la incorporación con estas herramientas para contenedores gestionados:
  • El kit básico de contenedores agiliza la integración y la configuración de la flota. Añade funciones esenciales de gestión de sesiones de juego a tu servidor de juegos y utiliza plantillas preconfiguradas para crear una flota de contenedores y un proceso de despliegue automatizado para tu servidor de juegos. Tras la implementación, usa la Amazon GameLift Servers consola y las herramientas de la API para supervisar el rendimiento de la flota, gestionar las sesiones de juego y analizar las métricas.

  • Para los desarrolladores de Unreal Engine y Unity, usa los Amazon GameLift Serverscomplementos para integrar tu servidor de juegos y crear una flota de contenedores desde el entorno de desarrollo de tu motor de juego. Los flujos de trabajo guiados del plugin te ayudan a crear una solución rápida y sencilla con alojamiento en la nube mediante contenedores gestionados. Puedes basarte en esta base para crear una solución de alojamiento personalizada para tu juego.

Añade funciones a tu servidor de juegos para que pueda comunicarse con el Amazon GameLift Servers servicio cuando se despliegue como alojamiento.

  • Obtén el SDK del servidor Amazon GameLift Servers (versión 5.2 o superior) para tu proyecto de juego. El SDK del servidor está disponible en C++, C# y Go. Descarga el SDK del servidor para Amazon GameLift Servers. El SDK del servidor está disponible en C++, C# y Go.

  • Modifique el código del servidor de juegos para añadir la funcionalidad del SDK del servidor. Para obtener instrucciones, consulte Integración de juegos con servidores de juegos personalizados. Como mínimo, haga lo siguiente:

    • Agregue código para inicializar el Amazon GameLift Servers SDK y establecer una WebSocket conexión con el Amazon GameLift Servers servicio. Use la acción InitSdk() del SDK del servidor.

    • Agrega código para informar al Amazon GameLift Servers servicio cuando el proceso del servidor esté listo para albergar sesiones de juego. Use la acción ProcessReady() del SDK del servidor.

    • Implemente las funciones OnStartGameSession() de devolución de llamada requeridas yOnProcessTerminate(). Con estas funciones, los procesos del servidor de juegos pueden mantener una conexión con el Amazon GameLift Servers servicio, iniciar una sesión de juego cuando se les solicite y responder a una solicitud para finalizar el proceso del servidor de juegos. Amazon GameLift Servers

    • Agrega código para informar al Amazon GameLift Servers servicio cuando el proceso del servidor finalice una sesión de juego. Use la acción ProcessEnding() del SDK del servidor.

  • Empaquete la compilación del servidor de juegos. Construye tu servidor de juegos para que funcione en Linux. Prepara la compilación y otros archivos necesarios para ejecutar el servidor del juego. Si estás desarrollando en Windows, este paso puede implicar configurar un espacio de trabajo de Linux independiente o utilizar una herramienta como el subsistema de Windows para Linux (WSL). Necesitarás un entorno Linux para probar la versión del servidor de juegos y también para crear y probar las imágenes del contenedor.

  • Pruebe la integración del servidor de juegos. Comprueba que tu servidor de juegos integrado pueda conectarse al Amazon GameLift Servers servicio y responder a las solicitudes. Te recomendamos configurar una flota sencilla de Amazon GameLift Servers Anywhere con una estación de trabajo local como anfitrión de pruebas, tal y como se describe en. Configure las pruebas locales con Amazon GameLift Servers Anywhere Instala tu servidor de juegos en el host de prueba e inicia un proceso de servidor. Utilice la AWS CLI para solicitar una nueva sesión de juego y compruebe que el Amazon GameLift Servers servicio solicite correctamente al proceso del servidor que inicie una sesión de juego.

Cree un método para que el cliente de juego solicite unirse a una sesión de juego, obtenga la información de conexión y, a continuación, se conecte directamente a una sesión de juego alojada. El enfoque más común consiste en configurar una funcionalidad de servicio de back-end que sirva de intermediario entre el cliente del juego y el servicio. Amazon GameLift Servers Esto protege los recursos de alojamiento y le aporta un mayor control sobre la ubicación de los jugadores en las sesiones de juego.

  • Desarrolle una funcionalidad de servicio de backend para el alojamiento. El servicio de backend se comunica con el Amazon GameLift Servers servicio y entrega la información de conexión a un cliente del juego. Esta funcionalidad incluye iniciar sesiones de juego, colocar a los jugadores en juegos y recuperar la información de las sesiones de juego. Para obtener instrucciones, consulte Integración de juegos con servidores de juegos personalizados. Como mínimo, haga lo siguiente:

  • Añada una función en el cliente de juego que permita a los jugadores unirse a una sesión de juego alojada. El cliente del juego realiza las solicitudes a tu servicio de backend, no directamente a Amazon GameLift Servers él. Cuando el servicio de backend proporciona la información de conexión de la sesión de juego, el cliente de juego se conecta directamente con la sesión de juego para empezar a jugar.

  • Pruebe la integración del cliente de juego. Puedes usar tu flota Amazon GameLift Servers Anywhere existente con una estación de trabajo local para realizar las pruebas. Usa el nuevo servicio de back-end para solicitar una nueva sesión de juego y comprueba que: (1) el Amazon GameLift Servers servicio solicita correctamente al servidor que inicie una sesión de juego y (2) que un cliente de juego pueda conectarse a la sesión de juego.

Personaliza la forma en que Amazon GameLift Servers quieres procesar las solicitudes de nuevas sesiones de juego y localiza los servidores de juego disponibles para alojarlas. Amazon GameLift Serversrastrea automáticamente la disponibilidad de todos los servidores de juegos en todas las flotas. Cuando un cliente de juego envía una solicitud para unirse a una sesión de juego, Amazon GameLift Servers busca la «mejor ubicación posible» en función de un conjunto de prioridades definidas, como la latencia mínima, el coste y la disponibilidad.

  • Cree una cola de sesiones de juego para colocar una nueva sesión de juego con los servidores de juego disponibles. Las colas son el mecanismo principal para la ubicación de las sesiones de juego. Para obtener instrucciones, consulte Creación de una cola de sesión de juego.

    • Como mínimo, añada las flotas de Anywhere como destinos en la cola. Todos los demás ajustes son personalizaciones opcionales.

  • En el código del servicio de backend, convierta la llamada a CreateGameSession() en StartGameSessionPlacement(). Consulte Create a game session in a multi-location queue.

  • Cree un mecanismo para notificar a un cliente del juego cuando una sesión de juego ya se pueda unir. Durante el desarrollo, puedes sondear el estado de la sesión de juego mediante una llamada aDescribeGameSessionPlacement. Sin embargo, antes de utilizar una cola para procesar grandes volúmenes, deberá activar las notificaciones de eventos. Consulte Configuración de la notificación de eventos para la ubicación de sesiones de juego..

  • Añade el FlexMatch matchmaking (opcional). Crea un conjunto de reglas de emparejamiento y crea una configuración de emparejamiento que se adapte a tu cola de sesiones de juego. Para obtener información sobre cómo configurar un sistema de emparejamiento, consulta la guía para desarrolladores. Amazon GameLift ServersFlexMatch

  • Prueba el sistema de colocación. Puede utilizar su flota Amazon GameLift Servers Anywhere existente con una estación de trabajo local para realizar las pruebas. Usa el servicio de back-end para solicitar una nueva sesión de juego y verifica que el Amazon GameLift Servers servicio solicite correctamente al proceso del servidor que inicie una sesión de juego.

Una vez que hayas integrado correctamente el servidor de juegos, crea una imagen de contenedor con el ejecutable del servidor de juegos. Guárdala en un repositorio de Amazon Elastic Container Registry (Amazon ECR) para usarla con. Amazon GameLift Servers Para obtener instrucciones detalladas, consulta Cree una imagen de contenedor para Amazon GameLift Servers.

  • Obtenga la plantilla de Dockerfile para un contenedor de servidor de juegos (proporcionada por). Amazon GameLift Servers Modifica el archivo de los archivos de compilación de tu servidor de juegos.

  • Crea una imagen de contenedor para un servidor de juegos. Si trabaja en un entorno Linux, utilice la herramienta Docker para crear su imagen.

  • Envía la imagen de tu contenedor a Amazon ECR. Cree un repositorio público o privado en Amazon ECR, utilizándolo Cuenta de AWS y en el Región de AWS lugar en el que planea desplegar su flota de contenedores. Coloca la imagen de tu contenedor en él.

  • Pruebe las imágenes de sus contenedores con su flota de Anywhere (opcional). Es posible que desee probar las imágenes de sus contenedores de forma local antes de desplegarlas en una flota de contenedores alojada en la nube. Para realizar pruebas, puede utilizar su flota Amazon GameLift Servers Anywhere existente con una estación de trabajo local. Instala y ejecuta el contenedor del servidor de juegos y comprueba que: (1) el Amazon GameLift Servers servicio solicita correctamente al proceso de tu servidor que inicie una sesión de juego y (2) que un cliente de juego pueda conectarse a la sesión de juego.

Hasta ahora, has trabajado con una flota Anywhere autogestionada para probar e iterar los componentes del juego. La última parte de la solución consiste en configurar los recursos de alojamiento basados en la nube que necesitarás para un sistema de producción. Para empezar a planificar y configurar la producción, querrá configurar una flota de contenedores Amazon GameLift Servers gestionada y personalizarla para la producción.

  • Cree definiciones de grupos de contenedores. Las definiciones de grupos de contenedores describen la arquitectura de contenedores de una flota e identifican qué imágenes de contenedores se van a implementar. Consulte Crear una definición de grupo de contenedores para una flota de Amazon GameLift Servers contenedores. Cree su definición de grupo de contenedores en el mismo Región de AWS lugar donde se almacenan las imágenes del contenedor. Para obtener más información sobre cómo elegir la ubicación de una flota, consulte Ubicación de la flota. Como mínimo, haga lo siguiente:

    • Cree una definición de grupo de contenedores de servidores de juegos.

    • Añada una definición de contenedor con una imagen de contenedor a la versión de su servidor de juegos.

    • Configura un rango de puertos para los procesos del servidor de juegos del contenedor.

  • Cree una flota de contenedores gestionada. Cuando crea una flota, comienza Amazon GameLift Servers inmediatamente a implementar su servidor de juegos creado para hospedaje. Puede configurar muchos elementos de una flota administrada. Para obtener instrucciones, consulte Crea un Amazon GameLift Servers flota de contenedores gestionada. Como mínimo, haga lo siguiente:

    • Configure un rol de servicio AWS Identity and Access Management (IAM) para la flota de contenedores. Consulte Configurar un rol de servicio de IAM para Amazon GameLift Servers.

    • Especifique la definición del grupo de contenedores del servidor del juego que desea implementar en las instancias de la flota.

    • Usa los valores predeterminados cuando estén disponibles para todos los demás parámetros. Amazon GameLift Serverscalcula algunos parámetros para una configuración óptima.

  • Añada las flotas de contenedores a su cola. En la cola de tu sesión de juego, sustituye la flota de prueba de Anywhere por tu flota de contenedores gestionada.

  • Prueba el alojamiento de juegos con tus flotas de contenedores. En este punto, debería poder probar toda la solución. Inicia un cliente de juego y solicita una sesión de juego a través del servicio de backend. Obtén información de conexión y conéctate a una sesión de juego en la flota de contenedores.

  • Repite los despliegues de tu flota. Puede actualizar las definiciones de los grupos de contenedores y las configuraciones de la flota y, a continuación, implementar las actualizaciones en las flotas existentes.

Durante la preparación para el lanzamiento del juego, tendrá que afinar los recursos de alojamiento administrado. Estos son algunos de los factores en los que deberá pensar: