# 让游戏中的随机性感觉公平

> 选择随机性控制的内容，为玩家提供足够的信息来做出反应，并测试结果是否感觉有所不同而不显得随意。

- URL: https://oneshotgems.ai/zh-Hans/topics/fair-randomness-in-games
- 类别: 游戏开发者指南
- 类型: 指南
- 更新日期: 2026年10月5日

随机性会使重复的游戏变得更不可预测，或者让人感觉结果不值得。公平取决于期望、风险以及选择是否仍然重要。首先决定哪些内容应该改变，哪些内容应该由玩家控制。然后通过重复运行来测试体验，而不是根据一个令人难忘的结果来判断随机系统。

## 明确偶然性承担的任务

随机可以决定不影响玩法的视觉变化、在等价路线中做选择，或决定影响重大的奖励。如果随机事件能结束一局游戏，就说明存在什么风险，并尽可能提供提示或决策机会。如果只改变风景，也许几乎不用解释。实现随机抽取前，先写下玩家的预期；在玩家理解的规则中带来变化，惊喜才容易让人享受。

## 保护有意义的选择

检查玩家能否对结果作出反应。随机障碍若出现得够早、还有时间躲开，就可能是公平的；若在最后一次操作机会之后才出现，同样的障碍也会显得不讲理。除非设计本就追求大起大落，否则别让随机奖励抵消认真决策的价值。对于重复发放的奖励，要考虑长时间没有收获或连续得到重复结果，玩家是否仍能接受。

## 分别测试分布和感知

记录测试期间的结果，并将观察到的变化与您想要的分布进行比较，但不要假设短样本证明了概率。询问玩家这是否公平以及他们认为什么影响了结果。这些是不同的问题：实施可以达到其目标，但体验仍然感觉有偏差。 MDN 指出 JavaScript Math.random 返回伪随机值，不适合安全敏感用途；游戏公平性和安全性是不同的问题。

## 常见问题

**随机是否意味着每个玩家都无法预测？** 不会。即使在随机系统中，玩家也可以推断模式或注意到连续性。解释相关规则并测试如何在重复的会话中感知结果。

**我可以使用 Math.random 来计算游戏结果吗？** 它可以为普通游戏变化提供伪随机值，但 MDN 警告说它在加密上并不安全。请勿将其用于安全敏感决策。

## 跟随好奇心探索

- [写出玩家可以理解的计分规则](https://oneshotgems.ai/zh-Hans/topics/game-scoring-rules): 让得分奖励游戏重视的行为，清楚说明加分规则，并检查是否有策略压过了原本希望鼓励的玩法。
- [一次改变一项要求，塑造游戏难度曲线](https://oneshotgems.ai/zh-Hans/topics/game-difficulty-curves): 逐步改变清晰可理解的要求来增加挑战，确认玩家理解了每项新要求后，再加入下一项。
- [生成可重复的随机游戏关卡](https://oneshotgems.ai/zh-Hans/topics/seeded-random-level-generation): 使用存储的种子重新创建程序游戏布局，将生成与验证分开，并使失败的关卡易于重现。

## 延伸阅读

- [MDN Math.random 参考](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random)

---
规范页面: https://oneshotgems.ai/zh-Hans/topics/fair-randomness-in-games
