Hoja de ruta de desarrollo para el alojamiento con Amazon GameLift Servers Anywhere - Amazon GameLift Servers

Hoja de ruta de desarrollo para el alojamiento con Amazon GameLift Servers Anywhere

Este plan le muestra cómo desarrollar una solución de alojamiento para un juego multijugador, de modo que pueda usarla con sus propios recursos (hardware en las instalaciones o máquinas virtuales). 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 de Amazon GameLift Servers Anywhere, el servidor de juegos se aloja en los recursos de computación que usted gestiona y suministra. Puede crear una flota de Anywhere con las configuraciones que necesite y con una ubicación geográfica que coincida con la de los jugadores. Amazon GameLift Servers ofrece las siguientes características para las flotas de Anywhere:

  • Se encarga automáticamente del proceso de ubicación de las sesiones de juego, con base en su configuración; esto incluye lo siguiente:

    • Hace un seguimiento de la disponibilidad de los servidores de juegos en todas las flotas de Anywhere.

    • Procesa las solicitudes de juego desde el servicio del cliente de juegos y empareja las solicitudes de juego con los servidores disponibles.

    • Le pide a los servidores de juegos de las flotas de Anywhere que inicien las sesiones de juego.

    • Le devuelve los detalles de la conexión a los clientes de juego.

  • Recopila métricas de rendimiento para el proceso de ubicación de las sesiones, así como métricas de uso para los jugadores y las sesiones de juego.

  • Es compatible con el conjunto completo de características de emparejamiento de FlexMatch, así que puede crear un emparejador e integrarlo en el sistema de ubicación de las sesiones de juego.

  • Dispone del agente de Amazon GameLift Servers para gestionar tareas clave de administración de host en una flota de Anywhere.

  • Admite la combinación con flotas administradas de Amazon GameLift Servers, lo que permite disfrutar de una solución híbrida y flexible.

Una solución de Amazon GameLift Servers Anywhere 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 de Amazon GameLift Servers Anywhere con sus recursos de alojamiento (en las instalaciones o de otro tipo), administrados con las herramientas de implementación y administración de la configuración existentes (si lo prefiere, puede utilizar ). AWS Systems Manager.)

Este plan presenta una ruta simplificada para que el juego multijugador funcione correctamente con el alojamiento de Amazon GameLift Servers Anywhere. 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. Utilice la acción InitSdk() del SDK del servidor e incluya los parámetros del servidor, que son necesarios para una flota de Anywhere.

    • 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 estaciones de trabajo locales para hacer pruebas.

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 estado trabajando con dispositivos locales (registrados como recursos de computación de flotas de Anywhere) para probar los componentes del juego y hacer iteraciones con ellos. El siguiente paso consiste en configurar el tipo de flota que necesitará para un sistema de producción. Para estos recursos, utilice el agente de Amazon GameLift Servers para administrar algunas tareas importantes de administración del alojamiento en recursos de computación. Para obtener más información, consulta Uso el agente de Amazon GameLift Servers.

  • Obtenga el agente de Amazon GameLift Servers y añádalo al paquete de instalación del servidor de juegos. Obtenga y compile el código fuente del agente, que está disponible en el repositorio de GitHub del agente de Amazon GameLift Servers. Ponga el archivo ejecutable JAR resultante en el mismo directorio que el ejecutable de la compilación del juego.

  • Modifique el script de arranque del agente según sea necesario. Asegúrese de que el ejecutable del agente se inicie en cuanto el recurso de computación comience a ejecutarse. Consulte el archivo readme del repositorio del agente para obtener ayuda sobre la instalación y ejecución del agente en los recursos de computación de alojamiento. El comando de lanzamiento debería incluir opciones para especificar, como mínimo, la Región de AWS y el ID de flota de Anywhere, una ubicación personalizada y un nombre de recurso de computación.

    El agente se encarga automáticamente de las siguientes tareas, así que ya puede eliminarlas si ha estado gestionándolas con scripts:

    • Llama a RegisterCompute() para añadir el recurso de computación a una flota de Anywhere.

    • Llama a GetComputeAuthToken() para autenticar los servidores de juego cuando se conectan al servicio Amazon GameLift Servers. El agente se encarga de obtener y actualizar el token de autenticación; todos los procesos del servidor de juegos que se ejecutan en el recurso de computación podrán usarlo.

    • Inicia nuevos procesos de servidor en el recurso de computación, en función de un conjunto de instrucciones de tiempo de ejecución.

  • Cree una configuración de tiempo de ejecución para recursos de computación en la flota de Anywhere. Puede utilizar la consola de Amazon GameLift Servers o la CLI de AWS para crear o modificar las instrucciones de tiempo de ejecución de la flota. El agente sigue estas instrucciones y solicita actualizaciones de forma periódica al servicio Amazon GameLift Servers.

  • Configure o modifique la cola de sesiones de juego según sea necesario. Cree una nueva cola (o actualice una existente) para el uso de las flotas de Anywhere implementadas con el agente de Amazon GameLift Servers.

  • Pruebe la integración del agente con las flotas de Anywhere. Compruebe que el agente esté iniciando correctamente los procesos del servidor, de acuerdo con la configuración del tiempo de ejecución.

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:

  • Automatice el proceso de inicio y apagado de los recursos de computación según sea necesario, lo que incluye la instalación y la ejecución del software del servidor de juegos. Reciclar los recursos de computación resulta útil para garantizar que estos se actualicen periódicamente, y el apagado de dichos recursos cuando no son necesarios puede ahorrar costos.

  • Si el servidor de juegos necesita comunicarse con otros recursos de AWS, configure los roles de IAM para administrar el acceso. Consulte Conexión de un servidor de juegos alojado en Amazon GameLift Servers a otros recursos de AWS.

  • Decida dónde desea ubicar geográficamente los servidores de juegos. Añada ubicaciones remotas a las flotas administradas. Consulte Personalizaciones de recursos de alojamiento.

  • Optimice el rendimiento de las flotas; para ello, seleccione las configuraciones de los recursos de computación y, a continuación, configure las instrucciones de tiempo de ejecución de tal modo que se ejecute un número óptimo de procesos de servidor por cada recurso de computación.

  • Experimente con las opciones de ubicación de sesiones de juego para las flotas administradas, lo que incluye personalizar los ajustes de priorización. Consulte Personalización de colas de sesiones de juego.

  • Cree mecanismos para gestionar el escalado automático o manual de la capacidad, a fin de satisfacer la demanda prevista de jugadores. Piense en cuáles deberían ser los factores que determinen si el sistema debe aumentar o disminuir la cantidad de recursos de computación disponible para alojar sesiones de juego.

  • Diseñe e implemente medidas de conmutación por error a otros recursos cuando sea necesario.

  • Configure las herramientas de observabilidad del alojamiento, como los análisis y el registro. Consulte Supervisión de Amazon GameLift Servers.