AOI 九宫格算法原理
2023-11-20 23:09:51 7 举报
AOI 九宫格算法原理
作者其他创作
大纲/内容
B
new
old
AOI(Area of insterst)在mmorpg中为什么要设定AOI? 1、mmorpg同一个服务器中可能人数太多,所有家都同步状态发送的信息量很大,有网络瓶颈 2、节约性能 3、提高玩家体验,只显示玩家关注的信息需求:第一找出自己AOI范围内的玩家,把他们的状态同步过来,第二找出自己在哪些玩家的AOI区域,把自己的状态发送给他们(A在B的 AOI范围,但是B不一定在A的AOI范围)
A
三角区域表示摄像机视角
为社么A在B的AOI范围,但是B不一定在A的AOI范围?应为AOI形状不一定是正方形的,这里以三角行为例子
当玩家移动一个格子的时候会增加三个新的格子,减少三个已经在同步状态的格子,此时同步三个新格子玩家的状态进来,并同步自己的状态给新增的三个格子的玩家,通知减少的三个格子的玩家自己离开了,并且自己剔除这些玩家的状态同步
将地图划分成一个个方格子(自定义方格子的大小),红色表示自己所在的位置,绿色格子+红色格子组成了一个3x3的九宫格,玩家只需要同步这个9宫格其他玩家的状态即可服务器维护每个格子的玩家信息,最好使用key-value容器(记录玩家ID)+bitmap(记录是否有人)配合维护数据,因为有些区域是没有人的,用bitmap直接就能查询是否有人提高查询效率,只有有人的区域才缓存数据维护好这个九宫格的数据,并同步给玩家即可达到AOI效果
0 条评论
下一页