AOI系统支持任何游戏世界中的物体个体对一定半径范围内发生的事件进行处理;
但MMOPRG上绝大多数需求只是对半径范围内发生的物体离开/进入事件进行处理。
当你进入一个游戏场景时,如果你能看到其他玩家,那背后AOI系统就正在运作。
显然,AOI实现方案的好坏直接决定了服务器能够承载的同时在线人数上限,
也决定了策划对游戏玩法的发挥程度。回合制和即时制的MMOPRG通常选用不同
的AOI方案。
---------------------------------------------------------------------
严格来说,AOI是碰撞检测的一种特例,除了碰撞集本身,它还包括两状态间
的碰撞集差异报告;也就是说,如果物体P在[A位置]物体可见集为[Old],当物体
P从[A位置]移动到[B位置],它的可见集会变成[New],而[Old]和[New]之间的
差异有两种可能性:
(1)有物体ObjOld原来在[Old]中,但是并不在[New]中
(2)有物体ObjNew在[New]中,但是原来并不在[Old]中
为方便理解,下文中将物体特殊化为玩家,
上述两种差异的直接表现通常是:
(1)玩家P的客户端画面会删除玩家ObjOld显示
(如果所有玩家的AOI半径一致,那玩家ObjOld的客户端画面会删除玩家P)
(2)玩家P的客户端画面会添加玩家ObjNew显示
(如果所有玩家的AOI半径一致,那玩家ObjNew的客户端画面会添加玩家P)