Agent Skills
返回列表
🤖

Savesystems 存档系统

AI Agent 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/save-systems-sh-o2qqrz。

技能介绍

要解决的具体问题

游戏存档的核心难点不在于写入字节,而在于三点:明确哪些状态必须持久化、避免写入中途崩溃导致存档损坏,以及发布补丁后仍能读取旧存档。一个合格的存档本质上是游戏状态的序列化快照,它必须能跨会话、跨重启、跨内容更新保持可用。

技能如何工作

该技能将存档设计拆解为一条可落地的技术流程:

  • 确定权威状态:保存 hp、位置、种子、解锁标记等数据,而非引擎对象或场景节点;加载时通过数据重建对象。
  • 引入版本字段:每个存档携带 version 整数,作为后续升级到当前格式的依据。
  • 选择存档格式:优先用 JSON 保证可读性和调试效率;当对体积或速度有更高要求时,再考虑二进制格式。
  • 原子写入策略:先写入临时文件,flush 后再替换目标文件,同时保留 .bak 备份,降低崩溃或断电导致的半写风险。
  • 防御式加载逻辑:按版本读取 → 迁移到当前版本 → 校验 → 实例化;解析失败时自动回退到上一份有效存档。
  • 受控自动存档:在安全边界触发,写入独立槽位并限流,避免覆盖手动存档或保存不一致状态。
  • 完整验证流程:保存后完全退出游戏,重新启动并加载存档,确认状态一致;同时测试旧版本存档的迁移与读取。

适用边界与注意点

本技能不涉及 Roblox 云持久化的具体实现、序列化数据模型本身,也不替代 Godot 引擎中 FileAccess / ResourceSaver 的具体用法。在多人游戏中,本地存档由玩家掌控,不可直接视为在线状态的权威来源。

参考资料

references/versioning-and-migration.md — 包含 schema 演进策略、迁移链设计、备份与回滚机制、格式取舍建议及加载期校验清单。

使用场景

  • 游戏需要保存玩家进度,并在补丁发布后仍能读取旧存档,你要设计版本号与迁移流程。
  • 写入存档时可能因崩溃或断电中断,你要实现临时文件加原子替换,避免半写损坏。
  • 需要在检查点自动保存,但又要避免覆盖手动存档,你要划分独立槽位和触发边界。
  • 存档格式从 JSON 改为二进制,你要保留旧文件的可读性并设计回滚路径。

适合人员

  • 做单机或联机游戏的程序员,需要在重启和补丁后稳定保存与读取状态。
  • 负责存档格式演进的技术负责人,需要在改动 schema 时减少旧存档丢失风险。
  • 独立开发者,要在 Godot 或 Unity 里实现存档槽、自动存档和备份机制。
  • 排查存档损坏问题的 QA 或技术支持,需要复现崩溃写入并验证回退方案。