読者です 読者をやめる 読者になる 読者になる

ゲーム作るのにまだ乱数使ってるの?

原始、ゲームは乱数とともにあった。インベーダーが弾を打つタイミングはでたらめで、ゲーム&ウォッチのパラシュートがどこに着水するかは誰も知りえなかった。

近年、ゲームは乱数を必要としない。きちんとしたストーリー、練りに練られたレベルデザインに沿って遊ぶゲームにおいて、コンピュータの気まぐれで展開が変わるなどもってのほかだ。

昔のゲームがなんで好んで乱数を使っていたかというと、そうした方が何度も遊んでもらえたからだ。乱数を使えば、遊ぶたびにゲームの展開が変わり、新たなチャレンジが楽しめる。特に昔のゲームは1プレイ5分とか非常に短い時間で終わるものが多かったため、乱数で変わる新たなチャレンジを何度も遊び、ハイスコアを更新しては自分の上達を確認するというのが普通だった。

最近のゲームはそういった遊び方はしない。1プレイ40時間とかいうゲームでは、乱数に頼らなくても同じ展開にめぐりあうことはない。乱数なんか導入したら、人によって遊び方が変わってネットで攻略方法の共有もできなくなるし、なにより作る方もデバッグが大変になる。いいことなんてない。

十分な長さのレベルデザインが用意されていれば、もはやゲームに乱数なんて必要ないんじゃないか?特にアクションゲームだと、全く同じレベルデザインだとしても、人間がそれを毎回正確にトレースすることなんてできない。あるうまい攻略パターンを見つけたとしても、それを上回るパターンをさらに生み出すのはとても大変。乱数なんかに頼らなくても十分チャレンジングだ。

というわけで、いまどきゲームの根幹に乱数なんか使ってるやからは、ゲームバランス調整を放棄したダメゲームデザイナーです。

という結論になるととても悲しいので、乱数のいいところも考えたいのだが……正直ある程度の規模以上のゲームだと変な乱数要素はいらないっていう印象は強い。逆に言うと、昔ながらのコンパクトなゲームならばまだ乱数が活きる余地がある。

あと完全開発者視点の話だが、乱数の何がいいって開発者にも予想がつかないようなチャレンジをコンピュータが作ってくれるところ。ゲーム開発の楽しさの一つに、コンピュータがおれに歯向かってくれるってのが個人的にはあるのだが、そういった自分の作ったコードとのゲームを通した対決の楽しさにはやはり乱数が欲しい。自分の作ったはずのホワイトボックスをよくわからん挙動をするブラックボックスの混沌に叩き落とすには乱数の助けがいる。

乱数をフル活用し開発者にとってもブラックボックスとなったゲームは、おそらくそのバランス調整が非常に難しいだろう。でもその暴れ馬である乱数をうまく御すことができれば、ブラックボックスゲームを作るのはとても楽しいに違いない。乱数を使った自動生成、プロシージャル技術に惹かれるのは、その辺の楽しさを味わいたいからだと思う。

いやもちろん楽して楽しいゲーム作りたいってのもあるけど。プロシージャルによるレベルデザイン省力化バンザイ!