Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/

Optimice la gestión global de juegos

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

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.

El siguiente diagrama muestra cómo se ve un sistema de gestión de datos de juego sin MongoDB:

Arquitectura de referencia sin Atlas
haga clic para ampliar

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:

Arquitectura de referencia con Atlas
haga clic para ampliar

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.

El siguiente diagrama muestra los modelos de datos utilizados por esta solución:

Ilustración del enfoque del modelo de datos

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.

Para obtener instrucciones detalladas sobre cómo compilar esta solución, consulta el repositorio de GitHub.

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.

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.

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#

La README en el repositorio de GitHub contiene una versión más detallada del siguiente procedimiento.

1

Instale el SDK .NET 7 y configure su base de datos MongoDB Atlas.

2

Navegue a la carpeta rest_service en el repositorio. Modifica el archivo .env y comienza el backend usando el siguiente comando:

dotnet run --urls "http://0.0.0.0:8000"
3

Naveguen a la carpeta website. Modifica el archivo .env y ejecuta el siguiente comando para iniciar el sitio web:

dotnet run --urls "http://0.0.0.0:8001"
4

Naveguen a la carpeta game_client. Modifica el archivo .env en la carpeta Assets. Luego, ejecuta el juego.

  • 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.

  • Sigfrido Narvaez, MongoDB

  • Dominic Frei, MongoDB

  • Hubert Nguyen, MongoDB

  • Personalización de Medios Impulsada por IA con MongoDB y Búsqueda Vectorial

  • Flujos de trabajo editoriales con IA generativa

  • Resumen de video impulsado por IA generativa

Volver

Integridad de datos del namespace unificado

En esta página