偶然に任せる役割を決める
偶然に任せるものは、影響のない見た目の変化、同程度のルートの選択、結果を大きく左右する報酬などさまざまです。ランダムな出来事でプレイが終わるなら、どんな危険があるかを伝え、できれば合図や判断の機会を用意します。景色だけが変わるなら、説明はほとんど不要かもしれません。抽選を実装する前に、プレイヤーの期待を書き出しましょう。理解しているルールの範囲で変化が起きると、驚きを楽しめます。
意味のある選択を守る
結果に対してプレイヤーが行動できるか確認します。ランダムな障害物でも、避ける時間が十分あれば公平に感じられます。最後に操作できる瞬間を過ぎて現れると、同じ障害物でも理不尽に感じられます。大きな逆転を狙う設計でない限り、偶然の報酬で考えて遊ぶ価値を消さないようにします。繰り返し得る報酬なら、長く何も出ない場合や同じものが続く場合も、プレイヤーにとって納得できるか考えましょう。
分布と認識を別々にテストする
テスト中に結果を記録し、観察された多様性を意図した分布と比較します。ただし、短いサンプルが確率を証明するとは想定しないでください。プレイヤーに公平に感じたかどうか、何が結果に影響を与えたと思うか尋ねてください。これらは別の質問です。エクスペリエンスにバイアスが感じられるままでも、実装はターゲットに一致する可能性があります。 MDN は、JavaScript Math.random は擬似ランダム値を返すため、セキュリティを重視した使用には適さないと述べています。ゲームの公平性とセキュリティは別の問題です。
ゲームにおける公平なランダム性についての質問
ランダムとは、すべてのプレイヤーにとって予測できないことを意味しますか?
いいえ。ランダムな仕組みでも、プレイヤーは規則を推測したり、似た結果が続くことに気づいたりします。関連するルールを説明し、繰り返し遊んだときに結果がどう受け止められるか確かめましょう。
ゲームの結果に Math.random を使用できますか?
通常のゲームバリエーションに擬似ランダム値を提供できますが、暗号的に安全ではないと MDN は警告しています。セキュリティを重視した決定には使用しないでください。
関連情報
古い情報を見つけましたか? 訂正を連絡