Gerenciamento contínuo de dados de jogos com MongoDB Atlas, incluindo perfis globais, registros e painéis em tempo real.
Casos de uso: Análise
Setores: mídia
Produtos: Atlas, Atlas Global Clusters, Atlas Search, Atlas Charts, Aggregation Framework, Atlas Data Federation
Parceiros: Unity Game Engine, Amazon EC2
Visão Geral da Solução
Na indústria de jogos, gerenciar perfis de jogadores, inventário e estados de jogo em escala global é um desafio. O MongoDB Atlas combinado com o Leafsteroids fornece uma solução. Clusters globais lidam com perfis de jogadores de maneira integrada, independentemente da localização geográfica, e o MongoDB, com seu document model flexível, proporciona gerenciamento avançado de dados, possibilitando gravações detalhadas de jogos. Painéis de jogadores em tempo real por meio do Atlas Charts e interações intuitivas com o Atlas Search enriquecem a experiência do jogador. Com o MongoDB Atlas, o futuro é agora, em que a escalabilidade global, o gerenciamento de dados eficiente e o design centrado no usuário coexistem harmoniosamente na indústria de jogos.
Arquiteturas de referência
Sem MongoDB
Figura 1. Arquitetura de referência sem o Atlas
A abordagem tradicional para gerenciar dados e perfis de jogos em escala global envolve a construção de um roteador de consulta global, serviços de replicação entre vários nós em todo o mundo e integração em opções distintas de armazenamento quente. A arquitetura também requer um mecanismo de pesquisa e uma ferramenta de visualização separados, com um serviço de consulta serverless para federar nossos dados na ferramenta de visualização.
Com o MongoDB
Figura 2. Arquitetura de referência com o Atlas
Com o Atlas, uma única conexão com a plataforma moderna de banco de dados multinuvem do MongoDB Atlas é suficiente. Usando clusters globais, arquivos online, Atlas Search, Atlas Charts e Data Federation, temos um conjunto abrangente de funcionalidades para gerenciar dados de jogos em escala global.
Abordagem do modelo de dados
Figura 3. Ilustração da abordagem do modelo de dados
Uma gravação significa a jogabilidade de um jogador em um evento, incluindo pontuações, movimentos e estatísticas. Uso de .net (C#), um subconjunto do jogador e do evento é armazenado na gravação por meio do padrão de referência estendido, empregando subclasses e serialização personalizada. Esse design melhora o desempenho da query, permitindo a incorporação seletiva de campos, além de oferecer flexibilidade futura. Em jogos online massivos como “PUBG”, com bilhões de jogadores, a localização dos dados é crítica para uma experiência ideal e para atender aos requisitos legais. Players e gravações são fragmentados globalmente, utilizando códigos ISO baseados em localização. Clusters globais do Atlas propiciam um desempenho superior e fácil escalabilidade, permitindo adições de fragmentos e zonas sem interrupções de serviço.
Construindo a Solução
No centro da envolvente plataforma de jogos Leafsteroids está a robustez do MongoDB Atlas. Projetado como uma demonstração, o jogo é uma combinação harmoniosa de experiências interativas do usuário e gerenciamento de dados meticuloso. No repositório do GitHub, você encontrará instruções detalhadas sobre como criar essa solução.
Recursos e integração
MongoDB Atlas: o Leafsteroids aproveita totalmente a capacidade do Atlas Global Clusters. Isso garante que os perfis dos jogadores sejam gerenciados de maneira eficiente em grande escala, garantindo uma jornada de jogo ininterrupta, independentemente da localização geográfica do jogador. Para precisão dos dados, as informações do jogador são armazenadas usando códigos de país ISO e atribuições de fragmentos/zonas.
Na base do processamento de dados, está o modelo de documento flexível. Ele oferece suporte a gravações detalhadas de jogos e também incorpora o espírito de “dados que funcionam juntos vivem juntos”. Aderindo ao conceito de simplicidade operacional, outros conjuntos de dados são organizados em coleções descomplicadas.
Com o tempo, à medida que os jogos se tornam um grande sucesso com milhões de jogadores e execuções de jogos, a quantidade de dados gerados pode aumentar os custos e afetar o desempenho. O Leafsteroids utiliza uma estratégia de camadas de dados através do Atlas Online Archive para descarregar automaticamente os dados do jogo com mais de 90 dias para um armazenamento otimizado. O Atlas Data Federation permite acesso contínuo a dados recentes e históricos.
Destaques da experiência do usuário
Painel do jogador: um recurso de destaque, o dashboard personalizado do jogador, disponível online pelo Atlas Charts, garante atualizações em tempo real sobre conquistas e progresso no jogo. Utilizando os recursos de filtro e incorporação do Atlas Charts, os mesmos dashboards podem ser reutilizados para dashboards de jogador ou de evento. Isso melhora a experiência geral do usuário.
Atlas Search: outro componente crucial que aumenta a centralidade no usuário do jogo, permitindo que os jogadores localizem rapidamente seus apelidos na IU da Web usando os recursos de preenchimento automático e correspondência aproximada, promovendo uma interação mais intuitiva.
Arquitetura
Cliente do jogo: desenvolvido usando Unity3D, .NET e C#
Servidor do jogo: criado em ASP.NET Web API, .NET e C#
Website: criado como um aplicativo de servidor Blazor usando .NET, C#
Configurando seu clone
Pré-requisitos: instale o SDK do .NET 7 e configure o banco de dados MongoDB Atlas.
Executar serviço REST: navegue até a pasta rest_service, modifique o arquivo .env e execute o comando fornecido.
Lançar o Website: acesse a pasta do website, ajuste o arquivo .env e execute-o com o comando fornecido.
Execução do cliente do jogo: no diretório game_client, ajuste o arquivo .env nos ativos e inicie o jogo.
Aspectos do Jogo
Jogos (gravações): são representações da atividade de um jogador durante um evento no jogo. Armazenadas usando o padrão de referência estendido, essas gravações podem ser vinculadas aos objetos Player e Event completos, embora apenas campos seletivos sejam serializados no momento da persistência.
Perfis de jogadores e jogos: em jogos multijogador massivos, a localização de dados é fundamental. A solução Leafsteroids fragmenta globalmente as coleções Players e Gravações. Com clusters globais do Atlas, os códigos ISO de país e subdivisão são conectados às zonas, otimizando o roteamento de query e solicitações de gravação. Os benefícios incluem escalabilidade ilimitada e atualizações de distribuição de dados sem complicações.
Tecnologias e produtos utilizados
Plataforma de dados para desenvolvedores MongoDB
Tecnologias de parceiros
Considerações importantes
Use clusters globais, leia do secundário e grave no primário para dimensionar horizontalmente e atender a um público global sem efeitos colaterais e latência.
Aproveite o document model para armazenar todos os dados de uma única partida, em um único documento, mas serialize um subconjunto durante o tempo de execução para aumentar o desempenho.
As coleções de jogadores e gravações são “fragmentadas globalmente”. O primeiro segmento da chave de fragmento é a localização. O Atlas Global Clusters associa códigos ISO de país e subdivisão (ISO-3166-1 e ISO-3166-2) a zonas, sendo que uma zona é composta por 1+ fragmentos hospedados em uma região de nuvem e usada para rotear solicitações de query e gravação, garantindo o melhor desempenho. Também há suporte para queries globais.
Autor(a)
Sigfrido Narvaez, MongoDB
Dominic Frei, MongoDB
Hubert Nguyen, MongoDB