142 lines
4.4 KiB
Markdown
142 lines
4.4 KiB
Markdown
# 通用游戏 Core 需求分档文档
|
||
|
||
## 文档说明
|
||
|
||
本文档定义 FlowScope Game Core 的需求分档。P0 的详细需求已经收敛到:
|
||
|
||
- `docs/requirements/p0-requirements-set.md`
|
||
- `docs/requirements/p0-container.md`
|
||
- `docs/requirements/p0-gameflow.md`
|
||
- `docs/requirements/p0-feature.md`
|
||
- `docs/requirements/p0-data-r3.md`
|
||
- `docs/requirements/p0-configprovider.md`
|
||
- `docs/requirements/p0-saveservice.md`
|
||
- `docs/requirements/p0-resourceservice.md`
|
||
- `docs/requirements/p0-uimanager.md`
|
||
- `docs/requirements/p0-audioservice.md`
|
||
|
||
如本文档与上述 P0 详细文档冲突,以 P0 详细文档为准。
|
||
|
||
---
|
||
|
||
## 分档原则
|
||
|
||
1. 先满足游戏开发闭环,再追求通用框架完整性。
|
||
2. 显式接口优先,不暗猜业务模型,不预设具体 Data 类。
|
||
3. P0 必须能支撑一个真实休闲游戏的最小纵向切片。
|
||
4. P1 扩展常用生产能力,但不破坏 P0 核心接口。
|
||
5. P2 才考虑包分发、编辑器体验、多后端生态和跨项目复用。
|
||
6. P3 作为长期演进方向,不进入近期交付承诺。
|
||
|
||
---
|
||
|
||
## P0:最小可运行核心
|
||
|
||
目标:跑通一个休闲/超休闲 Unity 游戏的启动、配置加载、存档加载、进入初始 Feature、打开 MVVM UI、响应 ViewModel/Data 变化、退出并保存。
|
||
|
||
P0 包含:
|
||
|
||
| 模块 | 决策 |
|
||
|------|------|
|
||
| Container | 显式工厂、Attribute + Source Generator、Attribute + 运行时反射均进入 P0 |
|
||
| GameFlow | 负责创建 Feature scope、FeatureContext,并编排启动/切换/关闭 |
|
||
| Feature | 只负责业务行为,消费 GameFlow 提供的 FeatureContext |
|
||
| R3 + Data | 直接使用 R3,不自研响应式系统 |
|
||
| ConfigProvider | P0 只支持 JSON 强类型读取 |
|
||
| SaveService | P0 只支持本地轻量存档,File 或 PlayerPrefs |
|
||
| ResourceService | P0 支持引用计数和 ResourceGroup,默认只支持 Addressables |
|
||
| UIManager | P0 支持可配置层级和层内 LIFO 栈 |
|
||
| AudioService | P0 支持 BGM/SFX、音量、静音、简单 SFX 池和轻量 AudioHandle |
|
||
|
||
P0 不包含:
|
||
|
||
- CSV / Luban / ScriptableObject 配置。
|
||
- 云存档、加密、压缩、复杂版本迁移。
|
||
- Resources / AssetBundle / YooAsset 资源后端。
|
||
- 完整 UI 路由系统。
|
||
- 全局 EventBus。
|
||
- AudioMixer、3D 音频、动态音乐。
|
||
- 编辑器配置检查和资源分析工具。
|
||
|
||
P0 完成后应能做到:
|
||
|
||
- Unity 启动后进入 `GameBootstrap`。
|
||
- 注册核心服务和业务 Data。
|
||
- 加载 JSON 配置。
|
||
- 加载或创建存档数据。
|
||
- 进入 `MainMenuFeature`。
|
||
- 打开 `MainMenuPanel`。
|
||
- ViewModel 使用 R3 驱动 UI 刷新。
|
||
- 切换或关闭 Feature 时释放资源和订阅。
|
||
- 关闭游戏时保存数据。
|
||
|
||
---
|
||
|
||
## P1:常用生产能力
|
||
|
||
目标:在 P0 核心稳定后,扩展常用生产能力,仍然保持 Core 主接口稳定。
|
||
|
||
候选能力:
|
||
|
||
| 能力 | 建议形式 |
|
||
|------|----------|
|
||
| 按模块配置加载 | `IConfigSource` 扩展 |
|
||
| CSV / Luban 配置 | `IConfigParser` 插件 |
|
||
| 存档版本迁移 | `ISaveMigration` 插件 |
|
||
| Resources 后端 | `IResourceBackend` 插件 |
|
||
| YooAsset 后端 | `IResourceBackend` 插件 |
|
||
| UI 返回策略 | `IUIScreenNavigator` 扩展 |
|
||
| Panel 预加载 | UIManager 扩展服务 |
|
||
| AudioMixer 分组 | AudioService 扩展 |
|
||
| 3D 音频 | AudioService 扩展 |
|
||
|
||
---
|
||
|
||
## P2:包分发与生态化
|
||
|
||
目标:当多个项目复用需求明确后,把 Game Core 整理为更标准的 Unity Package 和可插拔生态。
|
||
|
||
候选能力:
|
||
|
||
- `com.flowscope.gamecore` 包结构。
|
||
- `package.json` / `README.md` / `CHANGELOG.md` / `Samples~`。
|
||
- 独立 asmdef 拆分。
|
||
- Editor 导入向导。
|
||
- 配置校验工具。
|
||
- 资源扫描和分析工具。
|
||
- 云存档适配包。
|
||
- AssetBundle 适配包。
|
||
- UI 路由包。
|
||
|
||
---
|
||
|
||
## P3:长期演进方向
|
||
|
||
目标:只作为方向保留,不进入近期交付范围。
|
||
|
||
候选能力:
|
||
|
||
- Source Generator 深度优化。
|
||
- `[Inject]` 属性/方法注入。
|
||
- 全局 EventBus 并支持 R3/默认实现切换。
|
||
- 完整网络长连接、断线重连、心跳机制。
|
||
- 云存档冲突解决。
|
||
- 热更新框架。
|
||
- UI 自动绑定框架。
|
||
- 大型项目资源预算和内存分析工具。
|
||
|
||
---
|
||
|
||
## 当前实施建议
|
||
|
||
当前只实施 P0。P0 的并行实施计划见:
|
||
|
||
- `docs/superpowers/plans/2026-05-15-p0-parallel-implementation-plan.md`
|
||
|
||
执行顺序:
|
||
|
||
1. 先完成 `p0-contracts`。
|
||
2. 合并共享契约。
|
||
3. 再并行执行各模块 worktree。
|
||
4. 最后由 `p0-integration` 做统一集成和 Sample 验证。
|