公告介绍MongoDB 8.0,史上最快的MongoDB!了解更多 >>介绍MongoDB 8.0,史上最快的MongoDB!>>

简化全球游戏管理

使用 MongoDB Atlas 实现无缝的游戏数据管理,包括全球配置文件、记录和实时仪表板。
开始免费使用
Gamepad illustration.
解决方案概述

在游戏行业中,管理全球范围内的玩家配置文件、库存和游戏状态是一项挑战。MongoDB Atlas 与 Leafsteroids 结合提供了解决方案。全球集群可以无缝处理玩家配置文件,无论地理位置如何,MongoDB 的灵活文档模型提供了高级数据管理,从而实现详细的游戏记录。通过 Atlas 图表和 Atlas 搜索的用户友好界面提供实时玩家仪表板,丰富了玩家体验。有了 MongoDB Atlas,游戏行业迎来了全球可扩展性、高效数据管理和以用户为中心的设计和谐共处的未来。

参考架构
没有 Atlas
Reference architecture without Atlas illustration.

传统上,在全球化规模上管理游戏数据和配置文件的方法包括构建全球查询路由器、全球多个节点之间的复制服务以及集成到不同的暖存储选项中。该架构还需要一个独立搜索引擎和可视化工具,以及一个无服务器查询服务,以将我们的数据联邦到可视化工具中。

使用 Atlas
Reference architecture with Atlas illustration.

使用Atlas,连接MongoDB Atlas开发者数据平台就足够了。通过利用全球集群、在线存档、Atlas搜索、Atlas图表和数据联邦;我们拥有管理全球规模游戏数据所需的所有功能。

数据模型方法
Data model approach illustration.

记录表示玩家在事件中的游戏玩法,包括得分、动作和统计数据。使用 .net (C#),通过扩展引用模式将玩家和事件的子集存储在记录中,采用子类化和自定义序列化。这种设计通过允许选择性地嵌入字段来提高查询性能,并提供了未来的灵活性。在像“PUBG”这样拥有数十亿玩家的大型在线游戏中,数据本地化对于最佳体验和满足法律要求至关重要。玩家和记录通过基于位置的ISO代码进行全球分片。Atlas全球集群提供了卓越的性能和易于扩展性,可以在不中断服务的情况下添加分片和区域。扩展引用模式,采用子类化和自定义序列化。这种设计通过允许选择性地嵌入字段来提高查询性能,并提供了未来的灵活性。在像“PUBG”这样拥有数十亿玩家的在线游戏中,数据本地化对于最佳体验和满足法律要求至关重要。玩家和记录通过基于位置的ISO代码进行全局分片。Atlas全球集群提供了卓越的性能和易于扩展性,可以在不中断服务的情况下添加分片和区域。

构建解决方案

引人入胜的Leafsteroids游戏平台的核心是MongoDB Atlas的稳健性。作为演示,这款游戏是互动用户体验和细致数据管理的完美结合。

功能 & 集成
  • MongoDB Atlas:Leafsteroids充分利用了Atlas全球集群的能力。这确保了玩家资料在庞大的规模上得到高效管理,无论玩家地理位置如何,都能确保无间断的游戏之旅。为了确保数据精度,玩家信息通过ISO国家代码和分片/区域分配进行存储。
  • 数据处理的基础是灵活的文档模型。它不仅支持深入的游戏记录,而且体现了“数据协作共生”的宗旨。遵循操作简便的概念,其他数据集被组织在简单的集合中。
  • 随着时间的推移,随着游戏变得极为成功,拥有数百万玩家和游戏运行,产生的数据量可能会增加成本并影响性能。Leafsteroids使用通过Atlas在线存档的数据分层策略,自动将超过90天的游戏数据卸载到优化的存储。然后,Atlas数据联邦允许无缝访问近期和历史数据。
用户体验亮点
  • 玩家仪表板:一个突出的功能,通过Atlas图表在线提供的定制玩家仪表板,确保了游戏成就和进度实时更新。使用Atlas图表的过滤和嵌入功能,相同的仪表板可以重新用于玩家或事件级别仪表板。这提升了整体玩家体验。
  • Atlas Search: 另一个关键的组件,增强了游戏以用户为中心的设计,玩家可以通过自动补全和模糊匹配功能快速在Web UI中找到他们的昵称,从而促进更直观的用户交互。
架构
  • 游戏客户端: 使用Unity3D、.NET、C#开发
  • 游戏服务器: 基于ASP.NET Web API、.NET、C#构建
  • 网站: 使用.NET和C#的Blazor Server应用程序构建
设置您的克隆
  • 先决条件: 安装.NET SDK 7并设置MongoDB Atlas数据库
  • 运行REST服务: 导航到rest_service文件夹,修改.env文件,并使用给定命令执行
  • 启动网站: 访问网站文件夹,调整.env文件,并使用提供的命令运行
  • 执行游戏客户端: 在game_client目录中,调整Assets中的.env,并启动游戏
游戏方面
  • 游戏玩法(记录): 这些是玩家在活动期间在游戏中的活动表示。使用扩展引用模式存储,这些记录可以链接到完整的玩家和事件对象,尽管在持久化时只序列化选择性字段。
  • 玩家资料和游戏玩法: 在大型多人游戏中,数据本地化至关重要。Leafsteroids解决方案全局分片玩家和记录集合。使用Atlas全球集群,ISO国家代码和子区域代码连接到区域,优化查询和写请求路由。好处包括无限可扩展性和轻松的数据分布升级。
使用的技术和产品
MongoDB开发者数据平台
合作伙伴技术
  • Unity游戏引擎
  • Amazon EC2
关键考虑因素
  • 使用全局集群,从辅助读取,到主集群写入,以实现水平扩展并满足全球受众的需求,同时无副作用和延迟。

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

  • 玩家和记录集合是“全局分片的”。分片键的第一部分是位置。Atlas全球集群将ISO国家代码和子区域代码(ISO-3166-1、ISO-3166-2)关联到区域,区域是托管在云区域的1+分片,用于路由查询和写请求,确保最佳性能。也支持全局查询。

作者
  • Sigfrido Narvaez,MongoDB
  • Dominic Frei,MongoDB
  • Hubert Nguyen,MongoDB
相关资源
general_content_developer

GitHub仓库:Leafsteroids

使用相关的示例数据、功能和代码自己创建这个解决方案。

industry_mobile_gaming

MongoDB游戏解决方案

了解MongoDB开发者数据平台如何支持各种游戏用例。

mdb_migration_success

客户案例 - SEGA

SEGA HARDlight将操作迁移到MongoDB Atlas,简化操作并提升数百万移动游戏玩家的体验。

开始使用Atlas

秒级开始。我们的免费集群包含512MB的存储空间,您可以使用示例数据进行实验,并熟悉我们的平台。
免费试用联系销售
Illustration of hands typing on a laptop in the foreground and a superimposed desktop window and coffee cup in the background.