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

122 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 行为树 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游戏开发的起点。