明确偶然性承担的任务
随机可以决定不影响玩法的视觉变化、在等价路线中做选择,或决定影响重大的奖励。如果随机事件能结束一局游戏,就说明存在什么风险,并尽可能提供提示或决策机会。如果只改变风景,也许几乎不用解释。实现随机抽取前,先写下玩家的预期;在玩家理解的规则中带来变化,惊喜才容易让人享受。
保护有意义的选择
检查玩家能否对结果作出反应。随机障碍若出现得够早、还有时间躲开,就可能是公平的;若在最后一次操作机会之后才出现,同样的障碍也会显得不讲理。除非设计本就追求大起大落,否则别让随机奖励抵消认真决策的价值。对于重复发放的奖励,要考虑长时间没有收获或连续得到重复结果,玩家是否仍能接受。
分别测试分布和感知
记录测试期间的结果,并将观察到的变化与您想要的分布进行比较,但不要假设短样本证明了概率。询问玩家这是否公平以及他们认为什么影响了结果。这些是不同的问题:实施可以达到其目标,但体验仍然感觉有偏差。 MDN 指出 JavaScript Math.random 返回伪随机值,不适合安全敏感用途;游戏公平性和安全性是不同的问题。
关于游戏中的公平随机性的常见问题
随机是否意味着每个玩家都无法预测?
不会。即使在随机系统中,玩家也可以推断模式或注意到连续性。解释相关规则并测试如何在重复的会话中感知结果。
我可以使用 Math.random 来计算游戏结果吗?
它可以为普通游戏变化提供伪随机值,但 MDN 警告说它在加密上并不安全。请勿将其用于安全敏感决策。
延伸阅读
发现信息过时了? 报告需要更正的内容