主要观点:近期在游戏中为 NPC 进行寻路工作,游戏特性导致寻路有额外要求,如动态物理环境、保持距离等,通过空间分区查询、A*搜索等方法实现,还解决了实时环境变化、环绕路径等问题,并考虑效率及多线程等情况。
关键信息:
- 额外要求:动态物理环境、保持距离、环绕边界。
- 空间分区查询:构建空间分区树,减少查询数量。
- A搜索:标准 A搜索,8 个邻居,边缘节点有环绕邻居。
- 实时环境变化:缓存节点阻塞状态,定期无效化。
- 自然路径:提供对象偏好距离,影响节点遍历成本。
- 环绕路径:处理环绕边界,添加额外节点引导 NPC 环绕。
- 效率:多 tick 处理路径,避免影响游戏性能,暂未采用多线程。
重要细节: - 空间分区树深度为 6,叶节点构成导航网格。
- 环绕路径时 NPC 从最接近下一路径步的位置开始跟随。
- 效率方面通过基准测试和优化,分 tick 处理路径请求。
结论:自行解决寻路问题,测试效果良好,将用于 NPC 行为,后续可进一步优化。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。