ゲームの乱数の仕組みを分かりやすく解説 – 後編

情報科学

ゲームの数学の仕組みを解説-前編 の続きです。以下のリンクから前編の内容をご覧になれます。

https://senehata.com/buturi-game-zenhen/(←前編のリンク)

前回はゲームにおける数字の処理方法と、時間の仕組みを解説しました。

今回はゲーム内の乱数の仕組みについて解説していこうと思います。

 

1.なぜゲームに乱数を使うのか

乱数とは、決められた範囲の数字の中から、不規則に選ばれる数たちのことです。では、どういう場面でゲームにおいて乱数を使うのでしょうか?

例えば、何かアイテムを入手する時にレアなアイテムだったり、そうでない普通のアイテムを任意の確率で出現させたりする。または、モンスターの動きを、ある確率で物理攻撃、ある確率で魔法攻撃にする。このように、ゲームに不確定な要素を持たせたい時に乱数が活躍します。

 

2.どのように乱数を活用するのか

それでは、実際のゲームにおける乱数の使われ方について解説します。

例えば、ゲームのガチャで10%の確率でレアアイテム、90%の確率で普通のアイテム、を出す仕組みを乱数を使って作るとしましょう。

そこで、乱数が1~100の値の中で無作為に数値を返すように設定した場合、10%の確率でレアアイテム。90%の確率で普通のアイテムを出したかったので、乱数の値で1-10が出た時はレアアイテム、乱数の値が11-100の時は普通のアイテムを出すようにします。

このように乱数を使う事によって、イベントの確率を自分で決めることができるようになるのです。

 

3.乱数を出力するプログラム(C言語触ったことある人向け)

参考として、乱数を実際にプログラムの中でどのように記述すれば良いのかを書いていきます。
以下、乱数を出力するプログラムのコードです。

そして実行結果。

プログラムから、rand()関数にて乱数が生成されていることが分かるかと思います。

 

4.まとめ

今回は、ゲームで使われる乱数について解説しました。実は、上のrand()関数はもう1度実行すると、全く同じ結果が出力されます。つまり、乱数を作るために全く同じ計算がされたという事が分かるのです。となると、どのように乱数を作る計算をしているかも少し気になりますね。(何か乱数調整と呼ばれる技もあるようです。)

今回の記事で、何か質問や感想がありましたら、是非コメントお願いします。

 

5.参考文献

以下の本では、この記事で紹介した内容よりもさらに深く広くゲームの数学について解説しています。
ゲームを動かす数学・物理R 著者:堂前嘉樹 出版社:株式会社ボーンデジタ

コメント

タイトルとURLをコピーしました