# 教程

欢迎来到 GFramework 教程中心！这里提供从入门到精进的完整学习路径，帮助你掌握这个面向游戏开发的模块化 C# 框架。

## 📚 可用教程

### [基础教程](./basic/)

> 从零开始学习 GFramework，通过构建一个完整的计数器应用，逐步掌握框架的核心概念。

**适合人群**：

- C# 和面向对象编程初学者
- 希望了解 GFramework 基础架构的开发者
- 准备使用 Godot + GFramework 进行开发的团队

**学习内容**：

- 开发环境搭建（.NET SDK + Godot）
- 项目初始化与架构配置
- Model、Command、System、Utility 核心概念
- 事件驱动架构实践
- MVC 模式在游戏开发中的应用

**预计时间**：2-3 小时

---

### [Godot 集成教程](./godot-integration.md)

> 深入学习 GFramework 与 Godot 引擎的深度集成，掌握高级开发技巧。

**适合人群**：

- 已完成基础教程的开发者
- 需要优化 Godot 项目性能的开发者
- 希望实现复杂游戏系统的架构师

**学习内容**：

- 节点生命周期管理
- 信号系统集成与桥接
- 资源管理优化策略
- 对象池化系统实现
- 性能优化最佳实践
- 调试与测试方法

**预计时间**：3-4 小时

---

### [高级模式教程](./advanced-patterns.md)

> 探索 GFramework 的高级特性和企业级设计模式。

**适合人群**：

- 有 GFramework 实战经验的开发者
- 需要构建大型复杂游戏系统的团队
- 对架构设计有深入追求的开发者

**学习内容**：

- CQRS（命令查询职责分离）模式
- 领域驱动设计（DDD）
- 事件溯源与事件总线
- 插件系统架构
- 多人游戏网络集成

**预计时间**：4-6 小时

---

### 系统实现教程

#### [使用协程系统](./coroutine-tutorial.md)

> 学习如何使用协程系统实现异步操作和时间控制。

**学习内容**：创建协程、等待指令、事件等待、协程组合

**预计时间**：1-2 小时

#### [实现状态机](./state-machine-tutorial.md)

> 学习如何使用状态机系统管理游戏状态和场景切换。

**学习内容**：定义状态、状态转换、异步状态、状态历史

**预计时间**：1-2 小时

#### [实现暂停系统](./pause-system.md)

> 学习如何使用暂停系统实现多层暂停管理和游戏流程控制。

**学习内容**：基本暂停、分组暂停、暂停栈、自定义处理器

**预计时间**：1-2 小时

#### [资源管理最佳实践](./resource-management.md)

> 学习如何高效管理游戏资源的加载、缓存和释放。

**学习内容**：资源加载、缓存策略、释放策略、内存优化

**预计时间**：1-2 小时

#### [实现存档系统](./save-system.md)

> 学习如何实现完整的游戏存档和读档系统。

**学习内容**：数据序列化、存档管理、版本控制、加密保护

**预计时间**：1-2 小时

---

## 🎯 学习路径建议

### 路径一：快速上手（推荐新手）

```
基础教程（全章节） → Godot 集成教程（选择性阅读） → 开始你的项目
```

**时间**：2-3 天
**目标**：掌握 GFramework 核心，能够独立开发简单游戏

---

### 路径二：系统学习（推荐完整掌握）

```
基础教程 → Godot 集成教程 → 小项目实践 → 高级模式教程
```

**时间**：1-2 周
**目标**：深入理解框架设计思想，能够优化和扩展框架

---

### 路径三：架构师之路（推荐团队负责人）

```
高级模式教程（预览） → 基础教程 → Godot 集成教程 → 高级模式教程（深入） → 架构设计实践
```

**时间**：2-4 周
**目标**：能够设计可扩展、可维护的大型游戏架构

---

## 💡 学习建议

### 实践为王

- **跟随编码**：不要只看，要动手跟着教程敲代码
- **修改实验**：在示例代码基础上进行修改，观察变化
- **独立实现**：学完后尝试用学到的东西实现一个小功能

### 理解原理

- **思考设计意图**：每个架构决策背后都有原因
- **对比传统方式**：理解为什么使用框架会带来好处
- **举一反三**：将模式应用到其他类似场景

### 善用资源

- **查阅文档**：结合 [Core 核心框架](../core/) 和 [Godot 集成](../godot/) 文档
- **查看示例**：参考框架附带的示例项目
- **社区交流**：遇到问题时查看 GitHub Issues 或参与讨论

---

## 📖 前置知识要求

### 必需

- **C# 基础语法**：类、接口、泛型、Lambda 表达式
- **面向对象编程**：封装、继承、多态
- **命令行基础**：能够使用终端/命令提示符

### 推荐

- **Godot 引擎基础**：了解节点系统和场景概念
- **MVC/MVVM 架构**：了解分层架构的基本思想
- **依赖注入**：了解 IoC 容器的基本概念

---

## 🔗 相关资源

- [入门指南](../getting-started/) - 快速了解框架和安装配置
- [Core 核心框架](../core/) - 深入学习核心概念
- [Game 模块](../game/) - 游戏特定功能文档
- [Godot 集成](../godot/) - Godot 特定功能参考
- [源码生成器](../source-generators/) - 自动化代码生成工具

---

## ❓ 常见问题

**Q: 我没有 Godot 经验，能学习 GFramework 吗？**

A: 建议先花 1-2 小时了解 Godot 基础概念（节点、场景、信号），这样可以更好地理解教程内容。

**Q: 教程中的代码可以直接用于生产环境吗？**

A: 教程代码主要用于教学目的，生产环境建议参考 [最佳实践](./basic/07-summary.md#最佳实践总结) 章节进行优化。

**Q: 学习过程中遇到问题怎么办？**

A: 可以：

1. 仔细查看错误信息和文档
2. 对照教程中的完整代码检查自己的实现
3. 查看 [GitHub Issues](https://github.com/GeWuYou/GFramework/issues)
4. 提交新的 Issue 寻求帮助

**Q: 完成所有教程需要多长时间？**

A: 根据学习深度不同：

- 快速浏览（了解概念）：4-6 小时
- 完整实践（动手编码）：10-15 小时
- 深入理解（举一反三）：20+ 小时

---

## 🚀 准备好了吗？

选择适合你的学习路径，开始 GFramework 之旅吧！

<div style="text-align: center; margin: 2rem 0;">

[开始基础教程 →](./basic/)

</div>

---

::: tip 提示
本教程文档使用 VitePress 构建，支持全文搜索。使用快捷键 `Ctrl+K`（Windows/Linux）或 `Cmd+K`（macOS）可以快速查找内容。
:::

::: warning 版本说明
教程基于 GFramework v1.0+ 编写。如果你使用的是更早的版本，某些 API 可能会有差异。
:::
