Files
FlowScope/docs/game-core-requirement-tiers.md
2026-05-15 15:38:40 +08:00

142 lines
4.4 KiB
Markdown
Raw Permalink 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.
# 通用游戏 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 验证。