首页› 技术与工程› TECH-04
TECH-04

时间调度与存档

时间通道、确定性、并发提交、分块存档、迁移与 Steam Cloud 边界

册型T3 技术册系列技术与工程版本v4.1档期P0上游依赖TECH-01~03被谁依赖TECH-07~09 · BIZ-01本册变更v4.1:按 Godot 4.8 dev6 新方案重建

1. 时间通道#

通道职责默认策略
Frame输入、UI、可见快照只处理表现层
Tick需要连续变化的设备和运输固定步长,可暂停和加速
Batch生产、物流、需求和局部结算按 Chunk 和 dirty 标记批量运行
Period财务、市场、统计、任务和长期事件按游戏日/周/月定义
Platform成就、Cloud、Workshop 回调异步队列,不阻塞仿真

2. 确定性#

世界随机性由 seed、命令序列、内容哈希和 MOD 清单共同决定。随机数按系统分流,禁止调用全局不可控随机。相同输入必须得到相同 world_hash,便于复现 bug 和验证存档。

3. 并发和提交#

main thread: accept commands -> advance authoritative state
worker: read immutable snapshot -> calculate result
main thread: validate revision/hash -> commit result
invalid result: discard and reschedule
线程边界

工作线程不得直接修改权威状态,不得写 Godot 容器,不得发 UI 信号。所有写操作在主线程的提交阶段完成。

4. 存档格式#

save.sky
  manifest block
  world block
  entity blocks
  production/logistics blocks
  achievement block
  history block
  mod manifest block
  checksums

存档使用分块二进制,数值数组紧凑编码,长文本和历史记录独立压缩。每块有版本、长度、压缩方式和校验值。

5. 保存、备份和恢复#

保存先生成内存快照,再后台编码到临时文件,完成校验后原子替换正式文件,同时保留上一份备份。程序中断、写入失败或校验失败时,旧存档必须仍可读取。

6. 迁移和兼容#

存档头记录 game_version、save_schema_version、content_version、balance_version、enabled_dlcs 和 enabled_mods。迁移只做字段增加、改名、默认值和 ID 映射,不偷偷重算玩家历史。无法安全迁移时进入只读恢复页。

7. 云存档边界#

Steam Cloud 只同步经过验证的存档包和必要 manifest,不同步缓存、日志或临时计算结果。发生冲突时显示本地版本、云端版本、时间和哈希,允许玩家选择,不静默覆盖。

↑↓ 选择 ↵ 打开 esc 关闭 本地索引 · 无需联网