29 KiB
ichni Release Readiness Roadmap
文档状态:Active
首次基线:2026-07-18
最近扫描:2026-07-18
最近 Scope 更新:2026-07-18
当前阶段:Production(研发中期)
当前结论:NOT READY FOR RELEASE
主工作范围:D:\Projects\ichni Official
条件性关联:仅当任务实际修改共享序列化、内容导出/导入或节奏游戏核心数据契约时,再纳入D:\Projects\IchniCreatorStudio
1. 文档用途
这是 ichni 从当前研发中期走到可发布版本的长期执行文档。它同时承担四个职责:
- 保存当前项目基线,避免后续只凭印象判断进度。
- 定义 Release 的完成标准和阶段门。
- 用稳定的任务编号逐项推进、复核和留证。
- 记录需要跨项目处理时的明确依赖;本轮默认只处理
ichni Official。
本文件中的百分比是“发布就绪度区间”,不是工时完成率,也不能直接用于推算发布日期。每项任务只有在验收证据可复查时才能标记为完成。
2. 已确认的 Release Scope
本节已由产品负责人于 2026-07-18 确认。路线图从此按下列范围执行;Chapter 1 和 Creator 都不能阻塞 Chapter 0 首发。
DEC-001首发平台:PC(Windows)、Android、iOS。DEC-002首发内容:Chapter 0 是最低且必须完成的首发内容;Chapter 1 为 Stretch Goal,只能在不危及 Chapter 0 的前提下推进。DEC-003首发语言:en、zh-CN、ja、ko、vi-VN。DEC-004发布渠道:尚未确定;在 Gate 3 前必须决定具体 PC 与移动端商店。DEC-005首发模式:纯 Offline;账户、登录、联网服务均不属于首发功能。DEC-006目标日期:暂无固定日期;原则是 Chapter 0 达到质量门后尽早发布,而不是用未确定的谱面工期反推日期。DEC-007工作重心:当前只计划/美术/游戏框架/剧情/本地化/设置/发布准备;Chapter 0 谱面流程已稳定,由独立节奏游戏制作链路自行推进并只提供完成状态。
记录格式:
| Decision | 选择 | 决策日期 | 决策人 | 影响 |
|---|---|---|---|---|
| DEC-001 | Windows + Android + iOS | 2026-07-18 | 产品负责人 | 三平台 Build、QA、Input、Safe Area 与商店合规 |
| DEC-002 | Chapter 0 必达;Chapter 1 Stretch | 2026-07-18 | 产品负责人 | Chapter 1 不得阻塞内容锁定 |
| DEC-003 | en / zh-CN / ja / ko / vi-VN | 2026-07-18 | 产品负责人 | 五语翻译、字体、排版和 LQA |
| DEC-004 | TBD | — | 产品负责人 | 商店 SDK、签名、年龄分级、隐私和商店材料 |
| DEC-005 | Pure Offline | 2026-07-18 | 产品负责人 | 移除/Feature Gate 登录与网络依赖 |
| DEC-006 | 无固定日期,尽早完成 | 2026-07-18 | 产品负责人 | 用 Gate 和质量证据管理,不承诺虚假日期 |
| DEC-007 | 非谱面工作优先;谱面由独立流程跟踪 | 2026-07-18 | 产品负责人 | 路线图不展开 Creator 或谱面生产排期 |
3. 现状扫描结论
3.1 阶段判断
项目处于明确的 Production 阶段,置信度高:核心音游 Runtime、两个主要 Scene、内容加载、谱面制作器、Wwise、章节/选曲/演奏/结算等系统已经存在,且已有可运行内容。项目尚未进入 Feature Complete、Content Complete 或 Release Candidate 阶段,因为主 GameLoop 的结果持久化、剧情节点、本地化、设置完整性、测试、Build Pipeline 和发布合规仍有阻断项。
3.2 发布就绪度快照
| 领域 | 就绪度区间 | 状态 | 当前判断 |
|---|---|---|---|
| 核心音游 Runtime | 60–75% | Yellow | 演奏、判定、暂停、结算骨架存在;记录初始化、进度写回和异常路径需补齐 |
| 谱面与章节内容 | 约 60% | Yellow | 以用户提供的 60% 为准;Official 当前扫描到 13 个歌曲目录、31 组难度包 |
| GameLoop / Progression | 30–45% | Red | 页面链路存在,但结果未确认写回存档,Story 的 Song/Tutorial 节点仍为占位 |
| UI/UX | 35–50% | Yellow | 已有完整视觉方向和主要页面;响应式、Safe Area、可访问性、占位文本与统一规范未完成 |
| Settings / Input | 35–50% | Red | 音量、帧率、Render Scale、Offset、语言、Rebind 已有;存在逻辑缺口与移动端风险 |
| 剧情系统与文本 | 20–35% | Red | Yarn/Presenter/Portrait/Save 框架存在;目前只有少量原型文本和不完整 StoryData |
| Localization | 10–25% | Red | 已决策以 Unity Localization 作为唯一正式管线;需迁移既有本地化资源、解除旧系统依赖,并补齐多数 Locale |
| Creator 内容管线 | 不纳入本轮 | Gray | 仅在 Official 出现共享数据或导入/导出关联证据时重新纳入 |
| QA / Automation | 0–10% | Red | 未发现项目自有自动化测试、Test asmdef、CI 或正式回归证据体系 |
| Build / Release Engineering | 5–15% | Red | 缺少可复现 Build Profile、CI、版本/渠道矩阵、发布候选流程和回滚方案 |
| Legal / Store / Operations | 0–10% | Red | 未发现隐私政策、EULA、Credits、第三方许可台账、商店素材清单或上线运维手册 |
3.3 已确认的工程与内容资产
ichni Official使用 Unity6000.3.7f1;Creator 的同版本信息仅作为条件性关联基线保存。- Official Build Settings 当前包含
Assets/Scenes/MenuScene.unity和Assets/Scenes/GameScene.unity。 - Official 的用户代码规模已经足以支撑完整产品,不建议推倒重写;应以修复闭环、统一数据与建立验证体系为主。
- Official 当前发现 13 个歌曲目录和 31 组完整加密谱面包,每组含
Beatmap、ProjectInfo、SongInfo、CommandScripts。 - Creator 当前发现 15 个项目目录和 16 组对应 JSON 内容;这是基线信息,不是本轮工作范围。只有当 Official 的首发内容出现共享数据/导出异常时,才建立跨项目 Manifest 或处理 Creator。
- UI 已有统一的深蓝/青色、轨道与装饰线条风格,适合渐进式重构,不需要先更换全部视觉语言。
- 新 Story 系统已具备 Yarn 播放、Typewriter、Choice、Portrait、Variable Save 等能力,重点是完成内容、数据和 GameLoop 接入。
4. 需要优先解决的 Release Blockers
P0:阻止形成完整产品闭环
- 演奏结果初始化和存档闭环待 Unity 端到端验证。 2026-07-18 已在
GameManager初始化PlayingRecorder,并在 Wwise 歌曲结束回调中将结果写入BeatmapSave/SongStatusSave;需要验证结算、退出、重开后的 Accuracy / FC / AP 和完成状态一致。 - Story 到 Song/Tutorial 的转场仍是占位。
SongBlockView和TutorialBlockView只输出Debug.Log。 - Chapter 0 StoryData 不完整。 当前定义了
A-0、B-0、B-1、C-0,只有A-0绑定 Yarn;条件中引用了未定义的B-2。 - Localization 源语言与内容不一致。 Yarn Project 的 Base Language 是
en,但当前enStory Table 中实际是中文;zh-CN仅有少量空项,其他 Locale 大多为空。 - Offline 首发必须完全关闭 Online/Login 路径。 TapTap 初始化被禁用,Start 页面绕过登录,API 指向
http://localhost:53734,并存在硬编码凭据、敏感响应日志和本地 Token 存储风险。首发应移除或明确 Feature Gate,而非让不可用服务残留在用户路径上。
P1:阻止 Feature Complete / Beta
- Offline 内容解锁已统一为独立
UnlockSaveModule;仍需补齐新档、授予 Key、重启读取与所有入口拦截的 Unity 端到端证据。 - Settings 的语言存档仍为 Index;迁移到 Unity Localization 后应改为稳定 Locale ID,避免 Locale 列表排序造成错配。
- Rebind 使用
Rebinds保存,但 Reset 查询/删除Rebind,无法正确恢复默认值。 KeyRebindButton在找不到 Action 的异常路径中可能不恢复 Input 与 Waiting Cover。- Input Actions 缺少完整的 Submit/Back/Controller 导航与 Control Scheme;未发现
EnhancedTouchSupport.Enable(),移动端触控需实机验证。 - UI Scene 内混用
1920×1080、2560×1440和 Constant Pixel Size;未发现Screen.safeArea适配。 - Scene 中仍存在大量测试值、硬编码中英文、
114514、Choice 0、Test 文案等候选占位内容。 - Localization 资产不完整:Unity UI Table 只有 7 个 Key,除
en/zh-CN外其余表为空;Message Table 为空。迁移期间还需完成旧本地化资产清点、替换与删除验证。 StreamingAssets同时包含 Android、iOS、Windows64 ThemeBundle,可能让各平台 Build 携带无关资源。- Runtime
Assets中保存了大量 PSD、整屏 Mockup 和 120 帧 Loading PNG;需在不破坏引用的前提下分离 Source Art 与 Runtime Export。
条件性跨项目事项(不进入当前执行队列)
- Creator 的静态构建曾报 3 个
PositionSync相关错误。这是 Creator 自身的健康问题,但当前 UI、剧情、设置、Offline GameLoop 和首发准备不依赖它;除非 Official 的 Chapter 0 导入/读取出现明确关联,本轮不处理。 - 未来只要任务修改共享
BM、加密/序列化 Schema、Beatmap Export Contract 或BaseElement节奏游戏元素,就必须先重新评估 Official/Creator 同步范围,并在任务说明中明确提醒。
P2:阻止 Release Candidate / 长期维护
- 未发现项目自有自动化测试、CI、稳定的 Build Profile 和可追踪测试证据。
- 未建立 Crash Reporting、性能基线、最低设备矩阵、长时间 Soak Test 和存档兼容测试。
- 未建立隐私政策、EULA、Credits、第三方 SDK/字体/音乐/素材许可台账。
- PlayerSettings 中 Standalone Application Identifier 仍是 Unity Template 值;版本、渠道、签名和商店资料未形成单一来源。
- 代码中仍有 14 处
NotImplementedException、158 处Debug.Log和少量 TODO;需按 Runtime 可达性审计,不能仅机械删除。 - Summary 的 Share Button 存在但未发现实现;需要实现或移除。
5. Release Definition of Done
ichni 只有同时满足以下条件,才可以进入正式 Release:
- 产品 Scope、平台、语言、渠道与 Online 范围已经冻结并记录。
- 新用户可以从启动页进入章节、完成剧情/选曲、完成歌曲、查看结算、保存进度、退出并重开继续。
- Chapter 0 的首发歌曲、谱面、剧情、教程、音频和 UI 内容完成并锁定;Chapter 1 仅在不影响该 Gate 时纳入。
- 不存在可达的占位节点、测试按钮、测试文本、开发后门或默认服务地址。
en、zh-CN、ja、ko、vi-VN达到 100% Key 覆盖,完成字体、溢出、断行和真机 LQA。- Settings 在所有目标平台可保存、迁移、重置并实际生效;Debug Settings 在 Release Build 不可访问。
- 键鼠、手柄和目标移动设备的 Input 路径通过验证;所有移动平台通过 Safe Area 测试。
- 如首发工作实际触及共享 Schema、序列化或导出/导入契约,则 Official 与 Creator 的相关面已完成同步与回放验证;否则无需作为首发 Gate。
- 每个首发 Build 可由干净环境按文档重复构建,并产出版本、Hash、符号和变更记录。
- P0/P1 Bug 为 0;获准延期的 P2 有 Owner、风险说明和后续版本计划。
- 核心流程自动化测试、人工回归、性能、Soak、存档升级和崩溃恢复均有可复查证据。
- 商店素材、年龄分级、隐私、EULA、Credits、许可、SDK 声明和联系方式准备完成。
- Release Candidate 在目标设备矩阵上通过最终签署,并已演练回滚/Hotfix 流程。
6. 阶段路线图与 Gate
本路线图采用 Gate,而不是先虚构日期。平台、内容、语言、Offline 和工作重心已经冻结;仅在 Gate 3 前补充商店渠道决策与对应日历排期。谱面制作不作为本路线图的排期驱动项。
Gate 0 — Scope Baseline
目标:把“什么叫首发完成”冻结成可执行合同。
交付物:
- 已确认的
DEC-001–DEC-003、DEC-005–DEC-007录入本文;在 Gate 3 前确认DEC-004。 - Chapter 0 Release Manifest:Song、Difficulty、Story Node、Tutorial、Locale、Platform;Chapter 1 单独标记为 Stretch。
- Offline 决策落实为登录/网络功能的 Build-time 或 Runtime Feature Gate。
- 首发设备矩阵、性能预算和 Release Definition of Done 复核。
Exit Criteria:所有后续任务都能判断“首发必须 / 可延期 / 不做”,且没有未归属的 Release Scope。
Gate 1 — Complete Playable Loop
目标:先让一个 Chapter 0 样本形成可靠闭环,再扩大内容生产。
必须完成:CORE-001–CORE-008、STORY-001、SET-001、QA-001。
Exit Criteria:新存档从启动到完成一首歌、结算、解锁、返回、退出并重开后数据一致;失败/取消/重试也不会损坏存档。
Gate 2 — Feature Complete Alpha
目标:Chapter 0 的所有首发功能都有最终实现路径,不再新增大功能;Chapter 1 只作为独立 Stretch 轨道推进。
必须完成:Story、Settings、Input、UI 基础规范、Offline Feature Gate;所有可达占位实现清零或明确剔除。Creator 不在本 Gate 内,除非实际改动共享内容契约。
Exit Criteria:所有首发功能都可用;可以缺内容和细节 Polish,但不能存在“以后再接”的功能节点。
Gate 3 — Content Complete Beta
目标:内容锁定,进入系统性修复和质量验证。
必须完成:Chapter 0 首发谱面状态确认、剧情、五语翻译、音频、UI Export 和教程;完成 Release Manifest 对账。
Exit Criteria:除 Bug Fix、性能、LQA 和批准的微调外,不再改数据 Schema、核心流程或新增文本。
Gate 4 — Release Candidate
目标:构建一个可直接发布、仅等待签署的候选版本。
必须完成:自动化/人工回归、平台认证检查、性能、Soak、存档升级、安装/卸载、Offline 启动与离线可玩验证、Legal/Store、Build Reproducibility。
Exit Criteria:P0/P1 为 0;候选包 Hash 固定;所有签署证据齐全;回滚和 Hotfix 已演练。
Gate 5 — Release & Stabilization
目标:安全上线并监控第一轮真实用户问题。
交付物:发布包、版本说明、支持渠道、Crash/日志观察、Known Issues、Day-One Patch 判断、Postmortem 数据。
Exit Criteria:首发观察窗口结束,严重问题关闭或已部署修复,进入正常版本节奏。
7. 可逐项执行的 Master Backlog
状态只能使用:TODO、IN PROGRESS、BLOCKED、VERIFY、DONE、DEFERRED、EXTERNAL。EXTERNAL 表示由独立节奏游戏制作流程跟踪但仍受 Release Gate 验证;DONE 必须填写 Evidence。
| ID | Priority | 项目 | 工作项 | Size | Dependency | Status | Evidence |
|---|---|---|---|---|---|---|---|
| REL-001 | P0 | Official | 确认平台、渠道、内容、语言、Online 和日期 Scope | S | — | IN PROGRESS | DEC-001/2/3/5/6/7 已于本文第 2 节确认;DEC-004 待定 |
| REL-002 | P0 | Official | 建立 Chapter 0 Release Manifest 与唯一内容 ID;Chapter 1 单独标为 Stretch | M | REL-001 | TODO | Manifest + 对账报告 |
| REL-003 | P0 | Official | 定义 Release DoD、性能预算和目标设备矩阵 | S | REL-001 | TODO | 本文复核 + 设备表 |
| CORE-001 | P0 | Official | 创建 PlayingRecorder 后调用并验证 Initialize() |
S | — | DONE | 2026-07-18:已通过完整游玩流程与重启读取验证。 |
| CORE-002 | P0 | Official | 结算时写回最高 Accuracy、FC/AP、完成状态与持久化;当前项目尚未定义 Score 规则 | L | CORE-001 | DONE | 2026-07-18:已验证 ES3 写入、重启读取与结果合并。 |
| SAVE-001 | P1 | Official | 游戏记录 Schema Version、旧存档迁移前备份、未来版本只读保护 | M | CORE-002 | DONE | 2026-07-18:当前预发布策略为 Schema v1 不兼容存档重置;正式发布前须恢复迁移/保护策略。 |
| SAVE-002 | P1 | Official | 每谱面 Chart Revision 与历史 Max Combo;Revision 变化仅重置该谱面成绩 | M | CORE-002 | DONE | 2026-07-18:已验证 Revision 变化与 Max Combo 合并行为。 |
| UI-008 | P1 | Official | 保持章节内存选曲/难度缓存:恢复退出歌曲和难度,不写入玩家存档 | S | CORE-002 | DONE | 2026-07-18:已验证失效歌曲、不可用难度与空配置的安全回退。 |
| CORE-003 | P0 | Official | 明确纯 Offline 下的 Story/Song/Payment Unlock 行为;无首发用途的 Payment Unlock 必须移除或可靠禁用 | M | REL-001 | DONE | 2026-07-18:已验证独立 Unlock Save v1、章节/歌曲统一规则、Yarn grant_unlock、重启读取和所有现有进歌入口拦截;Payment Unlock 运行时代码已移除。 |
| CORE-004 | P0 | Official | 实现 SongBlockView 到歌曲加载/返回 Story 的流程 |
M | REL-002 | TODO | PlayMode + Manual E2E |
| CORE-005 | P0 | Official | 实现 TutorialBlockView 或从首发 Scope 移除 |
M | REL-001 | TODO | Tutorial E2E / Scope Decision |
| CORE-006 | P0 | Official | 为 Project/Theme/Bundle/Beatmap 加载增加错误、重试、取消和平台失败处理 | L | — | TODO | Fault-injection Checklist |
| CORE-007 | P1 | Official | 实现或移除 Summary Share Button | S | REL-001 | TODO | UI Test |
| CORE-008 | P1 | Official | 清理 ProjectLoader.TestLoad() 命名与开发假设,形成正式入口 |
S | CORE-006 | TODO | Code Review |
| STORY-001 | P0 | Official | 修复 Chapter 0 Story Graph:未定义 B-2、空绑定与条件完整性 |
M | REL-002 | TODO | Graph Validator |
| STORY-002 | P0 | Official | 决定 Yarn 真正 Source Language 并修正 Yarn Project/Table | M | DEC-003 | TODO | Locale Contract |
| STORY-003 | P0 | Official | 完成首发剧情、角色表、Portrait、Command 与分支条件 | L | REL-002, STORY-002 | TODO | Story Content Audit |
| STORY-004 | P1 | Official | 移除 Test Title 等原型命令,补充缺失内容验证器 |
M | STORY-003 | TODO | Zero-placeholder Report |
| LOC-001 | P0 | Official | 执行 Unity Localization 单一管线迁移:建立 Locale ID 契约、替换旧运行时依赖并验证移除 | L | STORY-002 | TODO | Localization Migration ADR + Runtime Proof |
| LOC-002 | P0 | Official | 建立单一 Key Manifest、术语表、Source/Target Locale 规则 | M | LOC-001 | TODO | Key Manifest |
| LOC-003 | P0 | Official | 完成旧本地化资源迁移/移除,并修复 Unity String Table 中的空翻译与缺失引用 | S | LOC-002 | TODO | Automated Coverage Report |
| LOC-004 | P0 | Official | 完成首发语言 100% Key 覆盖并锁定文本 | L | DEC-003, LOC-002 | TODO | Locale Coverage = 100% |
| LOC-005 | P1 | Official | 配置 TMP Font/Fallback 并完成溢出、断行、RTL(如适用)和 LQA | L | LOC-004 | TODO | Screenshot Matrix |
| SET-001 | P0 | Official | 修复 Rebinds / Rebind Reset Key 错配 |
S | — | TODO | Automated Save Test |
| SET-002 | P0 | Official | Settings Load 时以 Unity Localization Locale ID 应用语言,并验证 Locale 顺序不再隐式耦合 | M | LOC-001 | TODO | Restart Test |
| SET-003 | P1 | Official | 修复 Rebind 异常退出,补 Submit/Back/Controller/Control Scheme | M | — | TODO | Input Matrix |
| SET-004 | P1 | Official | 移动端启用/验证 Enhanced Touch、触控取消与多点触控 | M | DEC-001 | TODO | Device Test |
| SET-005 | P1 | Official | 增加 Settings Version、Validation、Migration、Atomic Save 与 Reset All | L | — | TODO | Migration Tests |
| SET-006 | P1 | Official | 将 Debug/Judge/AutoPlay 从 Release Settings 隔离 | S | — | TODO | Release Build Inspection |
| SET-007 | P1 | Official | 明确 Resolution/Render Scale/Fullscreen/VSync/Frame Limit 的平台行为 | M | DEC-001 | TODO | Platform Settings Matrix |
| UI-001 | P0 | Official | 建立 UI Inventory:Screen、Prefab、State、Text Key、Owner、完成度 | M | REL-001 | TODO | UI Inventory |
| UI-002 | P1 | Official | 建立 UI Design Tokens:Color、Type、Spacing、Border、Motion、Icon | M | UI-001 | TODO | UI Style Guide |
| UI-003 | P1 | Official | 统一 Canvas Scaler 策略并实现 Safe Area | L | DEC-001, UI-002 | TODO | Resolution Screenshot Matrix |
| UI-004 | P1 | Official | 清理 Scene 中测试/硬编码文本并全部接入 Localization | L | LOC-002 | TODO | Static Scan + Runtime Review |
| UI-005 | P1 | Official | 补齐 Focus、Keyboard/Controller Navigation、文字缩放与色彩对比 | L | UI-002, SET-003 | TODO | Accessibility Checklist |
| UI-006 | P1 | Official | 按 ai-assisted-ui-art-workflow.md 完成一个 Pilot Screen |
M | UI-002 | TODO | Pilot A/B + Unity Capture |
| UI-007 | P2 | Official | 审核并迁移 PSD/整屏 Mockup,只保留 Runtime Export 在 Assets |
L | UI-001 | TODO | Reference Audit + Build Size Diff |
| CONTENT-001 | P2 | Creator(条件性) | 仅当 Official 出现共享数据/导出异常时,建立 Creator Source → Export → Official Package 对账 | M | REL-002 | DEFERRED | 关联问题的 Roundtrip Report |
| CONTENT-002 | P2 | Creator(条件性) | 修复/确认 3 个 PositionSync 静态编译错误 |
M | — | DEFERRED | 仅在 Creator 成为当前阻塞项时执行 |
| CONTENT-003 | P0 | Official(外部跟踪) | Chapter 0 谱面完成状态与逐谱面 Schema、Timing、Audio、Difficulty 验证 | L | REL-002 | EXTERNAL | Beatmap QA Sheets / 完成状态 |
| CONTENT-004 | P1 | Official | 审核 Wwise Event/Bank、缺失音频、平台导入与音量分类 | L | REL-002 | TODO | Wwise Validation |
| CONTENT-005 | P1 | Official | 按目标平台只打包对应 ThemeBundle,移除跨平台冗余 | M | DEC-001 | TODO | Build Size Report |
| QA-001 | P0 | Official | 建立最小 EditMode/PlayMode Test asmdef 和核心流程 Smoke Test | L | — | TODO | Test Results XML |
| QA-002 | P1 | Official | 为存档升级、Story Graph、Localization 和 Chapter 0 Runtime Data 写自动检查;共享导出仅在需要时纳入 | L | QA-001 | TODO | CI Test Results |
| QA-003 | P1 | Official | 建立 Bug 模板、Severity/Priority 和每 Gate 的回归清单 | M | — | TODO | QA Docs |
| QA-004 | P1 | Official | 建立 CPU/GPU/Memory/Loading/Build Size 基线和最低设备预算 | L | DEC-001 | TODO | Profiler Captures |
| QA-005 | P1 | Official | 执行 2h/8h Soak、暂停恢复、来电/切后台、无网络环境启动/游玩和存档破坏测试 | L | Gate 3 | TODO | Soak Logs |
| BUILD-001 | P0 | Official | 建立可复现的 Development/Release Build Profile 与版本来源 | L | DEC-001 | TODO | Clean Build Record |
| BUILD-002 | P1 | Official | 建立 CI:Compile、Tests、Content Validators、Build Artifact | L | BUILD-001, QA-001 | TODO | CI Run URL/Log |
| BUILD-003 | P1 | Official | 修正 Application Identifier、Signing、Scripting Backend 和平台设置 | M | DEC-001, DEC-004 | TODO | PlayerSettings Audit |
| BUILD-004 | P1 | Official | 建立 Crash Symbol、日志、Crash Reporting 与隐私约束 | M | DEC-004 | TODO | Staging Crash Test |
| ONLINE-001 | P0 | Official | 将纯 Offline 决策落实:完全剔除或可靠 Feature Gate 登录、TapTap、网络入口和 Localhost 配置 | M | DEC-005 | VERIFY | 2026-07-18:玩家路径已绕过并隐藏登录界面;Release Build 无网络 E2E 待补 |
| ONLINE-002 | P2 | Official | 为未来 Online 版本建立 HTTPS、Server URL、Secret、Token 安全改造设计 | L | ONLINE-001 | DEFERRED | Security ADR |
| ONLINE-003 | P2 | Official | 为未来 Online 版本建立登录、断网、撤销和隐私删除测试设计 | L | ONLINE-002 | DEFERRED | Integration Test Plan |
| LEGAL-001 | P1 | Official | 建立第三方 SDK、字体、音乐、图片和代码 License/Credit 台账 | M | REL-002 | TODO | License Register |
| LEGAL-002 | P1 | Official | 准备 Offline 数据声明/Privacy Policy、EULA、Support 与年龄分级材料 | L | DEC-004, ONLINE-001 | TODO | Approved Documents |
| STORE-001 | P1 | Official | 准备商店文案、截图、Trailer、Icon、Capsule、系统需求和 Locale | L | Gate 3 | TODO | Store Preview |
| REL-004 | P0 | Official | 执行最终 Release Checklist、签署 RC 和回滚演练 | L | Gate 4 | TODO | Signed RC Record |
8. 推荐的首批执行顺序
不要先批量重做美术。当前最高收益顺序是:
- 将第 2 节确认的 Scope 固化到
REL-002Chapter 0 Release Manifest;Chapter 1 只保留 Stretch 标记。 - 执行
STORY-001与CORE-004,让 Chapter 0 Story 真正连接歌曲并形成可验证的主线闭环。 - 决定并执行
CORE-005:接入 Tutorial Block,或将其从首发 Chapter 0 Scope 移除。 - 执行
ONLINE-001,从首发 Build 中彻底关闭 Login、TapTap、网络入口和 Localhost 配置。 - 执行
LOC-001与STORY-002,在继续写 Chapter 0 剧情/五语翻译前确定源语言和管线。 - 执行
SET-001、SET-002、SET-003、SET-004,修复 Settings/Input,并优先验证 Android/iOS Touch。 - 执行
QA-001和核心 E2E Smoke Test,防止后续改 UI 时破坏 GameLoop。 - 执行
UI-001、UI-002,再开始UI-006的 AI Dialogue Pilot;不要让 Chapter 1 美术阻塞此处。 - 由独立谱面流程更新
CONTENT-003的 Chapter 0 完成状态;本路线图只消费其 QA 证据,不安排 Creator 工作。 - 在 Gate 2 后启动完整 Build/Store/Legal 工作;最晚在 Gate 3 前决定
DEC-004商店渠道。
9. 验证矩阵
Core E2E 必测路径
- Fresh Install → Start → Chapter → Story → Song → Loading → Play → Pause/Resume → Summary → Return。
- Pass / Fail / Restart / Abort / Force Close / Relaunch。
- 首次 Clear、重复 Clear、更高分、更低分、FC、AP、不同 Difficulty。
- Story Choice、章节/歌曲条件锁、Unlock Key 授予、Save Upgrade。
- 缺 ThemeBundle、损坏 Beatmap、无网络、Wwise Bank 缺失、Locale 资源缺失。
UI 设备/分辨率最低矩阵
- 16:9:1920×1080、2560×1440。
- 16:10:1920×1200。
- Ultrawide:2560×1080 或目标范围。
- Android/iOS:至少各一台带刘海/挖孔和一台低端设备;横屏 Safe Area 为首发必测项。
- Keyboard/Mouse、Controller、Touch;系统文字缩放和不同 Locale 长文本。
存档兼容
- 无存档、当前版本存档、上一发布版本存档、缺字段、损坏文件。
- Settings、Key Rebind、Story Variables、Song Progress、Unlock Keys 分别验证。
- 写入期间强制退出,验证不会同时损坏主存档与备份。
10. 基线证据索引
| 发现 | 证据路径 |
|---|---|
| Recorder 只创建未初始化 | Assets/Scripts/Manager/GameManager.cs、Assets/Scripts/Manager/PlayingRecorder.cs |
| Song Save 只发现初始化/读取,未发现结算写回 | Assets/Scripts/Saving/GameSaveManager.cs、Assets/Scripts/UI/SongSelection/ |
| Song/Tutorial Story 节点为占位 | Assets/Scripts/NewStorySystem/Tree/SongBlockView.cs、TutorialBlockView.cs |
Chapter 0 引用未定义 B-2 |
Assets/Story/Chapter0/StoryData_Chapter0.asset |
| Yarn 与 Story Localization 配置冲突 | Assets/Story/Chapter0/Chapter0.yarnproject、Assets/Localization/Story/ |
| 旧本地化资源覆盖与命名缺口 | Assets/Localization/、既有本地化资源目录 |
| Rebind Reset Key 错配 | Assets/Scripts/UI/Settings/RebindingWindow.cs |
| Login 被绕过、Localhost API 与 SDK 禁用 | Assets/Scripts/UI/StartPage/StartUIPage.cs、Assets/Scripts/Online/ |
| UI 缩放策略混合 | Assets/Scenes/MenuScene.unity、Assets/Scenes/GameScene.unity |
| 多平台 ThemeBundle 同时位于 StreamingAssets | Assets/StreamingAssets/ThemeBundles/ |
| Creator 编译阻断(条件性,不在当前队列) | D:\Projects\IchniCreatorStudio\Assets\Scripts\Console\consoleOnMono.cs、Assets\Scripts\DynamicUI\Core\InspectorBuilder.cs |
构建验证备注:2026-07-18 的 Creator dotnet build --no-restore 报 3 个 PositionSync 相关错误。Official 的同类静态检查受到 obj\Debug\Assembly-CSharp.dll 文件锁影响,未得到可作为代码结论的结果;必须在 Unity Console 与清洁构建环境重新验证。Git/LFS clean filter 也阻止了本次可靠获取完整 Worktree 状态,因此本文不把 Git 状态作为发布证据。
11. 长期维护规则
- 每周或每个 Sprint 只更新任务的
Status、Evidence和“最近扫描”日期,不随意改 ID。 - Scope 变化必须先更新 Decision,再评估受影响的 Gate、测试矩阵和内容总量。
- 只有 Official 任务实际修改共享 Schema、序列化类、导出契约或
BaseElement节奏游戏元素时,才纳入 Creator,并要求两边的实现和 Roundtrip Evidence。 DONE不等于“代码写完”,而是 Acceptance Criteria 已通过且 Evidence 可复查。- 每个 Gate 前创建一次 Snapshot:Build Version、Commit、Content Manifest Hash、Test Results、Known Bugs。
- 新 P0/P1 Bug 必须立即关联到 Gate;不能仅记录在聊天或个人 TODO 中。
- 进入 Release Candidate 前,再正式执行项目的
/launch-checklist工作流进行全团队签署;本次扫描没有替代该最终流程。
12. 下一次更新入口
当前 Scope 已确认后:
- 先建立
REL-002的 Chapter 0 Release Manifest,并把 Chapter 1 标为 Stretch。 - 从
STORY-001与CORE-004开始实施 Gate 1 的下一段主线闭环。 - 同步建立第一份 Core E2E 测试证据。
- 在 Gate 3 前补充
DEC-004的具体商店渠道、账号、签名与提交要求。