№ · 6.26 玩法迭代 CH.06.26
主页 · 🎲 6.26 玩法迭代 · 终局复盘重开与时间点存档技术文档

终局复盘重开与时间点存档技术文档

📅 2026-06-26 · 📦 3.6 KB · 🎲 6.26 玩法迭代 · 📝 MD 文档 🏷️ 时间🏷️ 设计🏷️ 终局

# 终局复盘、重开与时间点存档技术文档

最近更新:2026-06-26 16:06:26 +08:00

作用:明确失败后的回看、安全点重开和时间点存档三条入口如何共存。

边界:不改存档 schema,不新增终局玩法表,不把复盘写成新的玩法系统。

设计目标

  • 终局面板和系统门厅都能进入复盘。
  • 玩家能从最近安全点回到还能继续经营的节点。
  • 时间点存档继续作为回到历史节点的正式入口,并同时显示现实时间和游戏时间。
  • 旧存档兼容,终局快照保持可读,不把失败写成纯删档。

三条入口

| 入口 | 进入位置 | 作用 | 写入方式 | | --- | --- | --- | --- | | 复盘 | 系统门厅、终局面板 | 回看失败链、败局记录、种子和当前时间点 | 只读 | | 最近安全点重开 | 终局面板 | 回到最近还能继续经营的节点 | 生成新运行分支 | | 时间点存档 | 存档浏览器、终局面板 | 回到历史节点,按时间线回退 | 读写并存 |

复盘页必须展示

  • 失败链的完整推进顺序。
  • 每一步失败的触发原因和未满足条件。
  • 当前失败种子和关键压力来源。
  • 当前时间点的现实时间和游戏时间。
  • 可继承遗产和下一步可操作项。

最近安全点重开

  • 优先回到最近一张非终局、非只读、非锁定的安全快照。
  • 如果最近快照已经进入终局收束,则退回到更早的可经营节点。
  • 重开后要保留旧快照的兼容性,不能把原记录覆盖掉。
  • 重开入口只负责回到还能继续经营的线,不负责替玩家重新推演终局规则。

时间点存档

  • 时间点存档是历史节点的正式入口,不是普通手动存档的同义词。
  • 每个时间点都要同时显示现实时间和游戏时间,不能只留一个时间轴。
  • 建议使用 createdAtupdatedAtgameTimeslotTypetagsfailureIdfailureStage 这些既有元数据。
  • 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;
}

读取流程

  1. 玩家打开终局面板或系统门厅。
  2. 先看到失败链、败局记录和当前时间点。
  3. 选择复盘时,只进入只读浏览。
  4. 选择最近安全点重开时,回到还能继续经营的节点。
  5. 选择时间点存档时,进入浏览器按时间线筛选和回退。

兼容规则

  • 旧存档缺字段时自动补默认值。
  • 不同版本的存档读入时先归一化,再显示时间点。
  • 如果快照来自终局,默认保留终局元数据,不直接清空失败信息。
  • 自定义存档创建时建议同时写入现实时间和游戏时间备注。

验收标准

  • 终局面板能进入复盘,也能从最近安全点重开。
  • 时间点存档可以回到历史节点,并同时看到现实时间与游戏时间。
  • 复盘页能看见失败链、败局记录、种子和当前时间点。
  • 旧存档继续可读,不需要改存档结构。

关联文档

  • docs/design/completed/systems/endgame-save-load-design.md
  • docs/design/completed/systems/failure-endgame-design.md