№ · 6.26 玩法迭代
CH.06.26
终局复盘重开与时间点存档技术文档
# 终局复盘、重开与时间点存档技术文档
最近更新:2026-06-26 16:06:26 +08:00
作用:明确失败后的回看、安全点重开和时间点存档三条入口如何共存。
边界:不改存档 schema,不新增终局玩法表,不把复盘写成新的玩法系统。
设计目标
- 终局面板和系统门厅都能进入复盘。
- 玩家能从最近安全点回到还能继续经营的节点。
- 时间点存档继续作为回到历史节点的正式入口,并同时显示现实时间和游戏时间。
- 旧存档兼容,终局快照保持可读,不把失败写成纯删档。
三条入口
| 入口 | 进入位置 | 作用 | 写入方式 | | --- | --- | --- | --- | | 复盘 | 系统门厅、终局面板 | 回看失败链、败局记录、种子和当前时间点 | 只读 | | 最近安全点重开 | 终局面板 | 回到最近还能继续经营的节点 | 生成新运行分支 | | 时间点存档 | 存档浏览器、终局面板 | 回到历史节点,按时间线回退 | 读写并存 |
复盘页必须展示
- 失败链的完整推进顺序。
- 每一步失败的触发原因和未满足条件。
- 当前失败种子和关键压力来源。
- 当前时间点的现实时间和游戏时间。
- 可继承遗产和下一步可操作项。
最近安全点重开
- 优先回到最近一张非终局、非只读、非锁定的安全快照。
- 如果最近快照已经进入终局收束,则退回到更早的可经营节点。
- 重开后要保留旧快照的兼容性,不能把原记录覆盖掉。
- 重开入口只负责回到还能继续经营的线,不负责替玩家重新推演终局规则。
时间点存档
- 时间点存档是历史节点的正式入口,不是普通手动存档的同义词。
- 每个时间点都要同时显示现实时间和游戏时间,不能只留一个时间轴。
- 建议使用
createdAt、updatedAt、gameTime、slotType、tags、failureId、failureStage这些既有元数据。 endgame类快照默认只读,最多允许复制成新的手动档继续玩。
建议数据结构
export interface SaveSnapshotMeta {
slotId: string;
title: string;
note?: string;
slotType: 'auto' | 'manual' | 'quick' | 'checkpoint' | 'endgame' | 'export';
createdAt: number;
updatedAt: number;
gameTime: GameTimeState;
appVersion: string;
roadmapVersion: string;
saveSchemaVersion: number;
failureId?: string;
failureStage?: string;
tags: string[];
locked?: boolean;
pinned?: boolean;
thumbnailUrl?: string;
}
读取流程
- 玩家打开终局面板或系统门厅。
- 先看到失败链、败局记录和当前时间点。
- 选择复盘时,只进入只读浏览。
- 选择最近安全点重开时,回到还能继续经营的节点。
- 选择时间点存档时,进入浏览器按时间线筛选和回退。
兼容规则
- 旧存档缺字段时自动补默认值。
- 不同版本的存档读入时先归一化,再显示时间点。
- 如果快照来自终局,默认保留终局元数据,不直接清空失败信息。
- 自定义存档创建时建议同时写入现实时间和游戏时间备注。
验收标准
- 终局面板能进入复盘,也能从最近安全点重开。
- 时间点存档可以回到历史节点,并同时看到现实时间与游戏时间。
- 复盘页能看见失败链、败局记录、种子和当前时间点。
- 旧存档继续可读,不需要改存档结构。
关联文档
docs/design/completed/systems/endgame-save-load-design.mddocs/design/completed/systems/failure-endgame-design.md