1090 lines
20 KiB
Markdown
1090 lines
20 KiB
Markdown
下面是按你最新判断重新整理后的 **MetaCore 完整任务计划 v2**。
|
||
核心调整是:**Runtime UI MVP 提前到 Build Settings / 项目打包之前**。
|
||
|
||
---
|
||
|
||
# MetaCore 当前总路线
|
||
|
||
```text
|
||
P0 迁移基线:Panda3D 清理 / JSON 资产链路稳定
|
||
↓
|
||
P1 渲染主链路:ECS → SceneRenderSync → Filament
|
||
↓
|
||
P2 编辑器基础闭环:Hierarchy / Inspector / Gizmo / Save Reload
|
||
↓
|
||
P3 编辑器生产力:Project / Import / Prefab / Material / Launch Player
|
||
↓
|
||
P4 Runtime UI MVP:RmlUi 最小运行时 UI 闭环
|
||
↓
|
||
P5 Build Settings:项目打包入口
|
||
↓
|
||
P6 Cooked Runtime:真正发布期运行
|
||
↓
|
||
P7 多平台 / 国产化 / Web
|
||
↓
|
||
P8 稳定化 / 文档 / 示例项目 / 版本发布
|
||
```
|
||
|
||
---
|
||
|
||
# 当前状态
|
||
|
||
## 已完成
|
||
|
||
```text
|
||
P0 迁移基线:已完成
|
||
P1 渲染主链路:已完成
|
||
P2 编辑器基础闭环:已完成
|
||
```
|
||
|
||
也就是现在 MetaCore 已经具备:
|
||
|
||
```text
|
||
JSON Scene
|
||
→ ECS Scene
|
||
→ SceneRenderSync
|
||
→ Filament 渲染
|
||
→ Editor Hierarchy
|
||
→ Inspector
|
||
→ Gizmo
|
||
→ Save / Reload
|
||
→ Player 主相机运行
|
||
```
|
||
|
||
接下来正式进入 **P3 编辑器生产力阶段**。
|
||
|
||
---
|
||
|
||
# P0:迁移基线【已完成】
|
||
|
||
## 目标
|
||
|
||
清理 Panda3D 历史层,确立 Filament + JSON 资产路线。
|
||
|
||
## 已完成
|
||
|
||
```text
|
||
P0.1 移除 Panda3D / simplepbr 构建引用
|
||
P0.2 删除 MetaCorePandaSceneBridge
|
||
P0.3 删除 cmake/MetaCorePanda3D.cmake
|
||
P0.4 清空 PANDA3D_ROOT 后可独立 configure
|
||
P0.5 Release 构建 Editor / Player / SmokeTests 通过
|
||
P0.6 默认场景切到 .mcscene.json
|
||
P0.7 Prefab 切到 .mcprefab.json
|
||
P0.8 .mcmeta 不再被 ImportPipeline 当成源资产
|
||
P0.9 Cook 支持 JSON 场景 / Prefab / Material / UI
|
||
```
|
||
|
||
## 仍建议补充
|
||
|
||
```text
|
||
P0-T01 整理 SandboxProject 历史模型资源改动
|
||
P0-T02 确认 Library/Cooked 是否进入 .gitignore
|
||
P0-T03 给当前迁移状态打 milestone commit
|
||
```
|
||
|
||
建议里程碑:
|
||
|
||
```text
|
||
milestone: remove Panda3D backend and stabilize JSON asset pipeline
|
||
```
|
||
|
||
---
|
||
|
||
# P1:渲染主链路【已完成】
|
||
|
||
## 目标
|
||
|
||
让 Filament 真正由 ECS 场景数据驱动,而不是只跑 Demo。
|
||
|
||
## 已完成
|
||
|
||
```text
|
||
P1.1 新增 SceneRenderSync 快照层
|
||
P1.2 收集 MeshRenderer / Camera / Light / WorldMatrix
|
||
P1.3 Filament bridge 读取 SceneRenderSync 快照
|
||
P1.4 Scene Light 同步到 Filament Light
|
||
P1.5 Player 优先使用场景主相机
|
||
P1.6 Editor Gizmo 保持 ImGui / ImGuizmo overlay
|
||
P1.7 Smoke test 通过
|
||
P1.8 Editor / Player / Tests Release 构建通过
|
||
```
|
||
|
||
## 后续技术债
|
||
|
||
```text
|
||
T-DEP-001 解决 Filament Debug / Release runtime mismatch
|
||
```
|
||
|
||
当前可以先明确支持:
|
||
|
||
```text
|
||
Release
|
||
RelWithDebInfo
|
||
```
|
||
|
||
Debug 链接失败暂时不要阻塞主线。
|
||
|
||
---
|
||
|
||
# P2:编辑器基础闭环【已完成】
|
||
|
||
## 目标
|
||
|
||
让 MetaCoreEditorApp 具备最小 Unity-like 场景编辑能力。
|
||
|
||
## 已完成
|
||
|
||
```text
|
||
P2.1 Hierarchy 显示实体
|
||
P2.2 Entity Selection
|
||
P2.3 Inspector 编辑 Transform
|
||
P2.4 Inspector 编辑 Camera
|
||
P2.5 Inspector 编辑 Light
|
||
P2.6 SceneView 渲染 ECS 场景
|
||
P2.7 Gizmo 操作 Transform
|
||
P2.8 保存 .mcscene.json
|
||
P2.9 关闭重开后恢复场景
|
||
P2.10 Player 使用主相机场景运行
|
||
```
|
||
|
||
## P2 验收标准
|
||
|
||
```text
|
||
打开 Editor
|
||
→ 打开 Main.mcscene.json
|
||
→ 选择实体
|
||
→ Inspector 修改 Transform / Camera / Light
|
||
→ Gizmo 移动物体
|
||
→ 保存场景
|
||
→ 关闭 Editor
|
||
→ 重新打开 Editor
|
||
→ 场景恢复
|
||
→ 启动 Player
|
||
→ Player 使用主相机渲染
|
||
```
|
||
|
||
建议里程碑:
|
||
|
||
```text
|
||
milestone: complete editor authoring loop
|
||
```
|
||
|
||
---
|
||
|
||
# P3:编辑器生产力【下一阶段重点】
|
||
|
||
## 阶段目标
|
||
|
||
让编辑器从“能编辑场景”升级为“能组织项目资产、导入资源、创建 Prefab、编辑材质、一键运行”。
|
||
|
||
P3 不做正式打包,不做 cooked-only runtime。
|
||
|
||
---
|
||
|
||
## P3.1 Project 面板增强
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P3.1-T01 显示 Assets 目录树
|
||
P3.1-T02 显示 Scenes / Prefabs / Models / Materials / Textures / UI
|
||
P3.1-T03 识别 .mcscene.json
|
||
P3.1-T04 识别 .mcprefab.json
|
||
P3.1-T05 识别 .gltf / .glb
|
||
P3.1-T06 识别材质 JSON
|
||
P3.1-T07 识别贴图 png / jpg / ktx / hdr
|
||
P3.1-T08 支持刷新 Project 面板
|
||
P3.1-T09 支持右键菜单
|
||
P3.1-T10 支持重命名资产
|
||
P3.1-T11 支持删除资产
|
||
P3.1-T12 支持双击打开 Scene
|
||
```
|
||
|
||
### 验收标准
|
||
|
||
```text
|
||
Project 面板能浏览 Assets
|
||
双击 .mcscene.json 可打开场景
|
||
右键可刷新、重命名、删除基础资产
|
||
```
|
||
|
||
---
|
||
|
||
## P3.2 资产导入体验
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P3.2-T01 拖入 glTF / GLB 到 Assets
|
||
P3.2-T02 自动生成 .mcmeta
|
||
P3.2-T03 自动分配 AssetGuid
|
||
P3.2-T04 Project 面板自动刷新
|
||
P3.2-T05 导入后可在 Inspector 查看资产信息
|
||
P3.2-T06 模型资产可拖入 Scene
|
||
P3.2-T07 拖入 Scene 后生成 Entity + Transform + MeshRenderer
|
||
P3.2-T08 MeshRenderer 引用模型 AssetGuid
|
||
P3.2-T09 导入失败时 Console 输出错误
|
||
P3.2-T10 防止 .mcmeta 被重复导入
|
||
```
|
||
|
||
### 验收标准
|
||
|
||
```text
|
||
把 GLB 放入 Assets/Models
|
||
→ 自动生成 .mcmeta
|
||
→ Project 面板出现模型
|
||
→ 拖到 Scene
|
||
→ Hierarchy 出现实体
|
||
→ SceneView 显示模型
|
||
→ 保存重开后恢复
|
||
```
|
||
|
||
---
|
||
|
||
## P3.3 Prefab 最小工作流
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P3.3-T01 选中 Entity 后支持 Create Prefab
|
||
P3.3-T02 保存为 .mcprefab.json
|
||
P3.3-T03 Prefab 保存 Entity 层级、Transform、MeshRenderer、Camera、Light
|
||
P3.3-T04 Project 面板显示 Prefab
|
||
P3.3-T05 从 Project 拖 Prefab 到 Scene
|
||
P3.3-T06 实例化 Prefab Entity
|
||
P3.3-T07 Prefab Instance 保存 prefabGuid
|
||
P3.3-T08 Inspector 显示 Prefab Instance 状态
|
||
P3.3-T09 支持 Apply Prefab
|
||
P3.3-T10 支持 Revert Prefab
|
||
P3.3-T11 支持断开 Prefab 连接
|
||
```
|
||
|
||
### 暂不做
|
||
|
||
```text
|
||
Prefab Variant
|
||
Nested Prefab 深度编辑
|
||
Prefab Override 可视化 Diff
|
||
多人协作冲突解决
|
||
```
|
||
|
||
### 验收标准
|
||
|
||
```text
|
||
Entity → Save as Prefab
|
||
→ 删除原 Entity
|
||
→ 从 Project 拖 Prefab 回场景
|
||
→ 修改 Transform
|
||
→ Apply
|
||
→ 重新拖一个 Prefab 实例
|
||
→ 应用后的数据正确
|
||
```
|
||
|
||
---
|
||
|
||
## P3.4 Material 基础编辑
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P3.4-T01 定义 Material 资产格式
|
||
P3.4-T02 支持创建 Material
|
||
P3.4-T03 保存为 .mcmaterial.json 或当前已有材质 JSON
|
||
P3.4-T04 Inspector 编辑 BaseColor
|
||
P3.4-T05 Inspector 编辑 Metallic
|
||
P3.4-T06 Inspector 编辑 Roughness
|
||
P3.4-T07 支持 BaseColor Texture 引用
|
||
P3.4-T08 MeshRenderer 可绑定 Material AssetGuid
|
||
P3.4-T09 SceneRenderSync 收集 Material 引用
|
||
P3.4-T10 Filament bridge 应用 MaterialInstance
|
||
P3.4-T11 保存重开后材质恢复
|
||
```
|
||
|
||
### 暂不做
|
||
|
||
```text
|
||
Shader Graph
|
||
材质节点编辑器
|
||
复杂透明排序
|
||
完整 PBR 参数集
|
||
```
|
||
|
||
### 验收标准
|
||
|
||
```text
|
||
创建 Material
|
||
→ 修改 BaseColor / Roughness / Metallic
|
||
→ 绑定到模型
|
||
→ SceneView 更新
|
||
→ 保存重开恢复
|
||
```
|
||
|
||
---
|
||
|
||
## P3.5 一键 Launch Player
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P3.5-T01 菜单增加 Run / Launch Player
|
||
P3.5-T02 Launch 前自动保存当前场景
|
||
P3.5-T03 启动 MetaCorePlayer
|
||
P3.5-T04 传入 project path
|
||
P3.5-T05 传入 scene path
|
||
P3.5-T06 Player 加载当前场景
|
||
P3.5-T07 Player 使用主相机运行
|
||
P3.5-T08 Console 显示启动日志
|
||
P3.5-T09 Player 启动失败时 Editor 输出错误
|
||
```
|
||
|
||
### 验收标准
|
||
|
||
```text
|
||
Editor 中编辑场景
|
||
→ 点击 Run / Launch Player
|
||
→ 自动保存
|
||
→ 打开 Player
|
||
→ Player 显示同一个场景
|
||
```
|
||
|
||
---
|
||
|
||
## P3 完成标志
|
||
|
||
```text
|
||
Project 面板可用
|
||
资产导入可用
|
||
Prefab 最小闭环可用
|
||
Material 基础编辑可用
|
||
Editor 可一键启动 Player
|
||
```
|
||
|
||
建议里程碑:
|
||
|
||
```text
|
||
milestone: editor asset prefab material workflow
|
||
```
|
||
|
||
---
|
||
|
||
# P4:Runtime UI MVP【提前到打包前】
|
||
|
||
## 阶段目标
|
||
|
||
先让 MetaCore 运行时具备最小 UI 能力。
|
||
不做完整 UI 编辑器,只做能显示、保存、加载、响应基础输入的 RmlUi 运行时闭环。
|
||
|
||
---
|
||
|
||
## P4.1 RmlUi 基础集成
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P4.1-T01 接入 RmlUi 依赖
|
||
P4.1-T02 初始化 RmlUi Context
|
||
P4.1-T03 建立 RmlUi 渲染后端
|
||
P4.1-T04 建立输入事件转发
|
||
P4.1-T05 Player 中显示第一个 .rml 页面
|
||
P4.1-T06 支持字体加载
|
||
P4.1-T07 支持图片资源加载
|
||
```
|
||
|
||
### 验收标准
|
||
|
||
```text
|
||
启动 Player
|
||
→ 3D 场景正常渲染
|
||
→ 屏幕上显示一个 RmlUi 面板
|
||
```
|
||
|
||
---
|
||
|
||
## P4.2 UI 资产识别
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P4.2-T01 Project 面板识别 .rml
|
||
P4.2-T02 Project 面板识别 .rcss
|
||
P4.2-T03 生成 UI .mcmeta
|
||
P4.2-T04 UI 资产拥有 AssetGuid
|
||
P4.2-T05 ImportPipeline 不误处理 UI 依赖文件
|
||
P4.2-T06 双击 .rml 可预览或打开外部编辑器
|
||
```
|
||
|
||
### 验收标准
|
||
|
||
```text
|
||
Assets/UI/MainHUD.rml
|
||
Assets/UI/MainHUD.rcss
|
||
→ Project 面板正确显示
|
||
→ 有 GUID
|
||
→ 不被误导入成模型/场景
|
||
```
|
||
|
||
---
|
||
|
||
## P4.3 UIComponent
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P4.3-T01 新增 UIComponent
|
||
P4.3-T02 UIComponent 引用 RML AssetGuid
|
||
P4.3-T03 UIComponent 支持 Visible
|
||
P4.3-T04 UIComponent 支持 SortOrder
|
||
P4.3-T05 Inspector 可编辑 UIComponent
|
||
P4.3-T06 场景保存 UIComponent
|
||
P4.3-T07 场景重开恢复 UIComponent
|
||
P4.3-T08 Player 加载 UIComponent 并显示 UI
|
||
```
|
||
|
||
建议结构:
|
||
|
||
```cpp
|
||
struct UIComponent
|
||
{
|
||
AssetGuid Document;
|
||
bool Visible = true;
|
||
int SortOrder = 0;
|
||
};
|
||
```
|
||
|
||
### 验收标准
|
||
|
||
```text
|
||
创建 Entity
|
||
→ 添加 UIComponent
|
||
→ 指向 MainHUD.rml
|
||
→ 保存场景
|
||
→ Launch Player
|
||
→ UI 显示
|
||
```
|
||
|
||
---
|
||
|
||
## P4.4 UI 输入与基础事件
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P4.4-T01 鼠标移动输入
|
||
P4.4-T02 鼠标点击输入
|
||
P4.4-T03 键盘输入
|
||
P4.4-T04 Button click 回调
|
||
P4.4-T05 Console 输出 UI 事件
|
||
P4.4-T06 可通过简单事件名触发 Runtime Action
|
||
P4.4-T07 UI 可向 ECS/EventBus 派发事件
|
||
```
|
||
|
||
### 暂不做
|
||
|
||
```text
|
||
完整脚本系统
|
||
复杂数据绑定
|
||
可视化 UI Designer
|
||
UI 动画系统
|
||
主题编辑器
|
||
控件库市场
|
||
```
|
||
|
||
### 验收标准
|
||
|
||
```text
|
||
Player 显示 HUD
|
||
→ 点击按钮
|
||
→ Console 输出事件
|
||
→ 或派发一个 UIEvent 到 Runtime EventBus
|
||
```
|
||
|
||
---
|
||
|
||
## P4 完成标志
|
||
|
||
```text
|
||
RmlUi 能在 Player 中显示
|
||
.rml / .rcss 作为资产被 Project 面板识别
|
||
UIComponent 能随场景保存和加载
|
||
Player 能响应基础鼠标键盘输入
|
||
按钮点击能触发基础事件
|
||
```
|
||
|
||
建议里程碑:
|
||
|
||
```text
|
||
milestone: runtime UI MVP with RmlUi
|
||
```
|
||
|
||
---
|
||
|
||
# P5:Build Settings / 项目打包入口
|
||
|
||
## 阶段目标
|
||
|
||
在编辑器中提供正式打包入口,把场景、资产、UI、Player 组合成一个可运行发布目录。
|
||
|
||
---
|
||
|
||
## P5.1 Project Settings
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P5.1-T01 新增 ProjectSettings.json
|
||
P5.1-T02 保存项目名称
|
||
P5.1-T03 保存默认启动场景
|
||
P5.1-T04 保存窗口大小
|
||
P5.1-T05 保存公司名 / 应用名
|
||
P5.1-T06 保存目标平台配置
|
||
P5.1-T07 保存默认 UI / 启动 UI 配置
|
||
P5.1-T08 Editor 可读写 Project Settings
|
||
P5.1-T09 Player 可读取 Project Settings
|
||
```
|
||
|
||
### 验收标准
|
||
|
||
```text
|
||
Project Settings 可编辑
|
||
关闭重开后配置保持
|
||
Player 可读取项目名、默认场景、窗口大小
|
||
```
|
||
|
||
---
|
||
|
||
## P5.2 Build Settings 面板
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P5.2-T01 新增 File / Build Settings 菜单
|
||
P5.2-T02 显示 Scenes In Build
|
||
P5.2-T03 可添加当前场景到 Build
|
||
P5.2-T04 可移除 Build 场景
|
||
P5.2-T05 可设置主启动场景
|
||
P5.2-T06 显示 UI Assets / Runtime UI 依赖
|
||
P5.2-T07 可选择目标平台 Windows
|
||
P5.2-T08 可选择输出目录
|
||
P5.2-T09 可勾选 Development Build
|
||
P5.2-T10 可勾选 Use Cooked Assets
|
||
P5.2-T11 点击 Build 触发打包流程
|
||
```
|
||
|
||
### 验收标准
|
||
|
||
```text
|
||
打开 Build Settings
|
||
→ 添加 Main.mcscene.json
|
||
→ 确认 UI 资源依赖
|
||
→ 选择 Windows
|
||
→ 设置输出目录
|
||
→ 点击 Build
|
||
```
|
||
|
||
---
|
||
|
||
## P5.3 Build Pipeline 第一版
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P5.3-T01 Build 前保存所有 dirty scene
|
||
P5.3-T02 扫描 Scenes In Build
|
||
P5.3-T03 收集模型 / 材质 / 贴图依赖
|
||
P5.3-T04 收集 .rml / .rcss / 字体 / UI 图片依赖
|
||
P5.3-T05 调用已有 Cook 流程
|
||
P5.3-T06 生成 CookManifest
|
||
P5.3-T07 拷贝 MetaCorePlayer.exe
|
||
P5.3-T08 拷贝 Filament 运行时依赖 DLL
|
||
P5.3-T09 拷贝 RmlUi 运行时依赖 DLL
|
||
P5.3-T10 拷贝 cooked 资产
|
||
P5.3-T11 生成 RuntimeConfig.json
|
||
P5.3-T12 可将 MetaCorePlayer.exe 重命名为项目名.exe
|
||
P5.3-T13 输出 Build 日志
|
||
```
|
||
|
||
### 输出目录建议
|
||
|
||
```text
|
||
Builds/Windows/MyProject/
|
||
MyProject.exe
|
||
RuntimeConfig.json
|
||
Data/
|
||
CookManifest.bin
|
||
Assets/
|
||
*.mccooked
|
||
UI/
|
||
*.rml
|
||
*.rcss
|
||
Fonts/
|
||
Textures/
|
||
Plugins/
|
||
Logs/
|
||
```
|
||
|
||
### 验收标准
|
||
|
||
```text
|
||
点击 Build
|
||
→ 生成 Builds/Windows/MyProject
|
||
→ 双击 MyProject.exe
|
||
→ 主场景正常显示
|
||
→ Runtime UI 正常显示
|
||
```
|
||
|
||
---
|
||
|
||
## P5.4 Development Build
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P5.4-T01 Development Build 显示 Console 日志
|
||
P5.4-T02 输出 runtime log 文件
|
||
P5.4-T03 支持命令行参数覆盖主场景
|
||
P5.4-T04 支持窗口大小配置
|
||
P5.4-T05 支持显示 FPS / frame time
|
||
P5.4-T06 支持 UI debug overlay
|
||
```
|
||
|
||
---
|
||
|
||
## P5 完成标志
|
||
|
||
```text
|
||
Editor 中有 Build Settings
|
||
可以选择场景、UI、平台和输出目录
|
||
点击 Build 能生成可双击运行的 Windows 发布目录
|
||
发布目录中 3D 场景和 Runtime UI 都能运行
|
||
```
|
||
|
||
建议里程碑:
|
||
|
||
```text
|
||
milestone: build settings and first packaged runtime
|
||
```
|
||
|
||
---
|
||
|
||
# P6:Cooked Runtime 深化
|
||
|
||
## 阶段目标
|
||
|
||
让发布期 Player 真正脱离编辑期 JSON 源资产,依靠 CookManifest + RuntimeAssetRegistry + .mccooked 运行。
|
||
|
||
---
|
||
|
||
## P6.1 CookManifest 稳定化
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P6.1-T01 明确 CookManifest 数据结构
|
||
P6.1-T02 记录 AssetGuid
|
||
P6.1-T03 记录 AssetType
|
||
P6.1-T04 记录 SourcePath
|
||
P6.1-T05 记录 CookedPath
|
||
P6.1-T06 记录 ContentHash
|
||
P6.1-T07 记录 Dependencies
|
||
P6.1-T08 支持 UI 依赖记录
|
||
P6.1-T09 支持 JSON manifest 调试格式
|
||
P6.1-T10 支持 binary manifest 发布格式
|
||
```
|
||
|
||
---
|
||
|
||
## P6.2 RuntimeAssetRegistry
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P6.2-T01 新增 RuntimeAssetRegistry
|
||
P6.2-T02 LoadManifest
|
||
P6.2-T03 GetCookedPath
|
||
P6.2-T04 GetAssetType
|
||
P6.2-T05 GetDependencies
|
||
P6.2-T06 HasAsset
|
||
P6.2-T07 Resolve UI Asset
|
||
P6.2-T08 Resolve Material / Texture / Model Asset
|
||
P6.2-T09 运行时错误日志
|
||
```
|
||
|
||
---
|
||
|
||
## P6.3 Cooked Scene Runtime Data
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P6.3-T01 Scene JSON 转 RuntimeSceneData
|
||
P6.3-T02 保存实体列表
|
||
P6.3-T03 保存 Transform
|
||
P6.3-T04 保存 MeshRenderer
|
||
P6.3-T05 保存 Camera
|
||
P6.3-T06 保存 Light
|
||
P6.3-T07 保存 Prefab Instance
|
||
P6.3-T08 保存 UIComponent
|
||
P6.3-T09 保存资产依赖 GUID
|
||
P6.3-T10 Player 从 cooked scene 构建 ECS
|
||
```
|
||
|
||
---
|
||
|
||
## P6.4 Cooked-only Player
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P6.4-T01 Player 支持 --cooked 参数
|
||
P6.4-T02 Player 支持 --main-scene-guid 参数
|
||
P6.4-T03 Player 启动时加载 CookManifest
|
||
P6.4-T04 Player 不扫描 Assets 源目录
|
||
P6.4-T05 Player 不读取 .mcscene.json
|
||
P6.4-T06 Player 不读取 .mcprefab.json
|
||
P6.4-T07 Player 不读取 .rml 源路径,除非以 loose file 模式运行
|
||
P6.4-T08 Player 只通过 cooked asset 启动
|
||
```
|
||
|
||
### 验收标准
|
||
|
||
```text
|
||
删除或重命名 Assets 源目录
|
||
保留 Builds/Windows/MyProject/Data
|
||
双击 MyProject.exe
|
||
3D 场景和 UI 仍然可以正常运行
|
||
```
|
||
|
||
---
|
||
|
||
## P6.5 增量 Cook
|
||
|
||
### 任务
|
||
|
||
```text
|
||
P6.5-T01 基于 ContentHash 判断是否需要重 Cook
|
||
P6.5-T02 修改场景只 Cook 场景
|
||
P6.5-T03 修改材质只 Cook 材质和依赖
|
||
P6.5-T04 修改模型只 Cook 模型相关依赖
|
||
P6.5-T05 修改 UI 只 Cook UI 相关依赖
|
||
P6.5-T06 输出 Cook 统计信息
|
||
```
|
||
|
||
---
|
||
|
||
## P6 完成标志
|
||
|
||
```text
|
||
Build 后的 Player 可以完全脱离 Assets 源目录运行
|
||
CookManifest / RuntimeAssetRegistry 成为运行期资产入口
|
||
Scene / Prefab / Material / Model / Texture / UI 都能通过 cooked 资产加载
|
||
```
|
||
|
||
建议里程碑:
|
||
|
||
```text
|
||
milestone: cooked-only runtime
|
||
```
|
||
|
||
---
|
||
|
||
# P7:多平台 / 国产化 / Web
|
||
|
||
## 阶段目标
|
||
|
||
从 Windows 原型走向跨平台和国产化环境适配。
|
||
|
||
---
|
||
|
||
## P7.1 Windows 稳定化
|
||
|
||
```text
|
||
P7.1-T01 Release / RelWithDebInfo 构建稳定
|
||
P7.1-T02 DLL 拷贝规则稳定
|
||
P7.1-T03 打包目录稳定
|
||
P7.1-T04 日志系统稳定
|
||
P7.1-T05 安装包或压缩包发布策略
|
||
```
|
||
|
||
---
|
||
|
||
## P7.2 Linux 支持
|
||
|
||
```text
|
||
P7.2-T01 Linux CMake configure
|
||
P7.2-T02 Linux build Editor / Player
|
||
P7.2-T03 Filament Linux 后端验证
|
||
P7.2-T04 RmlUi Linux 输入和字体验证
|
||
P7.2-T05 Linux 打包目录
|
||
```
|
||
|
||
---
|
||
|
||
## P7.3 国产系统适配
|
||
|
||
```text
|
||
P7.3-T01 统信 UOS 构建验证
|
||
P7.3-T02 麒麟系统构建验证
|
||
P7.3-T03 国产 CPU 环境兼容性检查
|
||
P7.3-T04 国产 GPU / OpenGL / Vulkan 兼容性检查
|
||
P7.3-T05 字体 / 输入法 / 路径编码问题处理
|
||
P7.3-T06 RmlUi 中文字体和输入验证
|
||
```
|
||
|
||
---
|
||
|
||
## P7.4 Web / B/S 方向
|
||
|
||
```text
|
||
P7.4-T01 评估 Filament WebGPU / WebGL 路线
|
||
P7.4-T02 Player Web 版本技术验证
|
||
P7.4-T03 Web 资产加载方式调整
|
||
P7.4-T04 浏览器 UI 与 RmlUi 关系梳理
|
||
P7.4-T05 明确 Web Runtime 是否复用 RmlUi
|
||
```
|
||
|
||
---
|
||
|
||
## P7 完成标志
|
||
|
||
```text
|
||
Windows 可发布
|
||
Linux 可运行
|
||
国产桌面系统有验证路线
|
||
Web 方向完成技术预研
|
||
```
|
||
|
||
---
|
||
|
||
# P8:稳定化 / 文档 / 示例项目 / 版本发布
|
||
|
||
## 阶段目标
|
||
|
||
让 MetaCore 从快速开发状态进入可维护、可演示、可交付状态。
|
||
|
||
---
|
||
|
||
## P8.1 测试体系
|
||
|
||
```text
|
||
P8.1-T01 SmokeTests 分类
|
||
P8.1-T02 AssetPipeline 测试
|
||
P8.1-T03 SceneSerialization 测试
|
||
P8.1-T04 Prefab 测试
|
||
P8.1-T05 Material 测试
|
||
P8.1-T06 RmlUi UIComponent 测试
|
||
P8.1-T07 Cook 测试
|
||
P8.1-T08 RuntimeAssetRegistry 测试
|
||
P8.1-T09 Editor authoring loop 手动验收清单
|
||
```
|
||
|
||
---
|
||
|
||
## P8.2 日志系统
|
||
|
||
```text
|
||
P8.2-T01 Editor Console 日志统一
|
||
P8.2-T02 Player 日志文件
|
||
P8.2-T03 Cook 日志
|
||
P8.2-T04 Import 日志
|
||
P8.2-T05 UI 日志
|
||
P8.2-T06 错误分级 Info / Warning / Error / Fatal
|
||
```
|
||
|
||
---
|
||
|
||
## P8.3 崩溃与错误恢复
|
||
|
||
```text
|
||
P8.3-T01 场景加载失败 fallback
|
||
P8.3-T02 资产缺失 fallback
|
||
P8.3-T03 材质缺失 fallback
|
||
P8.3-T04 模型导入失败提示
|
||
P8.3-T05 UI 文件缺失 fallback
|
||
P8.3-T06 JSON 解析失败定位到文件和字段
|
||
```
|
||
|
||
---
|
||
|
||
## P8.4 文档
|
||
|
||
```text
|
||
P8.4-T01 README 更新
|
||
P8.4-T02 Architecture/Rendering.md
|
||
P8.4-T03 Architecture/SceneRenderSync.md
|
||
P8.4-T04 Architecture/AssetPipeline.md
|
||
P8.4-T05 Architecture/SceneSerialization.md
|
||
P8.4-T06 Architecture/Prefab.md
|
||
P8.4-T07 Architecture/Material.md
|
||
P8.4-T08 Architecture/RuntimeUI.md
|
||
P8.4-T09 Architecture/CookedRuntime.md
|
||
P8.4-T10 Roadmap/MetaCore_v0.1.md
|
||
P8.4-T11 DeveloperGuide/Build.md
|
||
P8.4-T12 UserGuide/Editor.md
|
||
```
|
||
|
||
---
|
||
|
||
## P8.5 示例项目
|
||
|
||
```text
|
||
P8.5-T01 清理 SandboxProject
|
||
P8.5-T02 新增 MinimalProject
|
||
P8.5-T03 新增 GLB Viewer 示例
|
||
P8.5-T04 新增 Industrial Dashboard 示例
|
||
P8.5-T05 新增 Runtime UI Demo
|
||
P8.5-T06 新增 Digital Twin Demo 雏形
|
||
```
|
||
|
||
---
|
||
|
||
# 推荐版本节点
|
||
|
||
## v0.1:编辑器最小可用版
|
||
|
||
包含:
|
||
|
||
```text
|
||
P0 Panda3D 清理
|
||
P1 ECS → Filament
|
||
P2 编辑器基础闭环
|
||
```
|
||
|
||
状态:你现在基本已经达到。
|
||
|
||
目标:
|
||
|
||
```text
|
||
能打开编辑器
|
||
能编辑场景
|
||
能保存重开
|
||
能启动 Player 看场景
|
||
```
|
||
|
||
---
|
||
|
||
## v0.2:资产与 Prefab 工作流版
|
||
|
||
包含:
|
||
|
||
```text
|
||
P3 Project 面板增强
|
||
P3 资产导入体验
|
||
P3 Prefab 创建 / 实例化 / Apply
|
||
P3 Material 基础编辑
|
||
P3 一键 Launch Player
|
||
```
|
||
|
||
目标:
|
||
|
||
```text
|
||
具备 Unity-like 最小编辑体验
|
||
```
|
||
|
||
---
|
||
|
||
## v0.3:Runtime UI MVP 版
|
||
|
||
包含:
|
||
|
||
```text
|
||
P4 RmlUi 集成
|
||
P4 .rml / .rcss 资产识别
|
||
P4 UIComponent
|
||
P4 Player 显示 UI
|
||
P4 基础输入和按钮事件
|
||
```
|
||
|
||
目标:
|
||
|
||
```text
|
||
3D 场景 + 运行时 UI 可以同时运行
|
||
能做简单业务界面和演示面板
|
||
```
|
||
|
||
---
|
||
|
||
## v0.4:项目打包版
|
||
|
||
包含:
|
||
|
||
```text
|
||
P5 Project Settings
|
||
P5 Build Settings
|
||
P5 Build Pipeline
|
||
P5 拷贝 Player
|
||
P5 打包场景、模型、材质、贴图、UI
|
||
```
|
||
|
||
目标:
|
||
|
||
```text
|
||
能从 Editor 打包出可双击运行的 Windows 项目
|
||
```
|
||
|
||
---
|
||
|
||
## v0.5:Cooked Runtime 版
|
||
|
||
包含:
|
||
|
||
```text
|
||
P6 RuntimeAssetRegistry
|
||
P6 CookManifest
|
||
P6 Cooked-only Player
|
||
P6 增量 Cook
|
||
P6 运行时完全脱离源资产
|
||
```
|
||
|
||
目标:
|
||
|
||
```text
|
||
形成真正发布期运行架构
|
||
```
|
||
|
||
---
|
||
|
||
## v0.6:平台化与演示版
|
||
|
||
包含:
|
||
|
||
```text
|
||
P7 Windows 稳定
|
||
P7 Linux 验证
|
||
P7 国产化预研
|
||
P8 示例项目
|
||
P8 文档和测试体系
|
||
```
|
||
|
||
目标:
|
||
|
||
```text
|
||
可以对外演示、交付 Demo、验证行业场景
|
||
```
|
||
|
||
---
|
||
|
||
# 现在最推荐的执行顺序
|
||
|
||
你当前 P2 已完成,建议接下来严格按这个顺序:
|
||
|
||
```text
|
||
1. P3.1 Project 面板增强
|
||
2. P3.2 资产导入体验
|
||
3. P3.3 Prefab 最小闭环
|
||
4. P3.4 Material 基础编辑
|
||
5. P3.5 一键 Launch Player
|
||
6. P4.1 RmlUi 基础集成
|
||
7. P4.2 UI 资产识别
|
||
8. P4.3 UIComponent
|
||
9. P4.4 UI 输入与基础事件
|
||
10. P5.1 Project Settings
|
||
11. P5.2 Build Settings 面板
|
||
12. P5.3 Build Pipeline 第一版
|
||
13. P6 Cooked Runtime 深化
|
||
```
|
||
|
||
一句话总结:
|
||
|
||
> 新路线应该是:先把编辑器生产力做好,再补 Runtime UI MVP,然后再做 Build Settings 打包。这样 MetaCore 打包出来的不是一个单纯 3D 场景播放器,而是一个能展示模型、材质、场景和业务 UI 的真正运行时应用。
|