Creación de un entorno de pruebas basado en la nube
nota
En este tema se cubren únicamente las pruebas iterativas de juegos integrados en la versión 5.x del SDK del servidor de Amazon GameLift Servers. Si el juego usa la versión 4.x o anterior del SDK del servidor, consulte Prueba de la integración con Amazon GameLift Servers local.
Utilice una flota de Amazon GameLift Servers Anywhere para compilar y probar de forma iterativa los componentes de un juego en un entorno de alojamiento basado en la nube. Cree una flota de Anywhere con recursos de alojamiento y una conexión al servicio Amazon GameLift Servers, ejecute los servidores de juegos en ellos y pruebe las funciones del juego según sea necesario.
Implementación de una flota de Anywhere con el agente de Amazon GameLift Servers
Si la compilación del servidor de juegos está integrada con el SDK 5.x (o una versión posterior) de Amazon GameLift Servers, puede implementarla en una flota de basada en la nube con el agente de Amazon GameLift Servers. El agente es un proceso en segundo plano que administra los ciclos de vida de los servidores de juegos, así como otras tareas en todos los recursos de computación de una flota. Algunas de estas tareas son el registro del recurso de computación en una flota de Anywhere, la adquisición de un token de autenticación o el inicio y la parada de los procesos del servidor de juegos, de acuerdo con un conjunto de instrucciones. El agente se controla mediante una configuración de tiempo de ejecución de la flota, que puede actualizar en cualquier momento durante la vida útil de la flota (el agente se implementa automáticamente en las flotas de EC2 administradas). Para obtener más información y descargar el agente, consulte el repositorio de GitHub de Amazon GameLift Servers
Configuración de pruebas iterativas con Amazon EC2
Utilice el flujo de trabajo guiado de esta solución del kit de herramientas de Amazon GameLift Servers
En el repositorio de GitHub, encontrará un conjunto de scripts para automatizar la mayoría de los procesos de configuración de un entorno de pruebas con Amazon GameLift Servers Anywhere y el agente de Amazon GameLift Servers. También encontrará orientación para actualizar el entorno cuando tenga que probar una nueva compilación del servidor de juegos. Puede ejecutar un único script que implemente un entorno de pruebas con una compilación de servidor de juegos de muestra, o puede seguir los pasos para configurarlo con su propia compilación de servidor de juegos.
En este flujo de trabajo, empleará en todo momento la Consola de administración de AWS, y utilizará AWS CloudShell para ejecutar scripts y completar las tareas de línea de comandos.
nota
Para las tareas de este tutorial, necesita un usuario con una cuenta de AWS, con permisos para los siguientes servicios: Amazon GameLift Servers, AWS CloudShell, Amazon S3, AWS Systems Manager, Amazon EC2 y AWS Identity and Access Management. Los usuarios con acceso de nivel de administrador a la cuenta de AWS ya tienen los permisos necesarios.
El flujo de trabajo abarca las siguientes tareas:
-
Empaquetado de una la compilación de servidor de juegos para Amazon GameLift Servers.El flujo de trabajo incluye un script para crear un ejemplo de servidor de juegos en C++, que ya se ha integrado en el SDK 5.x del servidor de Amazon GameLift Servers y está listo para el alojamiento. Si lo prefiere, también puede trabajar con su propio proyecto de juego si ha completado la integración.
-
Configurar un bucket de Amazon Simple Storage Service para almacenar las compilaciones y dependencias de los servidores de juegos. Al crear nuevas versiones de compilaciones de juegos, podrá almacenarlas en S3 y utilizar los scripts para actualizar la flota de Anywhere a fin de probarlas.
Obtención y compilación del agente de Amazon GameLift Servers. El agente administra los procesos del servidor de juegos en un recurso de alojamiento basado en la configuración. Utiliza la misma lógica que el alojamiento de EC2 administrado por Amazon GameLift Servers, y se comporta de forma idéntica a este.
Configuración de una flota de Anywhere para sus recursos de alojamiento. Con una flota de Anywhere, puede utilizar el servicio Amazon GameLift Servers para alojar recursos que Amazon GameLift Servers no administre. En este paso, también establecerá la configuración del tiempo de ejecución, que le indica al agente de Amazon GameLift Servers cuándo y cómo debe iniciar los procesos del servidor de juegos.
Configurar una instancia de Amazon EC2. Este es el entorno de pruebas para llevar a cabo las pruebas iterativas. Es mucho más rápido utilizar una instancia de EC2 estándar que una instancia de Amazon GameLift Servers totalmente administrada (que está optimizada para el uso en producción). Con una instancia de EC2 estándar, puede actualizar el servidor de juegos de forma rápida y continua, según sea necesario.
-
Implementación de la compilación del servidor de juegos y el agente de Amazon GameLift Servers en la instancia de Amazon EC2.El flujo de trabajo proporciona un script que obtiene la última versión de la compilación del juego y todas las dependencias, y la instala en la instancia de EC2. En este flujo de trabajo, las dependencias incluyen el agente de Amazon GameLift Servers y el agente de CloudWatch.
-
Inicio del agente de Amazon GameLift Servers. Tras la instalación, el agente se inicia automáticamente y empieza a ejecutar las instrucciones. Entre ellos se incluyen:
-
Registrar la instancia de EC2 como recurso de computación en la flota de Amazon GameLift Servers Anywhere.
-
Establecer una conexión de WebSocket con el servicio Amazon GameLift Servers y obtener la configuración del tiempo de ejecución más reciente.
-
Iniciar los procesos del servidor de juegos con base en las instrucciones de la configuración del tiempo de ejecución. En este flujo de trabajo, el agente recibe la indicación de iniciar un único proceso del ejecutable del servidor de juegos.
-
-
Probar los escenarios de juego. Cuando el entorno de pruebas esté configurado y se haya instalado la última versión del servidor de juegos, podrá empezar las pruebas. El flujo de trabajo incluye varios pasos para realizar las pruebas, como el inicio de una sesión de juego. Acceda a los registros del servidor de juegos de CloudWatch para hacer un seguimiento del progreso mientras la sesión se inicia y se prepara para aceptar jugadores.
A medida que vaya desarrollando los componentes del juego, como un cliente de juego y un servicio de backend en el cliente, podrá incluirlos en los escenarios de prueba. Use un cliente de juego para solicitar una sesión de juego, recuperar los datos de conexión del servicio Amazon GameLift Servers y, luego, conectarse directamente a la sesión de juego.
Implementar una nueva compilación del servidor de juegos y repetir las pruebas. Durante el desarrollo del juego, podrá generar nuevas compilaciones del servidor de juegos y, a continuación, implementarlas rápidamente en el entorno de pruebas de EC2 para probarlas. Cárguelas en el bucket de Amazon S3 y utilice los scripts del flujo de trabajo para actualizar el entorno de pruebas.
Transición de un juego a las flotas administradas por Amazon GameLift Servers
Cuando haya completado las pruebas de desarrollo y esté listo para preparar el lanzamiento, es un buen momento para cambiar a las flotas administradas por Amazon GameLift Servers. Utilice las flotas administradas para afinar y probar los recursos de alojamiento de juegos. Implemente la solución de ubicación de las sesiones de juego (colas y emparejadores), seleccione las mejores ubicaciones y el mejor hardware de alojamiento (lo que incluye las flotas de spot) posible y elija una estrategia para escalar la capacidad. También es recomendable que empiece a usar AWS CloudFormation a fin de administrar de forma más eficiente los ciclos de vida de todos los recursos de alojamiento de juegos, lo que incluye las flotas, las colas y los emparejadores.
La transición de una flota de pruebas de Anywhere basada en la nube a una flota administrada por Amazon GameLift Servers es muy sencilla. No es necesario cambiar el código del juego y puede utilizar las mismas colas y los mismos emparejadores. Haga lo siguiente:
-
Creación de un recurso de compilación de Amazon GameLift Servers. Con una flota de prueba de Anywhere, tendrá que implementar manualmente la compilación y las dependencias del servidor de juegos en cada uno de los recursos de computación de la flota. Con una flota administrada, solo tiene que subir el paquete de compilación del juego a Amazon GameLift Servers: este lo implementará automáticamente en todos los recursos de computación de la flota. Consulte Creación de una compilación de servidor de juegos para Amazon GameLift Servers para obtener más información sobre cómo empaquetar los archivos de compilación del juego y cómo crear un recurso de compilación con archivos en un bucket de Amazon S3.
Cree una flota administrada. Cree una flota mediante la consola o la CLI de AWS, y especifique que se trata de una flota de EC2 administrada. Este tipo de flotas requiere ajustes de configuración adicionales; por ejemplo, debe especificar cuáles son los tipos de instancia y recursos de compilación. Puede usar la misma configuración de tiempo de ejecución para administrar el ciclo de vida de los servidores de juegos en todos los recursos de computación de la flota. Consulte Creación de una flota de EC2 administrada por Amazon GameLift Servers para obtener más información sobre la creación de una flota administrada.
Redireccione los alias de la flota (opcional). Si ha configurado alias para usarlos en las flotas de Anywhere, puede reutilizar los mismos alias para las flotas administradas. Consulte Creación de un alias de Amazon GameLift Servers para obtener más información sobre cómo crear o actualizar un alias.