游戏逻辑_垂直拆分_增量更新

前言:

本章主要讲述 游戏逻辑中_垂直拆分_增量更新 的优化

把数据库内用到放到游戏的AOI上用

基于MMORPG讲述,温故而知新

1: 人物/宠物/其他对象 属性

最小6件装备 外加时装 可能还有宠物,武魂,翅膀 变身卡 坐骑 称号 BUFF等等

这里所谓的垂直拆分_增量更新 就是 更新了 某装备,先减去这装备的属性,再增加新的 装备的 属性,这样更换/脱下 某装备 只需要更新这件 装备属性就行,有百分比 基本的算完了,再计算一次。

也可以说是也空间换时间。拆的越细,计算效率越高,但是空间需求越大;

2:AOI

一般AOI 的基本接口如下

enter:对象进入地图;

leave:对象离开地图;

move:对象在地图内移动。

这里以一般的MMORPG为例,一般 分主城与野外

先可以想象下,现在是一张世界地图,就是主城与野外 本来就是一张大地图,不过垂直拆分后,才有了主城与野外 2张地图,传送点相当于 从一个 九宫格的 一格 跑到 另外一格(灯塔也差不多,一个灯塔到另外一个 )

这里以 传送点1 与传送点2 可以相互传送为例 讲述

垂直 拆分后,如果有对象(玩家) 来回跑,2个传送点附近还有大量可视对象,

按enter leave 流程 ,

1 >进入 ,把自己广播给其他对象,同时把其他可视的对象 发送给自己,

2>离开 ,告诉其它玩家,自己消失

从后端来说,消息量太大 (出现的消息 体量大,消失还好 体量很小)

从前端来说,如果加载 再删除,再加载地图及其他对象,耗时,卡

如果在一张大地图里呢,玩家进入与离开不过是 类试于 从一大格 瞬移到另外 一大格里,

结合 延迟 消失 的策略,后端的消息量会大大减少,前端的也不需要加载,释放,反复来回,

以九宫格讲述 一般来说 九宫格 G = V ,再跨 1、2G(有飞行速度快的,可以3G,根据实际来) 就可以通知消失了

具体可以根据配置表 配置

两张图里怎么搞呢,简单,(假如设定,延迟删除为跨2G )

从传送点1 传送 到 出现点1,相当于 移动到 缓冲带,根据后面的移动情况再决定是否删除,

1> 记录上格地图ID

2>到 出现点1 再跨2个G,再删除 (到野外 后,跨到黑色框外再删除)

3>到出现点1后,直接进入传送点2,又回来了,可以当移动处理

优化enter/move 消息,主要是优化 出现的消息(这个消息量大,一般包含 对象外观 状态 特效,宠物 等等)

怎么优化呢,增量更新

对象 有1 件装备 1 个坐骑 一个出战宠物(简化版,根据实际情况自行扩展)

当前装备(坐骑,宠物类试) 版本号 当装备有更新时,更新属性的同时,更新版本号

1>在视野范围内,自己更换了,广播给其他对象时,只广播 更新的及其影响的可视属性

2>在视野范围内,

1>>自己更换了, 某对象从缓冲列表里重新回来视野时,对比装备版本号,如果什么也没变,只更新坐标,如果版本号 不相同,更新位置时,同时更新 装备及其影响的可视属性

其他的坐骑 宠物 同样如此

2>> 别的对象换装备后,别的对象的 装备版本号 与自己缓冲区里的这个对象的 装备版本号 对象,有差异,更新,没差异,只更新位置

3>可以增加一总版本号,先对比总版本号,有差异,再比较具体的 版本号,再增量更新

3:其他的垂直拆分

可以把玩家数据保存到单独的一个子进程/线程里 ,跟场景分开,还可以拆分到 计算 线程(CPU密集型)

专用用于计算任务,比如 对象更新装备,重新计算属性,可以分派 到计算 计算线程 去处理,数据进程 只等结果出来后更新,越单一职责,效率越高,

4:水平拆分

场景多线,副本等等都是水平拆分了,这里就不介绍了

5:如果觉得有用,麻烦点个赞,加个收藏

游戏逻辑的拆分上 可以 参考下 数据库 ,毕竟数据库 很成熟了,有各种解决方案

相关推荐
资源分享助手12 小时前
我!勇者?The Warrior免安装中文版下载与玩法体验
游戏
云起SAAS14 小时前
抖音小游戏源码 - 消消乐 | 含激励广告+成就系统 | 开箱即用商业级消除游戏模板
android·游戏·广告联盟·看激励广告联盟流量主·抖音小游戏源码 - 消消乐
津津有味道15 小时前
一键写入启动游戏NDEF复合记录NFC标签vb6源码
游戏·标签·nfc·ndef·复合记录
游乐码15 小时前
Unity基础(四)向量相关
游戏·unity·游戏引擎
阿阳微客17 小时前
网易Buff游戏搬砖,长期可做!
笔记·学习·游戏
Kurisu57517 小时前
探灵直播2026最新官方正版免费下载 一键转存 永久更新 (看到速转存 资源随时走丢)
游戏·游戏引擎·游戏程序·动画·关卡设计
STDD18 小时前
Abiotic Factor多人生存建筑游戏《非生物因素》 专用服务器搭建教程
服务器·数据库·游戏
开开心心就好19 小时前
带OCR识别的电子发票打印工具
运维·javascript·科技·游戏·青少年编程·ocr·powerpoint
经济元宇宙1 天前
HOPE星火燎原不是希望工程,也不是游戏项目:项目名称与定位澄清
游戏
2601_950316061 天前
XBOX360 KINECT体感游戏合集109个
游戏