【免费下载链接】bonsaiRust implementation of behavior trees for deterministic AI (now with Python bindings)项目地址https://gitcode.com/gh_mirrors/bonsai1/bonsai点击查看免费下载Bonsai 是用 Rust 语言编写的行为树Behavior Tree库crate 名为bonsai-bt专为游戏 NPC AI、机器人与确定性 AI 系统设计。本教程面向新手带你用 5 分钟完成Cargo 一行配置、构建你的第一个 NPC 行为树并打开实时可视化器观察它如何思考。什么是行为树行为树是一棵由节点组成的树叶子节点是可执行行为比如开枪逃跑每次执行返回三种状态之一Success成功、Failure失败或Running还没做完内部节点如Sequence、Select根据子节点的状态决定下一步走哪条分支每帧游戏逻辑对根节点执行一次tick树就按深度优先顺序遍历一轮相比有限状态机FSM行为树结构直观、组件可复用AI 逻辑再复杂也不会变成面条式状态跳转。 想深入原理可阅读官方概念文档docs/concepts/README.md第一步Cargo 一行配置在项目根目录创建或编辑Cargo.toml加入一行依赖即可需要 Rust 1.80[dependencies] bonsai-bt *也可以直接运行cargo add bonsai-bt。想完整体验本文所有示例可克隆仓库git clone https://gitcode.com/gh_mirrors/bonsai1/bonsai cd bonsai第二步构建你的第一个 NPC 行为树仓库自带一个最易上手的控制台示例examples/src/simple_npc_ai/main.rs。它的 AI 逻辑是只要 NPC 没死就循环执行移动 射击子程序只要还有行动点NPC 就 Run Shoot行动点耗尽后进入Rest恢复最后被击败核心结构只有两行代码简化展示// 内部只要还有行动点就一直执行跑射击 let run_and_shoot_ai WhileAll( Box::new(Action(EnemyNPC::HasActionPointsLeft)), vec![Action(EnemyNPC::Run), Action(EnemyNPC::Shoot)], ); // 外层只要 NPC 没死就循环 [跑射子程序 → 休息 → 死亡] let top_ai WhileAll( Box::new(Action(EnemyNPC::IsDead)), vec![run_and_shoot_ai, Action(EnemyNPC::Rest), Action(EnemyNPC::Die)], ); let mut bt BT::new(top_ai, blackboard);三个新手关键点WhileAll(条件, [子节点...])条件成立期间反复执行子节点列表Action(...)是叶子节点你在回调里实现具体逻辑并返回(Status, dt)BT::new(behavior, blackboard)创建行为树blackboard黑板是所有节点共享的工作内存例如示例用它记录射击次数第三步5 分钟跑起来cargo run --bin simple_npc_ai控制台会输出 NPC 的完整行动时间线NPC has action points: 3 Performing action: run. Action points: 2 Performing action: shoot. Action points: 1 Rested for a while... Action points: 2 NPC died... NPC shot 3 times during the simulation.游戏主循环里只需每帧调用一次bt.tick(...)得到Success | Failure就结束、Running就继续下一帧——行为树自己负责全部决策流。进阶彩蛋打开实时行为树可视化器 Bonsai 内置 WebSocket 可视化器。在示例 examples/src/visualizer_smoke/main.rs 中只需一个 API 调用let mut bt BT::static str, ()::new(build_tree(), ()) .with_telemetry(8910) // 开启可视化监听 8910 端口 .expect(bind 127.0.0.1:8910);运行cargo run --bin visualizer_smoke然后在浏览器打开http://127.0.0.1:8910/即可看到 27 节点的行为树实时渲染绿色为Success、黄色为Running、红色为Failure执行路径会逐帧点亮——调试 AI 从此告别满屏println!。行为积木速查表积木含义Sequence([A, B])A 成功后执行 B按顺序Select([A, B])先试 AA 失败再试 B优先级从高到低If(cond, A, B)条件成立执行 A否则执行 BWhile(cond, [A, B])cond 为真期间反复执行 A、BWhenAll([A, B])并行执行等全部成功WhenAny([A, B])并行执行等任一成功Race([A, B])并行竞速先完成者胜出After([A, B])并行执行但 A 必须先于 B 成功Invert(A)A 成功则返回失败反之亦然完整定义见 bonsai/src/behavior.rs。继续探索 更多可运行示例Boids 群集、3D 动画、无人机异步任务、Race 超时examples/README.md 长耗时任务如何交给后台线程而不阻塞行为树examples/src/async_drone/main.rs 并行语义、事件系统、Behavior 与 State 的区别docs/concepts/README.md 贡献与开发指南DEVELOPMENT.md一行bonsai-bt *你的游戏 NPC 就能拥有模块化、可观测、可扩展的 AI 大脑——这就是 Bonsai。赞分享【免费下载链接】bonsaiRust implementation of behavior trees for deterministic AI (now with Python bindings)项目地址https://gitcode.com/gh_mirrors/bonsai1/bonsai点击查看免费下载相关推荐5分钟快速上手Leaf构建你的第一个游戏服务器5分钟快速上手Leaf构建你的第一个游戏服务器 想要快速搭建高性能的游戏服务器Leaf是一个用Go语言编写的开源游戏服务器框架它提供了简单易用的接口和强大游戏开发后端网络RPC框架5分钟快速上手AgileConfig如何用Docker一行命令启动你的第一个.NET配置中心5分钟快速上手AgileConfig如何用Docker一行命令启动你的第一个.NET配置中心 AgileConfig 是一个基于 .NET Core 开发的轻后端微服务配置中心B站会员购抢票实战5步掌握Python自动化购票的终极指南B站会员购抢票实战5步掌握Python自动化购票的终极指南 在B站热门活动如BW、BML门票开售时你是否经历过页面卡顿、验证码干扰、网络延迟导致的抢票失败电商RPA创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考