探索未来游戏AI:PatrolJS - 导航网格工具包
注意:此项目已废弃,请转至three-pathfinding
在游戏和三维应用中,让AI角色自如地在世界中导航是一项挑战。传统方式如使用路点导航存在诸多问题,而PatrolJS,一个基于ThreeJS的导航网格工具包,提供了更高效、准确且考虑了AI实体大小的解决方案。
项目简介
PatrolJS是一个用于ThreeJS的导航网格工具,它利用A*算法和Funnel算法来计算导航网格上的路径。通过这种方式,AI代理可以更自然地避开障碍物并进行复杂的动态移动。这个库不仅适用于客户端,也可以在服务器端使用,并依赖于ThreeJS和Underscore库。
演示与实例
你可以访问演示页面,体验PatrolJS的强大功能。此外,它还被应用于Ironbane MMO中,观看此处视频了解其实际效果。

安装与使用
要使用PatrolJS,首先你需要ThreeJS和Underscore库。在客户端,这两个库应全局可用。在服务器端,通过npm install patroljs安装后,使用require('patroljs')导入。
导航网格的构建需要通过Blender等工具完成,然后将数据转换为ThreeJS的JSON格式。PatrolJS仅接受原始JSON模型数据,加载文件需自行处理。
要加载导航网格,首先调用patrol.buildNodes(geometry)生成节点,接着使用patrol.setZoneData('level', zoneNodes)存储数据。当需要计算路径时,使用patrol.findPath()函数,传入起始位置、目标位置以及当前所在的导航网格组。
jsonLoader.load( 'meshes/level.nav.js', function( geometry, materials ) {
var zoneNodes = patrol.buildNodes(geometry);
patrol.setZoneData('level', zoneNodes);
// 设置玩家的导航网格组
playerNavMeshGroup = patrol.getGroup('level', player.position);
}, null);
// 计算路径
calculatedPath = patrol.findPath(player.position, target.position, 'level', playerNavMeshGroup);
应用场景与特点
PatrolJS主要用于游戏和三维应用程序,帮助开发者创建智能的AI角色,使它们能够在复杂环境中自由移动。特别适合大规模、开放世界的场景,例如沙盒式游戏或模拟环境。
该项目的主要特点是:
- 兼容性:与ThreeJS无缝集成,支持客户端和服务器端。
- 灵活性:允许自定义导航网格,适应不同游戏设计需求。
- 效率:采用A*和Funnel算法,提供快速且精确的路径规划。
- 易用性:简单的API设计,易于理解和实现路径规划功能。
感谢bgrin的A*库、Digesting Duck的简单愚蠢通道算法以及Recastnavigation的级别网格的贡献。
最后,PatrolJS遵循MIT许可,鼓励开发者参与和改进。
如果你正在寻找一种更好的方法来提升你的游戏AI导航性能,那么PatrolJS值得一看!
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0153- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
LongCat-Video-Avatar-1.5最新开源LongCat-Video-Avatar 1.5 版本,这是一款经过升级的开源框架,专注于音频驱动人物视频生成的极致实证优化与生产级就绪能力。该版本在 LongCat-Video 基础模型之上构建,可生成高度稳定的商用级虚拟人视频,支持音频-文本转视频(AT2V)、音频-文本-图像转视频(ATI2V)以及视频续播等原生任务,并能无缝兼容单流与多流音频输入。00
auto-devAutoDev 是一个 AI 驱动的辅助编程插件。AutoDev 支持一键生成测试、代码、提交信息等,还能够与您的需求管理系统(例如Jira、Trello、Github Issue 等)直接对接。 在IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。Kotlin03
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0112