# 新手教程完整指南

欢迎使用ECS框架！本指南为新手提供了完整的学习路径，从基础概念到高级应用，帮你快速掌握ECS框架开发游戏。

## 学习路径

### 第一阶段：基础入门（必读）

#### 1. [快速开始](getting-started.md)
-  **5分钟入门** - 创建你的第一个ECS游戏
- **环境搭建** - 安装和配置框架
-  **第一个游戏** - 完整的示例游戏
-  **基础API** - 核心功能介绍

#### 2. [核心概念](core-concepts.md)
- **ECS架构** - 实体、组件、系统的关系
-  **API参考** - 核心类和方法
-  **最佳实践** - 代码规范和设计模式
-  **查询系统** - 如何高效查找实体

#### 3. [概念详解](concepts-explained.md) **新手必读**
- **通俗解释** - 用简单语言解释复杂概念
-  **性能优化技术** - 组件索引、Archetype、脏标记
-  **索引选择指南** - 何时使用哈希索引vs位图索引
-  **应用场景** - 不同游戏类型的选择建议

### 第二阶段：核心功能掌握

#### 4. [实体管理指南](entity-guide.md)
- **实体基础** - 什么是实体，如何创建和使用
- **标签系统** - 实体分类和查找
- **生命周期** - 实体的创建、更新、销毁
-  **简单示例** - 玩家、敌人、道具实体

#### 5. [组件设计最佳实践](component-design-guide.md) **设计必读**
- **组件设计原则** - 单一职责、数据为主
- **组件类型** - 数据组件、标记组件、行为组件
- **组件通信** - 如何让组件协同工作
-  **性能优化** - 对象池和数据紧凑性
- **测试和调试** - 如何测试你的组件

#### 6. [系统详解指南](system-guide.md) **逻辑必读**
- **四种系统类型** - EntitySystem、ProcessingSystem、IntervalSystem、PassiveSystem
-  **使用场景** - 什么时候用哪种系统
- **执行顺序** - 系统间的依赖关系
- **系统通信** - 事件驱动的松耦合设计
-  **性能优化** - 批量处理和频率控制

### 第三阶段：高级功能应用

#### 7. [场景管理指南](scene-management-guide.md)
-  **场景概念** - 什么是场景，如何组织游戏世界
-  **场景切换** - 菜单、游戏、暂停场景的切换
-  **数据传递** - 场景间如何传递数据
-  **实际应用** - 完整的游戏场景设计
-  **性能优化** - 场景级别的性能监控

#### 8. [定时器系统指南](timer-guide.md)
-  **定时器基础** - 延迟执行、重复执行
-  **定时器链** - 顺序执行多个任务
-  **条件定时器** - 等待特定条件满足
-  **可暂停定时器** - 游戏暂停功能
-  **游戏应用** - Buff系统、技能冷却、关卡限时

#### 9. [查询系统使用](query-system-usage.md)
-  **基础查询** - 按组件查找实体
-  **复杂查询** - 组合条件和排除条件
-  **性能监控** - 查询性能统计
-  **优化技巧** - 提高查询效率

#### 10. [事件系统示例](event-system-example.md)
-  **事件基础** - 发送和监听事件
-  **游戏事件** - 玩家输入、碰撞、分数等
-  **系统解耦** - 用事件实现系统间通信
-  **事件统计** - 监控事件系统性能

### 第四阶段：实战应用

#### 11. [实体管理器高级功能](entity-manager-example.md)
- 🏭 **批量操作** - 高效创建和管理大量实体
-  **高级查询** - EntityQueryBuilder的使用
-  **性能监控** - 实体管理性能统计
-  **实际案例** - 弹幕游戏、RTS游戏的实体管理

#### 12. [应用案例集合](use-cases.md)
-  **不同游戏类型** - 休闲游戏、动作游戏、策略游戏
-  **具体实现** - 完整的代码示例
-  **性能分析** - 各种应用的性能特点
-  **设计思路** - 如何选择合适的架构

### 第五阶段：性能优化

#### 13. [性能基准测试](performance.md)
-  **基准数据** - 框架性能表现
-  **对比分析** - 与其他框架的比较
-  **优化建议** - 针对不同规模的优化策略
-  **性能检查清单** - 确保最佳性能的要点

#### 14. [性能优化技术](performance-optimization.md)
-  **核心优化** - 组件索引、Archetype、脏标记
-  **内存优化** - 对象池、数据紧凑性
-  **批量处理** - 减少单次操作开销
-  **监控工具** - 性能分析和调试

##  推荐学习顺序

### 适合完全新手（第一次接触ECS）

```
1. 快速开始 → 2. 概念详解 → 3. 核心概念 → 4. 实体管理指南 
→ 5. 组件设计指南 → 6. 系统详解指南 → 7. 应用案例
```

### 适合有游戏开发经验的开发者

```
1. 快速开始 → 2. 核心概念 → 3. 组件设计指南 → 4. 系统详解指南 
→ 5. 场景管理指南 → 6. 性能优化技术
```

### 适合追求高性能的开发者

```
1. 快速开始 → 2. 概念详解(重点看性能优化) → 3. 性能基准测试 
→ 4. 性能优化技术 → 5. 实体管理器高级功能
```

## 常见学习问题

### Q: 我应该从哪里开始？

A: 建议先阅读[快速开始](getting-started.md)，然后根据你的背景选择学习路径：
- **新手**：重点看概念详解
- **有经验**：直接看核心概念和设计指南
- **追求性能**：重点看性能相关文档

### Q: ECS和传统OOP有什么区别？

A: 详见[概念详解](concepts-explained.md)的"ECS vs 传统架构"部分，用简单例子解释两者差异。

### Q: 如何选择组件索引类型？

A: [概念详解](concepts-explained.md)有详细的索引选择指南，包括决策流程图和具体示例。

### Q: 系统的执行顺序重要吗？

A: 非常重要！[系统详解指南](system-guide.md)详细解释了系统顺序的重要性和设置方法。

### Q: 如何调试性能问题？

A: 
1. 使用[性能基准测试](performance.md)中的工具
2. 参考[性能优化技术](performance-optimization.md)的监控方法
3. 查看[实体管理器示例](entity-manager-example.md)的统计功能

## 📖 扩展阅读

### 设计模式和架构
- [组件设计最佳实践](component-design-guide.md) - 如何设计可维护的组件
- [系统详解指南](system-guide.md) - 系统间的协作模式

### 性能和优化
- [概念详解](concepts-explained.md) - 性能优化技术原理
- [性能优化技术](performance-optimization.md) - 具体优化实现

### 实际应用
- [应用案例集合](use-cases.md) - 不同类型游戏的实现
- [场景管理指南](scene-management-guide.md) - 复杂游戏的场景组织

##  学习建议

### 实践为主
-  **边学边做** - 每学一个概念都尝试写代码实现
-  **从小做起** - 先做简单的游戏，再逐步增加复杂度
-  **多做实验** - 尝试不同的设计方案，体会优劣

### 理解原理
- **思考为什么** - 不只学怎么做，更要理解为什么这样做
-  **关注性能** - 了解各种操作的性能影响
-  **深入源码** - 有疑问时查看框架源码

### 循序渐进
- **按顺序学习** - 先掌握基础，再学高级功能
- **专注重点** - 每次只专注一个主题，不要贪多
- **反复练习** - 重要概念要多练习才能熟练

开始你的ECS学习之旅吧！