Optimice la gestión de datos de juegos con MongoDB Atlas.
caso de uso: Análisis
Industrias: Medios
Productos: MongoDB Atlas, MongoDB Atlas clústeres globales, MongoDB Atlas búsqueda, MongoDB Atlas Charts, MongoDB agregación, MongoDB Atlas Data Federation
Socios: Motor de juego Unity, Amazon EC2
Resumen de la solución
En la industria de los videojuegos, gestionar datos como perfiles de jugadores, inventario y estados de juego es un desafío. Esta solución, llamada Leafsteroids, utiliza MongoDB Atlas para optimizar y mejorar el almacenamiento de datos de juego. Los clústeres Atlas almacenan los perfiles de los jugadores, los gráficos Atlas permiten paneles de jugadores en tiempo real y Atlas Search facilita las interacciones de búsqueda intuitivas. Esta solución permite escalabilidad global, una gestión eficiente de datos y un diseño centrado en el usuario.
Arquitecturas de Referencia
El siguiente diagrama muestra cómo se ve un sistema de gestión de datos de juego sin MongoDB:
Figura 1. Arquitectura de referencia sin Atlas
Este enfoque consiste en construir un enrutador de consultas global, servicios de replicación entre varios nodos en todo el mundo e integrar diferentes opciones de almacenamiento. La arquitectura también requiere un motor de búsqueda separado y una herramienta de visualización, con un servicio de query sin servidor para federar los datos en la herramienta de visualización.
En contraste, el siguiente diagrama muestra la arquitectura de gestión de datos de juegos con MongoDB:
Figura 2. Arquitectura de referencia con Atlas
Con MongoDB Atlas, puedes alojar tus datos, generar visualizaciones y realizar búsquedas en una única plataforma utilizando MongoDB Atlas Global Clusters, Online Archive, Atlas Search, Atlas Charts y Atlas Data Federation.
Enfoque de modelo de datos
El siguiente diagrama muestra los modelos de datos utilizados por esta solución:
Figura 3. Ilustración del enfoque del modelo de datos
A Recording representa la jugabilidad de un jugador en un evento, incluidos los puntajes, movimientos y estadísticas. Cada grabación almacena un subconjunto de los tipos de datos Player y Event utilizando el patrón de referencia ampliado. Este diseño mejora el rendimiento de las consultas al permitir la inserción selectiva de campos. Además, ofrece flexibilidad para agregar y cambiar datos en el futuro.
En juegos multijugador masivos en línea con miles de millones de jugadores como PUBG, la localización de los datos es fundamental para una experiencia óptima y cumplir con los requisitos legales. Para satisfacer estas necesidades, las colecciones Players y Recordings se particionan en función de los códigos ISO de ubicación. Atlas Clústeres globales asocia códigos ISO de países y subdivisiones a zonas de particiones en una región específica de la nube. Esto se utiliza para enviar las solicitudes de query y guardado, asegurando el mejor rendimiento.
Compilar la solución
Para obtener instrucciones detalladas sobre cómo compilar esta solución, consulta el repositorio de GitHub.
Características e integración
Esta solución proporciona las siguientes funcionalidades de arquitectura:
Atlas Global Clusters garantiza una experiencia de juego ininterrumpida independientemente de la ubicación geográfica del jugador. Para garantizar la precisión de los datos, la información del jugador se almacena basándose en los códigos de país ISO.
Atlas Online Archive descarga automáticamente los datos de juegos que tengan más de 90 días para optimizar el almacenamiento. Esto es especialmente útil para juegos con millones de jugadores y partidas, ya que estos generan grandes cantidades de datos que pueden aumentar los costos e impactar el rendimiento. Además, esta solución utiliza Atlas Data Federation para que puedas acceder tanto a los datos recientes como a los históricos.
Puntos destacados de la experiencia del usuario
La solución ofrece las siguientes ventajas para los usuarios:
Un tablero de jugador, apoyado por Atlas Charts, asegura actualizaciones en tiempo real sobre logros y progresos en el juego. Al utilizar las funcionalidades de filtrado e incrustación de Atlas Charts, puedes reutilizar tableros para jugadores y eventos.
Atlas Search ofrece funciones como autocompletar y coincidencia aproximada, lo que permite a los jugadores buscar sus apodos en la interfaz web.
Arquitectura
La arquitectura de esta solución incluye los siguientes componentes:
Cliente de Juego: Desarrollado con Unity3D, .NET y C#
Servidor de juegos: basado en ASP.NET Web API, .NET, C# y el controlador MongoDB.NET/C#
Sitio web: Diseñado como una aplicación de servidor Blazor usando .NET y C#
Pasos
La README en el repositorio de GitHub contiene una versión más detallada del siguiente procedimiento.
Lecciones clave
Los clústeres globales promueven el escalado: Use clústeres globales, lea desde secundarios y guarde en el primario para escalar horizontalmente y atender a una audiencia global sin efectos secundarios ni latencia.
El modelo orientado a documentos de MongoDB promueve la flexibilidad y el rendimiento: Aproveche el modelo orientado a documentos para almacenar todos los datos de una única partida de juego en un solo documento, pero serialice un subconjunto durante la ejecución para optimizar el rendimiento.
Particionar datos según la ubicación del jugador: Al almacenar datos según los códigos ISO, Atlas Global Clusters permite un mayor rendimiento y una escalabilidad más fácil, permitiendo la adición de particiones y zonas sin interrupciones del servicio.
Author
Sigfrido Narvaez, MongoDB
Dominic Frei, MongoDB
Hubert Nguyen, MongoDB