Published on

AOI2

Authors
  • avatar
    Name
    Ushen
    Twitter

最近在做aoi相关工作, 在想服务器大地图的aoi算法如何优化, 从原来多个小场景,变成一个大场景, 现在依然保留以前单场景的aoi算法。

问题在于大部分的对象都离得很远很远, 都在移动的同时, 完全不需要考虑是否会有交叉。

或许可以在原有算法上, 对地图做四叉树划分, 每个小区域只考虑自己以及周围的区域, 这样可以避免许多无效的计算。(但最终没这么做, 因为现在游戏的在线人数好像也没有那么多,目前性能足够,但我还是决定自己写一份)

参考云风的aoi库, 多个小区域维护自己的space, 每个对象还是按之前一样调用, 但是gen_pair的时候, 需要遍历四叉树附近的space,

关于同屏多人, 同屏实在太多人的话我觉得服务器做太多推送也无意义, 一个是客户端显示也混乱, 以前玩的游戏, 同屏太多人, 客户端是会做虚化处理, 又或者分线处理, 但现在貌似没怎么玩过很多人一起在线的游戏了。

那么不分线如何处理呢, 虚化部分服务器应该不需要推送太多数据, 也不需要很及时, 只需要同步客户端能同时显示的最多人数,