Files
esengine/extensions/cocos/cocos-ecs/README_BehaviorTree_Demo.md

122 lines
4.3 KiB
Markdown
Raw Normal View History

2025-06-24 19:34:37 +08:00
# 行为树 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游戏开发的起点。