View a markdown version of this page

Serverless-based arquitectura de backend del juego - Lente de la industria del juego

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Serverless-based arquitectura de backend del juego

Muchos desarrolladores de juegos no quieren gestionar la infraestructura y prefieren crear sus juegos utilizando tecnologías que les permitan centrarse en el software. En este caso, se recomienda una arquitectura sin servidor, ya que permite crear y lanzar funciones con mayor rapidez y con menos gastos operativos. Las arquitecturas sin servidor se diseñan con servicios en la nube que pueden escalarse de forma dinámica en función de la demanda sin necesidad de configurar, administrar y escalar los servidores. La siguiente arquitectura de referencia ilustra cómo crear un juego con una arquitectura sin servidor.

Serverless-based arquitectura de referencia del backend del juego

Serverless-based arquitectura de referencia del backend del juego

Esta arquitectura de referencia ilustra un juego de preguntas y respuestas basado en la web que ofrece funciones para un jugador y multijugador.

  • Autenticación de jugadores: los jugadores se autentican con Amazon Cognito, que proporciona una autenticación segura con un directorio de usuarios para gestionar la identidad de los jugadores.

  • La lógica del juego como funciones sin servidor: las funciones del juego y la lógica empresarial de fondo se ejecutan como AWS Lambda funciones que se inician en respuesta a eventos, lo que reduce los costes, ya que solo se paga cuando se ejecuta la función. Lambda te ofrece la flexibilidad de escribir cada función del juego como un microservicio independiente mediante el lenguaje de programación que elijas. Por ejemplo, puede optar por desarrollar funciones de Lambda de.NET si tiene experiencia en el uso de C# para crear juegos de Unity, o puede optar por desarrollar funciones de Node.js Lambda si desea programar tanto un frontend como un backend para un juego basado en la web. JavaScript

  • Almacén de datos NoSQL para datos de juegos y jugadores: utilice DynamoDB para almacenar sus datos de jugadores y juegos, ya que está diseñado específicamente para almacenar grandes cantidades de datos de microservicios. Como se ilustra en esta arquitectura, se recomienda utilizar almacenes de datos independientes para las necesidades de almacenamiento de datos de cada función del juego, lo que facilita la supervisión y la gestión de las funciones de forma independiente. Esto también crea límites de separación si tu equipo cambia la titularidad de una función o un servicio. En esta arquitectura de referencia, las tablas de DynamoDB se utilizan para almacenar datos como el estado de la conexión, los detalles del juego, el progreso del jugador y la información sobre la clasificación.

  • Modo de juego para un solo jugador: las funciones para un jugador permiten a los jugadores realizar acciones como seleccionar y jugar una partida y ver la clasificación. Estas funciones se implementan como servicios de backend RESTful alojados en una API HTTP de Amazon API Gateway que invoca la función Lambda adecuada para obtener y configurar datos en las tablas de DynamoDB. Cuando finaliza el juego, el backend también envía notificaciones a los temas de Amazon SNS que inician funciones de Lambda de forma asincrónica para almacenar el progreso y las estadísticas del jugador.

  • Modo de juego multijugador: las funciones del juego multijugador requieren que los jugadores puedan interactuar con el juego para comunicarse punto a punto, así como transmitir y recibir actualizaciones de otros jugadores conectados. Una WebSockets implementación es adecuada para la comunicación punto a punto en un juego ligero, como las trivialidades. Los jugadores pueden establecer una WebSockets conexión con Amazon API Gateway WebSockets, que administra la conexión y solo invoca las funciones de Lambda cuando hay mensajes que enviar o recibir para un jugador. En los casos en los que es necesario que los jugadores se comuniquen de uno a varios jugadores, AWS IoT Core admite el uso de mensajes a WebSockets través de MQTT, lo que permite a los clientes suscribirse a los temas y actuar en función de los mensajes que reciben. En esta arquitectura, WebSockets los MQTT se utilizan para facilitar casos prácticos, como la retransmisión en directo de las actualizaciones del juego y la formulación de preguntas a los jugadores conectados. Como alternativa AWS IoT, puedes elegir Redis Pub/Sub para la entrega de mensajes o Redis Streams si necesitas retener los mensajes.

  • Usa las funciones de VPC-enabled Lambda para acceder a los recursos de tus subredes privadas: configura las funciones de VPC-enabled Lambda para acceder a los recursos de las subredes privadas de tu VPC, como Amazon, que se utilizan para reducir los tiempos de consulta de conjuntos de datos de ElastiCache baja latencia, como las tablas de clasificación en tiempo real.

Para obtener más información, consulta la guía para el alojamiento de backend de juegos personalizados en. AWS