MongoDB助力腾讯游戏优化游戏开发体验

客户简介
腾讯游戏提倡超级数字场景 连接数亿游戏玩家

作为“超级数字场景”理念的倡导者和实践者,腾讯游戏致力于为用户创造高品质数字生活体验,为产业和社会发展创造更多建设性的价值。

腾讯游戏为全球知名的游戏开发与服务运营商,在全球连接超过8亿的用户。在开放发展的模式下,腾讯游戏采取自主研发和多元化的外部合作相结合的方式,在网络游戏众多细分市场领域形成专业化布局,打造覆盖全品类的产品阵营,为全球网络游戏玩家提供休闲游戏平台、大型网游、中型休闲游戏、桌面游戏、对战平台五大类。另外,腾讯游戏与全球顶级游戏开发公司建立深度合作,将国外优质的前沿产品体验带到中国,也将中国的游戏带向世界。

2021年3月,腾讯游戏针对国际业务推出了在线游戏开发平台Level Infinite PGOS(Level Infinite Game Online Service)。Level Infinite PGOS是一种游戏在线服务解决方案,旨在降低游戏后端开发和维护的难度,同时降低成本,从而使开发者专注于游戏玩法与核心逻辑开发。

业务挑战
产品力主导游戏行业竞争 游戏出海面临多重挑战

全球游戏市场规模不断扩大,游戏产业已成为一种重要的文化产业。据市场调查机构 Newzoo 最新数据显示,2023年全球游戏市场规模预计将超过1877亿美元,同比增长2.6%。

游戏市场潜力巨大、前景看好,与此同时游戏开发竞争也变得异常激烈。游戏品类越来越多、玩法越来越多,给游戏开发带来更高要求:游戏设计和架构越来越复杂,游戏开发成本水涨船高,游戏复用性较低,新项目启动门槛更高等等。

尤其对于腾讯游戏海外业务来说,研发更需要具备全球发行、全球部署的能力,直接拉升了对于底层数据架构的要求,当中包括:需要提供多租户SaaS模式;能够物理隔离每个游戏大区,满足全球各个区域的隐私保护;以及可在全球各个地区进行分布式部署、自动扩容、缩容等。

解决方案
深度契合游戏业务场景

为了应对游戏行业的最新趋势和海外市场的挑战,腾讯游戏推出为海外游戏而设的Level Infinite PGOS通用平台。Level Infinite PGOS是一套多租户SaaS游戏后台解决方案,采用全球化分布式架构,在欧洲、北美、日韩、东南亚等游戏发行热点区域部署运行。

数据库是游戏软件的核心组件,游戏玩家的各种信息、运营数据、游戏场景数据等都需要借助数据库来保存。对于数据存储系统,Level Infinite PGOS根据自身场景进行了严格的测试选型,最终采用MongoDB作为核心存储组件,成为一整套覆盖游戏各个维度、各个生命周期的解决方案。

  • 玩家数据存储 – 与传统游戏开发有所不同,使用MongoDB去存储玩家的基础数据,不会将MongoDB直接暴露给游戏去使用,开发者无需关心底层的数据细节,即可直接灵活定义数据,例如,不同游戏可定义不同数据模板。此外,MongoDB 支持多种数据类型和数据原子运算,易于实现幂等操作;而且基于MongoDB的分片可横向扩容,对于一些爆款游戏来说,这一点很重要,可以不用担心玩家规模的快速增加。
  • 智能对局匹配 – 在很多游戏中,都需要在平台上匹配两名玩家去进行对局竞技。以腾讯游戏为例,如果是一款全球发行的游戏,就有可能在不同游戏大区匹配到两名玩家,这种匹配看似随意,但却需要后台具备强有力的数据处理能力。技术调度要同时满足不同区域的服务器集群,也就是满足不同场景需求下的服务器扩容。腾讯游戏底层通过MongoDB实现原子化操作,经过玩家各种属性的对比,找到一个距离各个玩家最近的服务器,并进行服务器分配,最终形成一个对局。
  • 游戏内经济系统闭环 – 假设把游戏内的经济系统理解为一个特殊的交易场景,在处理游戏交易的过程中,涉及到订单、退款、跟踪回溯等多个环节,而通过MongoDB的原子化、事务性操作可以将整个交易流程一次性完成。虽然游戏内交易是虚拟的、复杂的,但采用MongoDB可以保证交易是规范的、完整的。
  • 数据流能力 – 游戏开发者需要跟踪玩家各种行为事件,以便形成流水日志,同时要保证玩家的所有事件是可追溯、可查询的。MongoDB的数据库实例,可将这些流水日志存储起来,并基于灵活的文档结构,让开发者不论是在开发期间、还是游戏已经发行的期间,都可以快速检索玩家的所有事件流。

客户价值
优化开发体验 拉升运维能力

根据数据显示,2023年一季度,腾讯的游戏领域收入达到483亿元,而其中132亿元来自国际市场,占游戏整体收入的27%,可见腾讯在海外市场的巨大潜力和影响力。对腾讯游戏而言,全球化协作体系已然成型。在多元化布局和全球化视野之下,中国游戏既要在内容创新、玩法创新上学习更多,也要将支持大规模玩家在线的后台技术越做越强。

回顾与MongoDB的合作历程,腾讯海外游戏Level Infinite PGOS平台负责人谢磊谈到,无论在功能还是性能上,MongoDB都很好地契合了游戏业务场景,带给腾讯游戏的不只是功能价值,还有运维价值:

  • 简单、易用的控制台 实现全面托管服务,即时自动扩缩容的专用服务器,为实时游戏提供低延迟和高可靠性。
  • 丰富的可视化监控 提供实时可视化日志、监控面板,研发人员、管理人员可以实时监控业务运行状态。
  • 一键升配、降配能力 在访问量突增时,一键自动扩容保障业务的正常运行;在流量低谷,一键自动缩容以节约成本。
  • 多维告警能力 提供运行时间、状态异常等多维度告警能力,使问题可以在最短的时间内被捕捉并通知到用户。

“游戏行业的发展越来越由产品力主导。Level Infinite PGOS平台最大的使命是要能够将更新、更现代化的开发模式与腾讯已有能力结合在一起,形成开发体验良好的平台,其中尤为重要的是需要符合海外开发人员开发习惯。正是在这样的背景之下,我们的底层技术选择使用MongoDB。可以说,MongoDB让腾讯游戏Level Infinite PGOS如虎添翼。”
腾讯海外游戏Level Infinite PGOS平台负责人 谢磊

在这里插入图片描述

原文地址:https://blog.csdn.net/MongoDBChina/article/details/134957417

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读552次。com.mongodb.MongoQueryException: Query failed with error code 292 and error message 'Executor error during find command :: caused by :: Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting.' on server 11.51.141.63:27017 _mongodb 大文件 下载失败
文章浏览阅读635次,点赞9次,收藏8次。MongoDB 是一种 NoSQL 数据库,它将每个数据存储为一个文档,这里的文档类似于 JSON/BSON 对象,具体数据结构由键值(key/value)对组成。
文章浏览阅读2.1k次。和。_mongodb 日期类型
文章浏览阅读1.7k次。Scalestack等客户期待使用MongoDB Atlas Vector Search和Amazon Bedrock构建下一代应用程序
文章浏览阅读970次。SpringBoot整合中间件mongodb、ES_springboot3 elasticsearch json数据
文章浏览阅读673次。MongoDB 简介_尚医通sql
文章浏览阅读1k次,点赞8次,收藏9次。官网下载MongoDB安装包后进行解压(因了解并不深入,故暂不进行详细说明,自行查找其他安装方法,后期了解深入后将进行该教程的完善)在bin目录下使用命令启动:./mongod --config …/mongodb.conf。该文章任然处于完善中,如果存在错误遗漏的地方,欢迎私信联系。安装相关的nuget包后即可通过以下方法连接数据。YX9010_0@的第二十篇文章。
文章浏览阅读1.2k次,点赞17次,收藏26次。社交场景, 使用 MongoDB 存储存储用户信息, 以及用户发表的朋友圈信息, 通过地理位置索引实现附近的人, 地点等功能.游戏场景, 使用 MongoDB 存储游戏用户信息, 用户的装备, 积分等直接以内嵌文档的形式存储, 方便查询, 高效率存储和访问.物流场景, 使用 MongoDB 存储订单信息, 订单状态在运送过程中会不断更新, 以 MongoDB 内嵌数组的形式来存储, 一次查询就能将订单所有的变更读取出来.物联网场景, 使用 MongoDB 存储所有接入的智能设备信息, 以及设备汇报的日
文章浏览阅读686次。您可以使用 update_one() 方法来更新 MongoDB 中调用的记录或文档。update_one() 方法的第一个参数是 query 对象,用于定义要更新的文档。注释:如果查询找到多个记录,则仅更新第一个匹配项。第二个参数是定义文档新值的对象。_python 更新 mongodb 数据
文章浏览阅读1.3k次。首先来学习一下nosql这里安装就不进行介绍 只记录一下让自己了解mongodb。_nosql注入
文章浏览阅读4.1k次,点赞8次,收藏7次。在data的目录下,创建一个db文件。因为启动MongoDB服务之前必须创建数据库文件的存放文件夹,否则命令不会自动创建,而且不能启动成功。第一步:安装时,Custom是指可以自定义安装路径,然后傻瓜式安装即可(注意:先不要安装图形化工具,否则安装时间会特别长):如果要想连接成功,必须要开服务,即mongod -dbpath C:MongoDBdatadb的cmd要一直开着。然后回车,ctrl+F输入port找到端口号,一般为:27017。打开命令行,然后找到bin文件地址,并输入。_mongodb windows安装
文章浏览阅读5.1k次,点赞3次,收藏43次。详细介绍MongoDB数据库的基本知识,安装方法,基本操作,_mongodb数据库
文章浏览阅读3.2k次。安装教程翻看以往文章。_navicat 连接mongodb
文章浏览阅读426次,点赞9次,收藏12次。win10开放端口:https://blog.csdn.net/m0_43605481/article/details/119255256。我的是阿里云服务器,所以直接在安全组中加入规则,端口范围:27017,授权对象:0.0.0.0。windows在mongodb安装文件夹的bin文件夹中的mongod.cfg。数据库名字是test,打算创建一个用户,账号aaa,密码bbb,权限readWrite。因为该用户是创建在test数据库的,所以在最后要加上test。O了,然后恢复了test的数据。
文章浏览阅读1.1k次。聚合操作主要用于处理数据并返回计算结果。聚合操作将来自多个文档的值组合在一起,按条件分组后,再进行一系列操作(如求和、平均值、最大值、最小值)以返回单个结果。MongoDB的聚合查询​聚合是MongoDB的高级查询语言,它允许我们通过转化合并由多个文档的数据来生成新的在单个文档里不存在的文档信息。MongoDB中聚合(aggregate)主要用于处理数据(例如分组统计平均值、求和、最大值等),并返回计算后的数据结果,有点类似sql语句中的count(*)、groupby。..._如何将几个db的数据统整在一起做查询
文章浏览阅读680次,点赞7次,收藏8次。(2)application.properties配置文件。(4)UserService类。(5)测试和测试结果。
文章浏览阅读1k次,点赞17次,收藏25次。Studio 3T 2023.9 (macOS, Linux, Windows) - MongoDB 的专业 GUI、IDE 和 客户端,支持自然语言查询_mongodb客户端
文章浏览阅读1.1k次,点赞32次,收藏27次。插件式的存储引擎架构可以实现 Server 层和存储引擎层的解耦,可以支持多种存储引擎,如 MySQL 既可以支持 B-Tree 结构的 InnoDB 存储引擎,还可以支持 LSM 结构的 RocksDB 存储引擎。MongoDB 中的记录就是一个 BSON 文档,它是由键值对组成的数据结构,类似于 JSON 对象,是 MongoDB 中的基本数据单元。的简称,是 JSON 文档的二进制表示,支持将文档和数组嵌入到其他文档和数组中,还包含允许表示不属于 JSON 规范的数据类型的扩展。
文章浏览阅读5.1k次,点赞6次,收藏96次。本文设计了一种基于智能室内温度控制的自动调速风扇。以STM32系列单片机为核心主控板,通过程序代码驱动和使用温度传感器模块实现对环境温度的实时监测,并可以实时显示环境温度。同时,可以设置温度检测的上下警告值,根据需求自行调节。_stm32 温控风扇
文章浏览阅读898次,点赞13次,收藏21次。在MongoDB中,我们使用find()和find_one()方法来在集合中查找数据,就像在MySQL数据库中使用SELECT语句来在表中查找数据一样。_pymongo find_one