阿里云数据库MongoDB版助力极致游戏高效开发
客户简介
成立于2010年的厦门极致互动网络技术股份有限公司(以下简称“公司”或“极致游戏”),是一家集网络游戏产品研发与运营为一体的重点软件企业,公司专注于面向全球用户的网络游戏研发与运营。在整个产业链中,公司同时承担着游戏开发商、游戏运营商的角色,是一个完整产业链的互联网游戏公司。
自成立以来,极致互动成功研发出《上古王冠》、《魔侠传》、《道友请留步》、《文明大爆炸》、《东方故事》、《命运圣契》等多款原创型网络游戏。其中卡牌手游《命运圣契》自2024年9月14日上线以来,实现首月新增用户超400万 ,首月全平台流水破亿,荣登iOS与Taptap预约榜榜首。目前《命运圣契》可支持几十万、甚至上百万玩家同时在线。

业务挑战
近年来,游戏行业竞争愈发激烈,特别是在卡牌手游领域,因此需要保障玩家的极致游戏体验。在游戏的整个生命周期当中,游戏玩家的游戏体验和制作方的研发迭代速度及后台运维环环相扣,因此底层数据库的顺利运行是游戏体验的基础与保障。
在极致互动过往的游戏开发中,采用的是关系型数据库,而现在,研发团队需要一款能支撑快速开发及数据灵活的数据库,以确保在前期的开发中能缩短开发周期,在中期的发行中能保障游戏体验:
1)需要高效处理结构灵活变化的游戏数据
《命运圣契》属于第三代卡牌游戏,玩家角色属性、战斗数据和玩家排名等会经常发生变化,尤其是角色武器和道具的引入,都会带来游戏逻辑和数据结构等的动态变化。传统的关系型数据库无法支撑起游戏场景的灵活动态属性变化,需要能支持更高灵活性的数据库解决方案。
2)需要确保玩家的游戏体验顺畅,无中断无卡顿
游戏平台的部署架构需要具备高可用,能够在节点出现故障的时候不会影响服务,保证7*24小时不间断的服务,这对底层数据的存储、备份、恢复以及故障切换的速度要求特别高。例如,服务响应时间需要达到微秒级别,备份恢复达到分钟级别,还需要通过主从架构保证在不停服的情况下完成游戏版本的升级,从而保障玩家的游戏体验。
3)能够弹性扩展以支撑海量玩家在线
《命运圣契》是极致互动寄予厚望的产品,无论是老用户邀测、压力测试、全平台首发还是上线运营的各阶段,对数据库的资源需求是不同的,尤其是大型节假日高峰期,需要支撑几十万人同时在线,而且在初期需要对游戏玩家做分区分服,以及到后期的合服。虽然传统的关系型数据库能通过改造完成横向扩容,但是数据规模太大的情况下会带来非常繁琐的运维流程,这很可能会降低玩家的游戏体验。
解决方案
阿里云数据库MongoDB版深度契合游戏业务场景:
MongoDB帮助《命运圣契》落地丰富多彩的游戏世界
《命运圣契》的制作团队历时四年,创造出这款轻松休闲的卡牌游戏,人物建模和艺术风格值得称道。游戏采用鲜艳的色彩和细腻的角色设计,打造出一个充满奇幻色彩的世界,每个角色都经过精心设计,体现了独特的个性和故事背景。
● 玩家数据存储
与传统游戏开发有所不同,使用MongoDB去存储玩家的基础数据,例如角色数据、战斗数据、等级数据等,开发者可以灵活调整数据的结构,不同游戏可定义不同的数据模版。此外,得益于schema free特性,MongoDB支持多种数据类型和数据原子计算,开发者无需关心底层的数据细节,即可直接灵活定义数据。
● 游戏内经济系统闭环
假设把游戏内的经济系统理解为一个特殊的交易场景,处理游戏交易涉及订单、退款、跟踪回溯等多个环节,而通过MongoDB的原子化、事务性操作可以将整个交易流程一次性完成。虽然游戏内交易是虚拟的、复杂的,但采用MongoDB可以保证交易的规范性和完整性。
● 数据流能力
游戏开发者需要跟踪玩家的各种行为事件,以便形成流水日志,同时要保证玩家的所有事件可追溯、可查询。MongoDB的数据库实例,可将这些流水日志存储起来,并基于灵活的文档型结构,让开发者无论是在开发期间,还是游戏已经发行的期间,都可以快速检索玩家的所有事件流。
阿里云数据库MongoDB版让业务更稳定,运维更轻松
● 业务稳定性
基于阿里云数据库MongoDB版的分片集群架构,可以实现分钟级的横向扩缩容能力,对于《命运圣契》的发行至关重要,可以不用担心玩家规模的快速增加而影响玩家的游戏体验。
同时,阿里云数据库MongoDB版具备快速回档能力,可以实现快速的任意时间点恢复,通过其多线程增量恢复oplog等功能,备份恢复速度提升30倍,大幅度减少了游戏停更时间,保证玩家拥有更好的游戏体验。
● 运维成本
阿里云数据库MongoDB版简单易用的控制台可以实现全面托管服务,分钟级的自动扩缩容为《命运圣契》提供了低延迟和高可用的服务,兼容流量高峰期时保障用户体验及业务低峰时节约成本;
同时,阿里云数据库MongoDB版还提供丰富的可视化监控能力,包括实时可视化日志和监控面板,让研发和运维均可以实时监控业务运行状态;
除此之外,阿里云数据库MongoDB版还提供运行时间、状态异常等多维告警能力,使问题可以在最短的时间内被觉察及解决。
回顾与阿里云MongoDB的合作历程,极致互动成都研发中心技术经理汪兴表示,无论在功能还是性能上,阿里云数据库MongoDB版都很好地契合了游戏的业务场景,带给极致互动的不只是研发迭代效率的提升,同时还有运维价值。
阿里云数据库MongoDB版在不久的将来支持到MongoDB 8.0版本,极致互动研发团队期待借助新版本来开发更多的手游项目。随着《命运圣契》国内的发行成功经验,他们也正在计划让阿里云数据库MongoDB版帮助《命运圣契》走出国门,让海外玩家也能体验到高品质的第三代卡牌手游。
相关文章:
阿里云数据库MongoDB版助力极致游戏高效开发
客户简介 成立于2010年的厦门极致互动网络技术股份有限公司(以下简称“公司”或“极致游戏”),是一家集网络游戏产品研发与运营为一体的重点软件企业,公司专注于面向全球用户的网络游戏研发与运营。在整个产业链中,公…...
ESP32-S3模组上跑通ES8388(29)
接前一篇文章:ESP32-S3模组上跑通ES8388(28) 二、利用ESP-ADF操作ES8388 2. 详细解析 上一回解析到了es8388_init函数中的第11段也是最后一段代码,没有解析完,本回继续解析。为了便于理解和回顾,再次贴出该片段,在components\audio_hal\driver\es8388\es8388.c中,如下…...
使用ElasticSearch实现全文检索
文章目录 全文检索任务描述技术难点任务目标实现过程1. java读取Json文件,并导入MySQL数据库中2. 利用Logstah完成MySQL到ES的数据同步3. 开始编写功能接口3.1 全文检索接口3.2 查询详情 4. 前端调用 全文检索 任务描述 在获取到数据之后如何在ES中进行数据建模&a…...
通过k-means对相似度较高的语句进行分类
本文介绍了如何使用K-Means算法对相似度较高的语句进行分类,并附上java案例代码 import java.util.ArrayList; import java.util.List; import java.util.Random;public class KMeansTextClustering {public static void main(String[] args) {// 初始化语句数据集…...
国信华源科技赋能长江蓄滞洪区水闸管护项目验收成果报道
“碧水悠悠绕古城,闸启长江万象新。”近日,由北京国信华源科技有限公司倾力打造的万里长江蓄滞洪区水闸管护项目,圆满通过验收,为这片鱼米之乡的防洪安全注入了新的科技活力。 长江之畔,水闸挺立,犹如干堤上…...
HTML:表格重点
用表格就用table caption为该表上部信息,用来说明表的作用 thead为表头主要信息,效果加粗 tbody为表格中的主体内容 tr是 table row 表格的行 td是table data th是table heading表格标题 ,一般表格第一行的数据都是table heading...
wine的使用方法
wine版本 所有分支,新的主要版本: wine-x.0 All branches, release candidates:各分支、候选版本: wine-x.0-rcn Stable branch updates: 稳定分支更新: wine-x.0.z Development branch updates: wine-x.y wine *.exe “更改目…...
Linux服务器离线安装unzip包
Linux服务器离线安装unzip包 1. 安装unzip包的目的 解压Docker部署包和服务部署包。 2. 查看当前环境是否已经安装unzip rpm -qa | grep --color unzip3. 下载对应的离线包 地址:http://www.rpmfind.net/linux/rpm2html/search.php?query&submitSearch 例…...
Excel拆分脚本
Excel拆分 工作表按行拆分为工作薄 工作表按行拆分为工作薄 打开要拆分的Excel文件,使用快捷键(AltF11)打开脚本界面,选择要拆分的sheet,打开Module,在Module中输入脚本代码,然后运行脚本 Su…...
Mybatis---事务
目录 引入 一、事务存在的意义 1.事务是什么? 2.Mybatis关于事务的管理 程序员自己控制处理的提交和回滚 引入 一、事务存在的意义 1.事务是什么? 多个操作同时进行,那么同时成功,那么同时失败。这就是事务。 事务有四个特性…...
企业直播间媒体分发新闻转播拉流推广名单(金融财经科技类)
【本篇由 言同数字媒体直播分发 原创】随着直播与短视频成为各大企业营销的重要手段,如何选择合适的视频平台进行内容分发与拉流成为了企业关注的焦点。对于财经和科技类企业而言,选择具有专业受众群体和广泛传播能力的平台尤为重要。下面是一些可以帮助…...
华为FreeBuds Pro 4丢了如何找回?(附查找功能使用方法)
华为FreeBuds Pro 4查找到底怎么用?华为FreeBuds Pro 4有星闪精确查找和离线查找,离线查找功能涵盖播放铃声、导航定位、星闪精确查找、上线通知、丢失模式、遗落提醒等。星闪精确查找是离线查找的子功能,当前仅华为FreeBuds Pro 4充电盒支持…...
若依微服务登录密码加密传输解决方案
文章目录 一、需求提出二、应用场景三、解决思路四、注意事项五、完整代码第一步:前端对密码进行加密第二步:后端工具类实现 RSA 加解密功能第三步:登录接口中添加解密逻辑 六、运行结果总结 一、需求提出 在默认情况下,RuoYi 微…...
NVR小程序接入平台/设备EasyNVR深度解析H.265与H.264编码视频接入的区别
随着科技的飞速发展和社会的不断进步,视频压缩编码技术已经成为视频传输和存储中不可或缺的一部分。在众多编码标准中,H.265和H.264是最为重要的两种。今天我们来将深入分析H.265与H.264编码的区别。 一、H.265与H.264编码的区别 1、比特率与分辨率 H.…...
Redisson常用方法
Redisson 参考: 原文链接 定义:Redisson 是一个用于与 Redis 进行交互的 Java 客户端库 优点:很多 1. 入门 1.1 安装 <!--redission--> <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifa…...
html自带的input年月日(date) /时间(datetime-local)/星期(week)/月份(month)/时间(time)控件
年月日期控件 type"date" <input type"date" id"StartDate" valueDateTime.Now.ToString("yyyy-MM-dd") /> //设置值 $("#StartDate").val("2024-12-12"); //获取值 var StartDate$("#StartDate&quo…...
CSS系列(12)-- 响应式设计详解
前端技术探索系列:CSS 响应式设计详解 📱 致读者:掌握响应式设计的艺术 👋 前端开发者们, 今天我们将深入探讨 CSS 响应式设计,学习如何创建适应各种设备的网页布局。 响应式基础 🚀 视口设…...
filecoin boost GraphQL API 查询
查询示例 查询失败交易 curl -X POST \ -H "Content-Type: application/json" \ -d {"query":"query { deals(limit: 10, query: \"failed to get size of imported\") { deals { ID CreatedAt Message } } }"} \ http://localhost:…...
SAS - Subtractive Port
在SAS(串行连接SCSI,Serial Attached SCSI)协议中,subtractive port 是一种特殊类型的端口,主要用于设备间的路由功能。它的作用是在路径选择过程中充当默认路径,以处理未明确指定路径的请求。以下是它的定…...
TCP客户端模拟链接websocket服务端
因一些特殊原因研究了下TCP模拟链接websocket。原理上可以连接但具体怎么连接怎么操作就不知道了,需要研究下,以下是个人研究的方案。 用线上和本地地址来做例子: 线上wss地址:wss://server.cs.com/cs/vido/1 本地地址ws://127…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
