腾讯游戏开发精粹
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.9 AI寻路

MOBA游戏的小兵、野怪、陪玩角色AI都需要用到寻路,SDF也能很好地处理这个问题。寻路算法可用经典的AStar或者JPS,通过修改探索函数,以SDF生成可行走的节点即可。而判断探索节点的邻节点位置是否可以行走,只需要判断其是否满足φ(x)≥r就行。

对于可行走对象寻完路径之后在行进过程中遇到动态障碍物的情况,如果在已寻路径中按照摇杆移动方式从当前节点向下一个节点行走,则会自动绕障碍物滑行,无须重新寻路。遇到前面提到的在凹形障碍物中走不出来(即前后位置无变化)的情况,再进行一次寻路即可。

基于SDF的AStar寻路,还能通过将φ加入代价评估中,从而非常容易地打破对称性,通过修改行走对象的半径r实现远离或者贴近障碍物。