Files
esengine/extensions/cocos/cocos-ecs/README_BehaviorTree_Demo.md
2025-06-24 19:34:37 +08:00

4.3 KiB
Raw Blame History

行为树 RTS 演示项目

这是一个展示@esengine/ai行为树系统在RTS游戏中应用的完整演示项目。

项目概述

该演示项目展示了如何在Cocos Creator 3D环境中使用行为树系统创建智能的RTS单位AI。项目包含三种不同类型的单位每种都有独特的行为模式和AI策略。

单位类型

1. 工人 (Worker)

  • 文件: worker-ai.btree, worker-ai.bt.json
  • 特点: 专注于资源收集、建造和修理
  • 行为优先级: 紧急情况 > 命令执行 > 空闲行为
  • 主要功能:
    • 资源收集和运输
    • 建筑建造
    • 结构修理
    • 自动寻找附近资源
    • 生命值过低时撤退

2. 士兵 (Soldier)

  • 文件: soldier-ai.btree, soldier-ai.bt.json
  • 特点: 专注于战斗、防御和战术行动
  • 行为优先级: 战斗 > 命令执行 > 防御行为
  • 主要功能:
    • 近战和远程攻击
    • 敌人检测和交战
    • 战术移动和撤退
    • 区域防御和巡逻
    • 队形保持

3. 侦察兵 (Scout)

  • 文件: scout-ai.btree, scout-ai.bt.json
  • 特点: 专注于探索、侦察和信息收集
  • 行为优先级: 生存 > 命令执行 > 自主侦察
  • 主要功能:
    • 区域探索和侦察
    • 威胁检测和规避
    • 隐蔽移动和撤退
    • 情报收集和报告
    • 自主探索未知区域

技术特点

行为树设计

  • 选择器(Selector): 根据优先级选择行为分支
  • 序列器(Sequence): 按顺序执行一系列行为
  • 条件装饰器(Conditional Decorator): 基于条件执行子节点
  • 事件动作(Event Action): 执行具体的游戏行为
  • 等待动作(Wait Action): 添加时间延迟

黑板系统

每个单位都有独立的黑板变量,用于存储和共享状态信息:

  • 单位属性(生命值、移动速度、攻击力等)
  • 状态标志(是否移动、是否有目标等)
  • 位置信息(当前位置、目标位置等)
  • 特殊能力(隐蔽、战斗模式等)

文件格式

.btree 文件(编辑器格式)

  • 包含完整的编辑器状态和元数据
  • 包含节点位置、连接关系、属性配置
  • 包含黑板变量定义和初始值
  • 支持编辑器的撤销/重做、剪贴板等功能

.bt.json 文件(运行时格式)

  • 精简的运行时格式,只包含游戏所需的核心数据
  • 优化的数据结构,适合快速加载和执行
  • 移除了编辑器相关的元数据

代码结构

核心组件

  • RTSDemo.ts: 主控制器,管理整个演示场景
  • UnitController.ts: 单位控制器,管理单位的基本行为和状态
  • BehaviorTreeManager.ts: 行为树管理器,集成@esengine/ai系统
  • RTSCameraController.ts: RTS相机控制器
  • UIController.ts: 用户界面控制器

关键特性

  • 纯Cocos Creator实现: 不依赖其他框架,专注展示行为树功能
  • 实时状态同步: 单位状态自动同步到行为树黑板
  • 命令系统: 支持移动、攻击、收集、巡逻等RTS命令
  • 可视化调试: 实时显示单位状态和行为信息

使用方法

1. 在行为树编辑器中

  1. 打开对应的.btree文件进行编辑
  2. 修改节点逻辑、添加新行为或调整优先级
  3. 导出为.bt.json文件供游戏运行时使用

2. 在游戏中

  1. 运行场景观察不同单位的AI行为
  2. 使用UI按钮发布命令测试单位响应
  3. 观察单位在不同情况下的行为切换

3. 扩展开发

  • 添加新的行为节点类型
  • 创建更复杂的AI策略
  • 集成更多游戏机制(资源系统、建筑系统等)

演示价值

这个项目完整展示了:

  1. 行为树在RTS游戏中的实际应用
  2. 不同单位类型的AI差异化设计
  3. 复杂游戏逻辑的行为树实现方式
  4. 黑板系统在状态管理中的作用
  5. 行为树编辑器与游戏运行时的集成

技术亮点

  • 模块化设计: 每个单位类型独立的行为树设计
  • 优先级系统: 清晰的行为优先级和决策逻辑
  • 状态管理: 完善的黑板变量系统
  • 实时调试: 支持运行时状态监控和调试
  • 可扩展性: 易于添加新的单位类型和行为

这个演示项目可以作为学习行为树系统的完整案例也可以作为实际RTS游戏开发的起点。