AOI 场景分析和方案设计

很容易想象,AOI的需求最简单的做法是全世界玩家信息全部同步给客户端。
这个方案是O(n^2)的复杂度,对服务器来说是不能承受之重。但如果是超小地图
十人以下的特殊需求倒可能是个简洁的方案。

比较流行的方案是网格法,简单,高效:将地图按设定的格子大小划分为网格,
设玩家移动到某坐标,我们很容易地将玩家归入该坐标所属的网格G的玩家链中,
而这个玩家的可见集可以简单地将以网格G为中心的九宫格中的玩家链聚合而得到。
而要获得两次移动间的可见集差异,也非难事。但网格法也有一些弊端:
     (1)格子宽度常比地图最小单位尺度要大不少,在要求精确距离触发的需求上,
     需要使用定时器等方案实现。
     (2)大场景地图上,网格数量过多。
     (3)在面临不同对象拥有不同AOI半径的需求,可能要引入其他方案夹杂完成。
     但若非必要,网格法还是极理想的AOI方案之一。简单,高效,还求什么呢?

 

posted on 2020-03-23 15:16  123_123  阅读(424)  评论(0编辑  收藏  举报