AOI( Area Of Interest )

本文深入探讨了网络游戏服务器中AOI(Area Of Interest)算法的工作原理。重点介绍了如何通过基于2D网格的方案来高效地更新角色间的可见状态,包括角色移动后如何确定新增可见与不再可见的对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AOI( Area Of Interest )是网游服务器中必不可少要考虑的一个问题,当前主流的AOI算法依然是
基于2D的格子的, 场景均分成为等大的格子,每个Entity都根据其位置放到所属格子的链表中.

关键问题是当Entity移动后:
一是要找到该Entity看到了哪些新的otherEntitys,
二是要找到哪些otherEntitys以前可以看到而现在看不到了,
三是要找到该Entity被哪些新的otherEntitys看到了,
四是要找出以前看得到自己现在看不到自己的otherEntitys.


1, 假定所有Entity的看到见的格子的数量都一样,为N*N,这意味着自己看得见的Entity也一定看得见自己,而
自己看不见的Entity也一定看不见自己.因此当Entity移动后:

<1>,找出Entity移动后新增的可见格子,将这些格子中的其它Entity加入自己的可见列表中(或者通知客户端有新的Entity可见).
<2>,找出Entity移动前可见而移动后不可见的格子,将这些格子中的其它Entity从自己的可见列表中移除(或者通知客户端这些Entity不可见).
<3>,找出Entity移动后新增的可见格子,将自已加入到这些格子中的其它Entity的可见列表中(或者通知其对应的客户端有新的Entity可见).
<4>,找出Entity移动前可见而移动后不可见的格子,将自己从这些格子中的其它Entity的可见列表中移除(或者通知其对应的客户端本Entity不可见).


链接:http://www.cnblogs.com/corefans/archive/2009/07/23/1529699.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值