本文目录 · 5 个章节

不确定的结果,也需要确定的规则
零号试剂是作品集中的项目名,当前展示的游戏原型名为异芽 MUTABLOOM。它把基因组合、杂交与塔防决策连接起来。遗传机制是玩法抽象,不是对生物学遗传的科学模拟;角色使用既有 AI 辅助美术。
这里讨论一个很小但重要的约束:预览只解释可能结果,确认才提交变化。如果查看信息本身改变了未来的随机结果,玩家表面上获得了更多理解,实际上却在无意中影响规则。这会让“我只是看一眼”与系统真实行为发生冲突。
预览与确认必须是两种操作
- 01预览
读取规则 · 随机状态不变
- 02确认
验证材料与资源 · 无效则退出
- 03提交
推进对应随机流 · 原子更新
现有测试先记录 hybrid 随机流状态,再连续调用十次 recipe 预览,要求状态保持相同。它随后检查确认杂交后的主系、代数、继承基因等变化,并检查无效操作不改变资源与随机状态。相关遗传测试在 2026 年 9 月 6 日的本地运行中全部通过。[1]
const before = battle.rng.hybrid.state;
for (let i = 0; i < 10; i++) battle.recipe(a.id, b.id);
assert.equal(battle.rng.hybrid.state, before);这条测试并没有证明整个系统都正确。它的价值是把一个容易遗漏的用户期待,变成每次修改后都可以重新检查的约束。测试报告比“随机系统公平可靠”这样的整体形容更窄,却也更可验证。
百分比必须有明确边界
被核验的 weightedPhenotype 测试使用三个候选,检查 0、接近 0.6、0.6、接近 0.9、0.9 与接近 1 的输入,对应三段选择区间。这种边界检查用于防止临界值落入错误分支;它不是通过有限次抽样证明长期分布,也不表示游戏中的所有随机选择都采用同一组权重。[1]
| 检查 | 能支持什么 | 不能替代什么 |
|---|---|---|
| 区间边界测试 | 给定随机输入进入预期分支 | 大规模统计分布检查 |
| 固定种子重放 | 相同条件下排查状态变化 | 不可预测或加密安全保证 |
| 界面概率预览 | 帮助理解候选与代价 | 玩家是否真正理解的用户测试 |
因此,规则正确与表达清楚需要分别验证。一个显示为 60% 的选项,可能被理解成每十次必定出现六次,也可能被理解成越久没出现就越该出现。界面如果没有这种机制,就不应该通过措辞暗示存在补偿。
解释所有细节,也可能破坏体验
把全部内部参数摊开,不一定让玩家更容易决定。面对一次操作,更重要的通常是:可选结果是什么、会消耗什么、失败或不利结果意味着什么,以及能否取消。更深的规则可以放在第二层说明中。

这里也存在取舍:完全可预测的系统可能失去探索感,而无法解释的系统又可能只剩挫败。本文不声称已经找到了最佳平衡。代码测试能回答规则是否按定义工作;节奏、惊喜与理解成本,仍需要实际游玩反馈。
从游戏中带走的工程问题
预览不改变状态、无效操作不消耗资源、重复结算不重复记账,这些都是关于“允许什么变化”的问题。它们可以启发其他软件设计,但不能把游戏原型的验证直接当成企业系统的可靠性证据。
我更愿意用这样的小问题解释自己的方法:先把人的预期写成规则,再让代码与测试共同守住它。随机性负责保留未知,清楚的边界负责让未知仍然值得探索。
来源与延伸阅读
- 零号试剂 · 规则核验记录 ↗
依据 · 2026-09-06 核验:遗传规则测试 11 项通过。含核验范围与代码指纹,不含整个私有仓库。