Hoja de ruta de desarrollo para el alojamiento con EC2 administrado por Amazon GameLift Servers - Amazon GameLift Servers

Hoja de ruta de desarrollo para el alojamiento con EC2 administrado por Amazon GameLift Servers

En esta hoja de ruta se indica cómo desarrollar una solución de alojamiento de EC2 administrada por Amazon GameLift Servers para su juego multijugador. Amazon GameLift Servers ofrece varias opciones de alojamiento de juegos. Para obtener más información sobre estas opciones, consulte opciones de alojamiento de juegos de Amazon GameLift Servers.

Con el alojamiento administrado de Amazon GameLift Servers, el servidor de juegos se aloja en recursos de computación virtuales basados en Nube de AWS que Amazon GameLift Servers posee y opera en función de su configuración. Usted obtiene la seguridad, la fiabilidad y la disponibilidad global de las instancias de Amazon Elastic Compute Cloud (Amazon EC2), que están aún más optimizadas para su uso con el alojamiento de juegos multijugador. Amazon GameLift Servers simplifica la administración del alojamiento con herramientas como la implementación automática de servidores, la gestión del ciclo de vida y el escalado automático de la capacidad.

Una solución administrada de Amazon GameLift Servers cuenta con los siguientes componentes:

  • Una compilación de servidor de juegos, integrada con el SDK del servidor de Amazon GameLift Servers, para la implementación en todas las flotas.

  • Un cliente de juegos y servicio de backend, integrado con el SDK de AWS, para interactuar con el servicio Amazon GameLift Servers y solicitar sesiones de juego.

  • Una cola de Amazon GameLift Servers u otro mecanismo de ubicación para ubicar las nuevas sesiones de juego con servidores de juego disponibles en todas las flotas.

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

  • Una o más flotas administradas por Amazon GameLift Servers, con instancias de Amazon Elastic Compute Cloud (Amazon EC2) optimizadas para el alojamiento de juegos multijugador.

Este plan presenta una ruta simplificada para que el juego multijugador funcione correctamente con el alojamiento de EC2 administrado por 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 Preparativos para el lanzamiento con alojamiento en Amazon GameLift Servers: le resultará de ayuda a fin de preparar la solución de alojamiento para el uso en producción.

Iniciación rápida al uso del complemento de Amazon GameLift Servers para Unreal Engine y Unity

Para agilizar la implementación, pruebe el complemento de Amazon GameLift Servers para Unreal Engine y Unity. Proporciona flujos de trabajo de la IU guiados que le permitirán implementar rápidamente el servidor de juegos con una configuración mínima, para así poder probar los componentes del juego en acción. Entonces podrá basarse en ellos para crear una solución de alojamiento personalizada para su juego. Para obtener más información, consulta Preparación de un juego de Unreal o Unity con el complemento de Amazon GameLift Servers.

Añada funciones al servidor de juegos para que pueda comunicarse con el servicio Amazon GameLift Servers cuando se implemente para el alojamiento.

  • Obtenga el SDK del servidor de Amazon GameLift Servers (versión 5.x) para su proyecto de juego. El SDK del servidor está disponible en C++, C# y Go. Descarga de un SDK del servidor de Amazon GameLift Servers.

  • Modifique el código del servidor de juegos para añadir la funcionalidad del SDK del servidor. Para obtener instrucciones, consulte Preparación de un juego para su alojamiento con Amazon GameLift Servers. Como mínimo, haga lo siguiente:

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

    • Añada código para indicar al servicio Amazon GameLift Servers que el proceso del servidor está listo para alojar sesiones de juego. Use la acción del SDK del servidor ProcessReady().

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

    • Añada código para informar al servicio Amazon GameLift Servers cuando el proceso del servidor esté finalizando una sesión de juego. Use la acción del SDK del servidor ProcessEnding().

  • Empaquete la compilación del servidor de juegos. Cree un script de instalación con los archivos de compilación, las dependencias y el software de soporte. Consulte Empaquetado de los archivos de compilación del juego. Es recomendable utilizar un bucket de Amazon Simple Storage Service (Amazon S3) para almacenar las versiones de la compilación del juego.

  • Pruebe la integración del servidor de juegos. Para esta tarea, es recomendable configurar una flota de Amazon GameLift Servers Anywhere para una estación de trabajo local, tal y como se describe en Configuración de pruebas locales con Amazon GameLift Servers Anywhere. Para este paso, instale manualmente la compilación del servidor de juegos en el dispositivo de prueba e inicie un proceso de servidor. Utilice la CLI de AWS para solicitar una nueva sesión de juego y compruebe que el servicio Amazon GameLift Servers le pida 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 método más común consiste en configurar una funcionalidad de servicio de backend que sirva de intermediario entre el cliente de 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 servicio Amazon GameLift Servers y le envía datos de conexión a un cliente de 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 Preparación de un juego para su alojamiento con Amazon GameLift Servers. 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 de juego hace solicitudes al servicio de backend, no directamente a Amazon GameLift Servers. 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. Puede utilizar la misma flota de Amazon GameLift Servers Anywhere con una estación de trabajo local para hacer pruebas.

    Para un desarrollo iterativo rápido, o cuando trabaje con equipos de varias personas, le recomendamos que configure un entorno de pruebas basado en la nube. Esta solución del kit de herramientas de Amazon GameLift Servers imita el comportamiento de una flota administrada por Amazon GameLift Servers, pero le permite actualizar las compilaciones de los servidores de juegos con un tiempo de entrega mínimo.

Personalice cómo desea que Amazon GameLift Servers procese las solicitudes de nuevas sesiones de juego y ubique los servidores de juego disponibles para alojarlos. Amazon GameLift Servers monitoriza automáticamente la disponibilidad de todos los servidores de juego 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 el costo, la disponibilidad y un nivel mínimo de latencia.

Hasta ahora, ha trabajado con flotas de Anywhere autoadministradas para probar los componentes del juego y hacer iteraciones sobre ellos, y también ha refinado la ubicación de las sesiones de juego.La última parte de la solución consiste en configurar el tipo de recursos de alojamiento que necesitará para un sistema de producción. Para empezar a planificar y configurar la producción, es recomendable que pase a trabajar con una flota administrada por Amazon GameLift Servers.

  • Empaquete la compilación del servidor de juegos y cárguela en Amazon GameLift Servers. Cree un script de instalación con los archivos de compilación, las dependencias y el software de soporte. Consulte Creación de una compilación de servidor de juegos para Amazon GameLift Servers. Puede cargar la compilación en Amazon GameLift Servers mediante la consola o la CLI de AWS.

    Antes de cargar la compilación, decida en qué Región de AWS quiere crear la flota. Debe cargar la compilación en la misma región. Para obtener más información sobre cómo elegir la ubicación de una flota, consulte Ubicaciones geográficas.

  • Cree una flota de EC2 administrada. Cuando crea una flota, Amazon GameLift Servers comienza inmediatamente a implementar la compilación del servidor de juegos para el alojamiento. Puede configurar muchos elementos de una flota administrada. Para obtener instrucciones, consulte Creación de una flota de EC2 administrada por Amazon GameLift Servers. Como mínimo, haga lo siguiente:

    • Póngale un nombre a la flota y especifique qué compilación del juego cargado desea implementar.

    • Elija instancias bajo demanda para la flota y seleccione un tipo de instancia que esté disponible en la ubicación de la flota. Las flotas de spot son una opción valiosa, pero requieren un nivel adicional de diseño y configuración.

    • Cree una configuración de tiempo de ejecución para la flota. Como mínimo, especifique la ruta de lanzamiento del ejecutable para el servidor de juegos.

    • Especifique la configuración del puerto para permitir que el tráfico entrante acceda a los servidores de juegos.

  • Añada las flotas administradas a la cola. En la cola de sesiones de juego, sustituya las flotas de Anywhere por las flotas administradas.

  • Prueba el alojamiento de juegos con las flotas administradas. En este momento, debería poder probar todo el ciclo de alojamiento, con un cliente de juego que solicite una sesión de juego, obtenga los datos de conexión y se conecte correctamente a una sesión de juego.

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: