Docs 菜单
Docs 主页
/

简化全球游戏管理

使用MongoDB Atlas简化游戏数据管理。

使用案例: 分析

行业: 媒体

产品: MongoDB AtlasMongoDB Atlas Global ClustersMongoDB Atlas SearchMongoDB Atlas ChartsMongoDB AggregationMongoDB Atlas Data Federation

合作伙伴: Unity 游戏引擎Amazon EC2

在游戏行业,管理玩家个人资料、库存和游戏状态等数据是一项挑战。该解决方案名为 Leafsteroids,使用MongoDB Atlas来简化和改进游戏数据存储。Atlas集群保存玩家个人资料, Atlas Charts启用实时玩家仪表盘, Atlas Search支持用户友好的搜索交互。该解决方案支持全局可扩展性、高效的数据管理和以用户为中心的设计。

下图显示了没有MongoDB的游戏数据管理系统:

参考架构(不含 Atlas)
点击放大

图 1.不含 Atlas 的参考架构

这种方法包括构建全局查询路由器、全球多个节点之间的复制服务以及集成不同的存储选项。该架构还需要一个单独的搜索引擎和可视化工具,并使用无服务器查询服务将数据联合到可视化工具中。

相比之下,下图显示了使用MongoDB 的游戏数据管理架构:

包含 Atlas 的参考架构
点击放大

图2. 包含 Atlas 的参考架构

借助MongoDB Atlas ,您可以使用MongoDB Atlas Global Clusters、Online 存档、 Atlas Search、 Atlas Charts和Atlas Data Federation在单个平台上托管数据、生成可视化并执行搜索。

下图显示了此解决方案使用的数据模型:

数据模型方法插图

图 3.数据模型方法插图

Recording 表示玩家在某一事件中的游戏玩法,包括得分、着法和统计数据。每个记录都使用扩展引用模式存储 PlayerEvent 数据类型的子集。这种设计通过允许选择性字段嵌入来提高查询性能。此外,它还为将来添加和更改数据提供了灵活性。

在像 PUBG 这样拥有数十亿玩家的大型在线游戏中,数据局部性对于获得最佳体验和满足法律要求至关重要。为了支持这些需求,PlayersRecordings 集合会根据位置ISO 代码分片的。Atlas Global Clusters将 ISO 国家/地区和细分代码与特定云地区中的分片区域相关联。用于路由查询和写入请求,确保最佳性能。

有关如何构建此解决方案的详细说明,请参阅Github存储库。

该解决方案提供以下架构功能:

  • 无论玩家位置, Atlas Global Clusters都可确保游戏之旅不间断。为了数据的准确性,玩家信息是根据 ISO 国家/地区代码存储的。

  • Atlas Online Archive会自动卸载超过 90 天的游戏数据,以优化存储。这对于拥有数百万玩家和游戏运行的游戏特别有用,因为这些游戏会生成大量数据,可能会增加成本并影响性能。此外,该解决方案使用Atlas Data Federation,因此您可以访问权限最新和历史数据。

该解决方案为用户提供了以下亮点:

  • Atlas Charts支持的玩家仪表盘可确保实时更新游戏中的成就和进度。通过使用Atlas Charts的过滤和嵌入功能,您可以根据玩家和事件重新调整仪表盘的用途。

  • Atlas Search提供自动完成和模糊匹配等功能,允许玩家在 Web用户界面中搜索自己的昵称。

该解决方案的架构包括以下组件:

  • 游戏客户端:使用Unity3D、 .NET和C#开发

  • 游戏服务器:基于 ASP .NET Web API、 .NET、 C#和MongoDB .NET/ C#驱动程序构建

  • 网站:使用.NET和C#制作为 Blazor 服务器应用程序

Github存储库中的 README 包含以下过程的更详细版本。

1

安装.NET SDK 7 并设立MongoDB Atlas数据库。

2

导航到存储库中的 rest_service 文件夹。修改 .env文件并使用以下命令启动后端:

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

导航至 website 文件夹。修改 .env文件并通过运行以下命令启动网站:

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

导航至 game_client 文件夹。修改 Assets 文件夹中的 .env文件。然后运行游戏。

  • 全球集群可促进扩展:使用全球集群,从从节点(secondary node from replica set)读取数据,然后写入主节点 (primary node in the replica set),以实现水平扩展并满足全球受众的需求,而不会产生副作用和延迟。

  • MongoDB 的文档模型可提高灵活性和性能:利用文档模型将单个游戏运行的所有数据存储在单个文档中,但在运行时序列化子集以提高性能。

  • 基于玩家位置的分片数据:通过存储基于 ISO 代码的数据, Atlas Global Clusters启用了性能并简化了可扩展性,允许在不中断服务的情况下添加分片和区域。

  • Sigfrido Narvaez, MongoDB

  • Dominic Frei,MongoDB

  • Hubert Nguyen,MongoDB

  • 使用 MongoDB 和向量搜索进行 AI 驱动的媒体个性化

  • Gen AI的编辑工作流程

  • 生成式 AI 驱动的视频摘要

后退

统一命名空间的数据完整性

在此页面上