逆向 Factorio 的随机数发生器
来源: gegell.github.io — 2026-08-22
概述
作者借品质机制逆向工程了 Factorio 的伪随机数发生器:论坛上前开发者 Cube 早在 2014 年就透露游戏用的是 boost 的 taus88,理由是它最快。知道算法与内部状态之后,就能在游戏之外并行运行同一算法,预测未来会出现的「随机」事件,例如哪些合成会产出高品质物品。文章提醒 Factorio 2.1 改变了 RNG 的使用方式,会让游戏内实现失效,但理论部分依然成立;阅读只需要线性代数基础。
核心要点
- 确定性游戏里的随机来自 PRNG,作者的目标是在游戏之外同步运行同一算法,预测未来的随机事件。
- 关键线索来自论坛:开发者 Cube 在 2014 年说他们选 taus88 是因为它在 boost 的生成器里最快。
- taus88 由三个 LFSR 组成,当年有人提议删掉其中一个以提速约 40%,被以随机数不是瓶颈为由否决。
- 动机是 Space-Age 的品质机制:品质模块按概率产出更高品质物品,而官方把它归结为「基本上是统计」。
- 须注意适用版本:2.1 改变了 RNG 的使用方式,会破坏游戏内实现,但理论仍然适用。
金句
简短的答案是:它并不是随机的。
👍 0
👎 0
返回 Lobsters 首页