Otimize o gerenciamento de dados de jogos com o MongoDB Atlas.
Casos de uso: Análise
Setores: Mídia
Produtos: MongoDB Atlas, Clusters Globais do MongoDB Atlas, Atlas Search, Charts, MongoDB Aggregation, MongoDB Atlas Data Federation
Parceiros: Unity Game Engine, Amazon EC2
Visão Geral da Solução
No setor de jogos, gerenciar dados como perfis de jogadores, inventário e estados de jogo é um desafio. Essa solução, chamada de Leafroids, usa o MongoDB Atlas para simplificar e melhorar o armazenamento de dados do jogo. Os Atlas Clusters mantêm perfis de jogadores, Atlas Charts permite dashboards de jogadores em tempo real e Atlas Search permite interações de pesquisa fáceis de usar. Essa solução permite escalabilidade global, gerenciamento eficiente de dados e design focado no usuário.
Arquiteturas de referência
O diagrama a seguir mostra como é um sistema de gerenciamento de dados de jogos sem o MongoDB:
Figura 1. Arquitetura de referência sem o Atlas
Essa abordagem envolve a criação de um roteador de query global, serviços de replicação entre vários nós em todo o mundo e a integração de diferentes opções de armazenamento. A arquitetura também requer um mecanismo de busca e uma ferramenta de visualização separados, com um serviço de query sem servidor para federar os dados na ferramenta de visualização.
Por outro lado, o diagrama a seguir exibe a arquitetura de gerenciamento de dados do jogo com MongoDB:
Figura 2. Arquitetura de referência com o Atlas
Com o MongoDB Atlas, você pode hospedar seus dados, gerar visualizações e realizar pesquisas em uma única plataforma usando o MongoDB Atlas Global Clusters, Online Archive, Atlas Search, Atlas Charts e Atlas Data Federation.
Abordagem do modelo de dados
O diagrama a seguir exibe os modelos de dados usados por esta solução:
Figura 3. Ilustração da abordagem do modelo de dados
Um Recording representa a jogatina de um jogador a partir de um evento, incluindo pontuações, jogadas e estatísticas. Cada Gravação armazena um subconjunto dos tipos de dados Player e Event utilizando o padrão de referência estendida. Esse design melhora o desempenho da query ao permitir a incorporação seletiva de campo . Além disso, oferece flexibilidade para adicionar e alterar dados no futuro.
Em jogos online massivos com bilhões de jogadores como o PUBG, a localidade dos dados é fundamental para uma experiência ideal e para atender aos requisitos legais. Para atender a essas necessidades, as collections Players e Recordings são fragmentadas com base nos códigos ISO da localização. O Atlas Global Clusters associa códigos ISO de país e subdivisão a zonas de shards em uma região de nuvem específica. Isso é usado para rotear solicitações de query e gravação, garantindo o melhor desempenho.
Construir a solução
Para obter instruções detalhadas sobre como criar essa solução, consulte o repositório do Github.
Recursos e integração
Esta solução fornece as seguintes funcionalidades de arquitetura:
Os Atlas Global Clusters garantem uma experiência de jogo ininterrupta, independentemente da localização geográfica do jogador. Para precisão dos dados, as informações dos jogadores são armazenadas com base nos códigos de país ISO.
O Atlas Online Archive descarrega automaticamente os dados do jogo com mais de 90 dias para otimizar o armazenamento. Isso é especialmente útil para jogos com milhões de jogadores e execuções de jogos, pois eles geram grandes quantidades de dados que podem aumentar os custos e impacto o desempenho. Além disso, esta solução utiliza Atlas Data Federation para que você possa acessar dados recentes e históricos.
Destaques da experiência do usuário
A solução oferece os seguintes destaques do usuário:
Um painel do jogador, apoiado pelo Atlas Charts, garante atualizações em tempo real sobre as façanhas e o progresso do jogo. Ao usar os recursos de filtragem e incorporação do Atlas Charts, você pode reutilizar painéis para jogadores e eventos.
O Atlas Search oferece recursos como preenchimento automático e correspondência difusa, permitindo que os jogadores pesquisem seus apelidos na interface do usuário da web.
Arquitetura
A arquitetura desta solução inclui os seguintes componentes:
Cliente do jogo: Desenvolvido usando Unity3D, .NET e C#
Servidor de jogo: construído sobre a API da Web ASP .NET, .NET, C# e o driver MongoDB .NET/C#
Site da Web: criado como um aplicativo de servidor Blozor usando .NET e C#
Passos
O README no repositório Github contém uma versão mais detalhada do seguinte procedimento.
Principais Aprendizados
Os clusters globais promover o dimensionamento: use clusters globais, leia do secundário e grave no primário para escalar horizontalmente e atender a um público global sem efeitos colaterais e latência.
O modelo de documento do MongoDB oferece flexibilidade e desempenho: aproveite o modelo de documento para armazenar todos os dados de uma única execução de jogo em um único documento, mas serialize um subconjunto durante o tempo de execução para aumentar o desempenho.
Dados de shard com base na localização do jogador: ao armazenar dados com base em códigos ISO, os Atlas Global Clusters permitem maior desempenho e escalabilidade mais fácil, permitindo adições de shards e zona sem interrupções de serviço.
Autor(a)
Sigfrido Narvaez, MongoDB
Dominic Frei, MongoDB
Hubert Nguyen, MongoDB