Files
esengine/docs/beginner-tutorials.md
2025-08-11 09:31:44 +08:00

187 lines
7.0 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.
# 新手教程完整指南
欢迎使用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学习之旅吧