[Subtítulo SEO]
Esta guía ayuda a desarrolladores de videojuegos a crear juegos de mundos persistentes y alojar mundos virtuales en AWS con Amazon GameLift y componentes de backend sin servidor. La arquitectura utiliza componentes administrados y sin servidor para reducir el esfuerzo operativo y escalar en función de la demanda de los jugadores. Los desarrolladores pueden usar esta arquitectura para comenzar con el desarrollo de juegos de mundos virtuales persistentes en MacOS y Windows. Esta guía incluye la automatización de la infraestructura como código (IaC), los scripts de configuración para configurar las dependencias y un ejemplo de implementación de cliente/servidor de Unity.
Diagrama de la arquitectura
Tenga en cuenta que los pasos A a C representan el backend del sistema y los pasos 1 a 9 representan el frontend.
Paso A
Amazon EventBridge activa la función WorldManager de
AWS Lambda cada minuto. La función comprueba el estado de los mundos existentes a través de la API de Amazon GameLift.
Paso B
La función WorldManager de Lambda almacena el estado actual de las sesiones y los mundos en Amazon DynamoDB para brindar un acceso más rápido al backend.
Paso C
WorldManager consulta los mundos configurados desde DynamoDB y crea cualquier mundo que no esté en ejecución mediante una llamada a la API CreateGameSession de Amazon GameLift.
Paso 1
El cliente del juego solicita una identidad y credenciales del grupo de identidades de Amazon Cognito para firmar las solicitudes de API autorizadas.
Paso 2
El cliente del juego solicita la lista de mundos a través de Amazon API Gateway. API Gateway activa la función ListWorlds de Lambda que comprueba la información de la sesión del juego en la región definida desde DynamoDB.
Paso 3
El cliente del juego solicita unirse a un mundo específico en una región determinada mediante una llamada a la función JoinWorld de Lambda a través de API Gateway.
Paso 4
La función de Lambda crea una sesión de jugador para el jugador, aumenta la cantidad de jugadores para ese mundo en DynamoDB y envía la información de conexión al cliente del juego.
Paso 5
El cliente se conecta a la sesión de Amazon GameLift directamente a través del protocolo de control de transmisión (TCP) y envía el identificador de sesión del jugador.
Paso 6
La sesión de Amazon GameLift valida el identificador de sesión del jugador con el kit de desarrollo de software (SDK) del servidor de Amazon GameLift.
Paso 7
Amazon GameLift comprueba los datos de jugadores específicos del mundo y los actualiza según sea necesario. Almacenará la última ubicación del jugador cuando este abandone el juego.
Paso 8
La sesión de Amazon GameLift comprueba si hay una finalización programada en DynamoDB y finaliza si se solicita.
Paso 9
El servidor del juego envía registros y métricas a Amazon CloudWatch mediante el agente de CloudWatch.
Comenzar
Pilares de AWS Well-Architected Framework
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, que se encuentra 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
AWS Cloud Development Kit (AWS CDK) administra las implementaciones y actualizaciones mediante el uso de AWS CloudFormation para controlar las actualizaciones y reversiones de los recursos. Esto reduce los errores de los cambios de configuración manuales.
Para las actualizaciones de la flota de Amazon GameLift, CloudFormation creará una flota de reemplazo. Esperará a que el reemplazo esté completamente activo para aceptar el tráfico antes de finalizar la flota anterior.
-
Seguridad
El cliente del juego usa las identidades del grupo de identidades de Amazon Cognito para proteger el acceso a los servicios de backend. Esto se logra mediante la firma de las solicitudes con las credenciales de AWS Identity and Access Management (IAM) proporcionadas por el grupo de identidades. Solo se permiten solicitudes autenticadas en las API proporcionadas alojadas en API Gateway. Además, los clientes del juego solo pueden acceder a los datos de su propia cuenta.
-
Fiabilidad
En caso de que el servidor del juego (y, en consecuencia, el mundo del juego) se bloquee, la arquitectura reemplazará automáticamente el mundo por uno nuevo, que tendrá acceso a los mismos datos persistentes de ese mundo específico.
-
Eficiencia en el rendimiento
Amazon GameLift permite la comunicación directa entre el cliente y el servidor para optimizar el rendimiento casi en tiempo real. La arquitectura permite a los desarrolladores alojar servidores de juegos en varias regiones de AWS, lo que reduce la latencia entre el cliente del juego y el servidor.
-
Optimización de costos
La arquitectura aprovecha los componentes sin servidor, como API Gateway, Lambda y DynamoDB, que le permiten reducir los costos al pagar la cantidad exacta de recursos en función del tráfico de jugadores. Además, Amazon GameLift se puede configurar para escalarse en función de la demanda, de modo que tenga un conjunto mínimo de recursos no utilizados ejecutándose en un momento dado.
-
SostenibilidadEsta arquitectura utiliza servicios administrados y sin servidor a fin de ejecutar solo los recursos necesarios para la carga actual del jugador, lo que reduce el impacto individual en el medioambiente.
Contenido relacionado
[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.
Las referencias a servicios u organizaciones de terceros en esta Guía no implican un respaldo, patrocinio o afiliación entre Amazon o AWS y el tercero. La orientación de AWS es un punto de partida técnico, y puede personalizar su integración con servicios de terceros al implementar la arquitectura.