Optimiza 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
emparejar: Motor de Juego de Unity, Amazon EC2
Descripción general de la solución
En la industria del gaming, gestionar datos como los perfiles de los jugadores, el inventario y los estados del juego supone un desafío. Esta solución, denominada Leafsteroids, utiliza MongoDB Atlas para agilizar y mejorar el almacenamiento de datos de juegos. Atlas Clusters almacena los perfiles de los jugadores, Atlas Charts permite tableros de jugadores en tiempo real y Atlas Search permite interacciones de búsqueda fáciles de usar. Esta solución permite la escalabilidad global, la gestión eficiente de datos y un diseño centrado en el usuario.
Arquitecturas de Referencia
El siguiente diagrama muestra cómo es un sistema de gestión de datos de juegos 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
Un(a) Recording representa el juego de un jugador en un evento, incluyendo puntuaciones, movimientos y estadísticas. Cada grabación almacena un subconjunto de los tipos de datos Player y Event utilizando el patrón de referencia extendido. 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.
Funcionalidades 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 proporciona funcionalidades como autocompletado y coincidencia difusa, lo que permite a los jugadores buscar sus apodos en la Interfaz de Usuario web.
Arquitectura
La arquitectura de esta solución incluye los siguientes componentes:
Cliente de Juego: Desarrollado con Unity3D, .NET y C#
Servidor de juegos: construido sobre 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
El README en el repositorio de GitHub contiene una versión más detallada del procedimiento siguiente.
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