Esta guía ayuda a los desarrolladores a probar, visualizar y optimizar sus juegos multijugador con el kit de herramientas de pruebas de Amazon GameLift. Con este kit, los desarrolladores pueden solucionar problemas, depurar y ajustar su infraestructura de Amazon GameLift. Esta guía ofrece la posibilidad opcional de usar jugadores virtuales que ejecuten el mismo código que los jugadores reales, de modo que los desarrolladores puedan comprobar el éxito de su juego antes de iniciar la producción.
Diagrama de la arquitectura
Paso 1
Amazon CloudFront proporciona acceso a la consola web del kit de herramientas, que se almacena en Amazon Simple Storage Service (Amazon S3). Los usuarios de la consola del kit de herramientas se autentican con grupos de usuarios de Amazon Cognito.
Paso 2
La consola web se conecta con una API de WebSocket de Amazon API Gateway, que llama a una función de AWS Lambda para procesar solicitudes y almacenar datos en Amazon DynamoDB.
Paso 3
La función de Lambda puede consultar y actualizar directamente la infraestructura de Amazon GameLift.
Paso 4
El oyente del juego recibe los eventos de GameLift a través de Amazon EventBridge y usa AWS Step Functions para sondear y recibir actualizaciones de la infraestructura de GameLift y Amazon CloudWatch.
Paso 5
El oyente del juego envía datos de eventos agregados a través de un bus de eventos de EventBridge personalizado. Los eventos los recibe una función de Lambda que almacena datos en DynamoDB y llama a API Gateway a fin de enviar datos a los usuarios de la consola web conectados para su visualización.
Paso 6
El usuario de la consola web también puede iniciar tareas de jugadores virtuales en AWS Fargate para simular clientes de juegos reales.
Paso 7
Cada tarea de los jugadores virtuales solicita una identidad de invitado de Amazon Cognito y se conecta a la API Gateway de los servicios del cliente del juego para solicitar el emparejamiento.
Paso 8
Las funciones de Lambda llaman a GameLift FlexMatch para iniciar el proceso de emparejamiento y colocar las coincidencias exitosas en una flota mediante colas de sesión de juego.
Paso 9
Las tareas de los jugadores virtuales se conectan con las instancias de la flota de GameLift para iniciar sus sesiones de juego.
Pilares de Well-Architected
AWS Well-Architected Framework le permite comprender las ventajas y desventajas de las decisiones que tome durante la creación de sistemas en la nube. Los seis pilares de este marco permiten aprender las prácticas recomendadas arquitectónicas para diseñar y explotar sistemas confiables, seguros, eficientes, rentables y sostenibles. Con la herramienta de AWS Well-Architected, disponible gratuitamente en la consola de administración de AWS, puede revisar sus cargas de trabajo con respecto a estas prácticas recomendadas al responder a un conjunto de preguntas para cada pilar.
El diagrama de arquitectura mencionado es un ejemplo de una solución que se creó teniendo en cuenta las prácticas recomendadas de una buena arquitectura. Para tener completamente una buena arquitectura, debe seguir todas las prácticas recomendadas de buena arquitectura posibles.
-
Excelencia operativa
Tanto el kit de herramientas como el juego de muestra están completamente implementados con la infraestructura como código, lo que reduce los errores de los procesos manuales y reduce el esfuerzo para implementar los cambios.
-
Seguridad
La API de consola web sin servidor de API Gateway está protegida con la autenticación basada en AWS Identity and Access Management (IAM) mediante un grupo de usuarios de Amazon Cognito.
El backend del juego de muestra sin servidor en API Gateway está protegido con una autenticación basada en IAM para validar de forma segura la identidad de invitado del jugador.
Los servidores de juegos de GameLift solo permiten el acceso a los puertos utilizados para la comunicación entre el cliente y el servidor. Las funciones de Lambda del backend solo tienen acceso a los servicios que necesitan.
-
Fiabilidad
Los datos se almacenan en tablas de DynamoDB y utilizan la asignación de capacidad bajo demanda para escalar automáticamente en función de los cambios en la demanda.
Los servicios de backend de la solución utilizan Lambda, que escala las instancias automáticamente.
El backend del juego de muestra admite el escalado automático basado en objetivos de GameLift para administrar los cambios en la demanda.
-
Eficiencia en el rendimiento
Mediante la utilización de tecnologías administradas y sin servidor, como API Gateway, Lambda, DynamoDB y Fargate, solo paga por los recursos que utiliza y se reduce el esfuerzo operativo necesario para mantener la solución.
La solución se puede implementar en la región que elija y utiliza CloudFront a fin de reducir la latencia para el usuario final de la consola web.
-
Optimización de costos
Las tareas de jugadores virtuales se pueden iniciar con Fargate Spot para reducir el costo de las pruebas.
La consola web y los backends del juego de muestra utilizan tecnologías sin servidor, por lo que solo paga por los recursos que utiliza.
El backend de la consola web utiliza las características de escalado nativas de Lambda y API Gateway, y las tablas de DynamoDB utilizan la asignación de capacidad bajo demanda para garantizar que los recursos coincidan con la demanda.
El backend del juego de muestra admite el escalado automático basado en objetivos de GameLift para minimizar los recursos necesarios.
-
Sostenibilidad
En la guía se utilizan ampliamente los servicios administrados, lo que traslada la responsabilidad de mantener una utilización media alta a AWS.
El backend del juego de muestra admite el escalado automático basado en objetivos de GameLift para minimizar los recursos necesarios. Al agrupar las sesiones de juego en la cantidad mínima de instancias del servidor, se mantiene una alta utilización de recursos de forma constante.
Al aprovechar los servicios administrados, la guía contribuye a reducir el impacto individual en el medio ambiente.
Puede reducir aún más el impacto en la sostenibilidad de los recursos no utilizados al iniciar servidores de juegos en las flotas de spot y lanzar tareas de jugadores virtuales en Fargate Spot.
Recursos de implementación
El código de muestra es un punto de partida. Está validado por el sector, es prescriptivo, pero no definitivo, y sirve como un pequeño adelanto para ayudarle a empezar.
Contenido relacionado
Título
Título
Descargo de responsabilidad
El código de muestra; las bibliotecas de software; las herramientas de línea de comandos; las pruebas de concepto; las plantillas; o cualquier otra tecnología relacionada (incluida cualquiera de las anteriores que proporcione nuestro personal) se brinda como contenido de AWS bajo el Contrato de cliente de AWS, o el contrato escrito pertinente entre usted y AWS (lo que sea aplicable). No debe utilizar este contenido de AWS en sus cuentas de producción, ni en producción ni en otros datos críticos. Es responsable de probar, proteger y optimizar el contenido de AWS, como el código de muestra, según corresponda para el uso de grado de producción en función de sus prácticas y estándares de control de calidad específicos. La implementación de contenido de AWS puede incurrir en cargos de AWS por crear o utilizar recursos con cargo de AWS, como ejecutar instancias de Amazon EC2 o utilizar el almacenamiento de Amazon S3.