プログラム

あまり役に立たないゲームでの乱数の使い方の話

投稿日:

昨日twitterでコメントをした話があります。

ゲームを進めるのに必須な要素があったときに、ランダムだけでコントロールするとなかなかあたりが出ないときがあります。

それってユーザーのやる気をそぐことがあるのではないか?

というのが本質なのですが、乱数の使い方の話をすると面白いかなと思ったので、あまり関係ない偏った話をします。

■乱数使用歴に関して

私はシミュレーション系ゲームのプログラムをやっていたので乱数を結構使っています。

ソーシャルゲームのガチャの確率なんかも、基本全部自分で決めてしまいます。

■乱数パラメータについて

使用方針は

・できるだけシンプルに

が、基本です。

理由としては、シンプルにしておかないと検証ができないからですね。

競馬ゲームで

  • 早さ
  • スタミナ
  • 勝負根性

みたいなパラメーターがあるじゃないですか。

それぞれ0~255の値を設定していたんですよ。

これもっと細かく0~999にしてやろうとしたことがあります。

結局戻したんですよね。

なんでかっていうと1000段階のチェックがやり切れなかったのです。

それぞれ乱数で(だけではないですが)、大まかな値が決まるのですが1000*1000*1000のパターンが出る可能性があるわけじゃないですか。

それぞれに理論値を持たせて、レースで妥当な結果を出して、っていうことをチェックしていくのにやりきれなかったわけです。

自動ツールで割り出すことはできますが、プレイ感として体感できないものを入れるのはとても危険です。

細かい設定ができなくても、ちゃんと確認できる範囲で納めることの方が重要だと判断したわけです。

■好みの問題もある

乱数を設定するときに頭にあるのはウイザードリーの宝箱です。

古典になってきたので知らない人もいますかね。

ウィザードリィとは (ウィザードリィとは) [単語記事] - ニコニコ大百科

(FC)Wizardry1 - Title ウィザードリィ(原題:Wizardry)とは、1981年に米国Sir-Tech社が発売したコンピューターRPGであり、...

ウイザードリーというゲームはある程度ゲームを進めると10階に行って宝箱をとってあけて鑑定するだけのゲームになります。(偏見…でもないかな)

ウイザードリーの面白さは、ラスボスを倒すのではなくその後の宝箱集めにあるかと。

まれにかなり強い装備が出るのですが、それがなくてもラスボスは倒せるんですよね。

どちらかというと、ラスボスよりも宝箱を効率よく集めるために強い装備を集める感じですね。

ここで全然でない装備が複数あるんですよ。私は「聖なる鎧」が全然出ませんでした。

「村正」や「手裏剣」は何個も出ているのに!

これ、出なかったから長いこと続けていたのではないかと思うのですよ。

全部そろっていたらさくっとやめていたかと。

そう考えると、いつまでも出ない可能性があるものってゲームを面白くすると思うんですよね。

あと「ダビスタ」。

こちらも同じような感じで、「日本ダービー」だけとれない!

最強の馬を作って、万全にして負けた時は本当にコントローラーをたたきつけました。

その後全然弱い馬がとって、あっけにとられるわけですが。

同じゲームをやっていた人たちと話すと、同じような体験をしているわけですよ。

ネットでつながる前は、こういう話をすることが「共通体験」となっていたわけです。

まあ、現在のユーザーさんが無料ゲームでそれを求めているかというと、確かにそうでもないだろうなとは思いますが。

■めんどくさいことを言ってくる人

乱数の計算に補正を入れてくれっていう人がいるんですよ。

まずは断ってしまいます。意味ないですよって。

それでも食い下がってくる人がいるので、じゃあチェックしてくれるのであればいいですよ、と返します。

これで9割がた脱落します。

残り1割の人もいます。

そういう人には対応したのでチェックしてください、って渡します。

「うん、よくなった!」って言ってくれますね。

処理は変えてないんですけどね!

動きがおかしくない?て返してくる人がいたら「バグっててちゃんと動いてなかった」って処理を入れようと思っていますが、判別できた人いません。

なので経験則的に意味がないと思っています。

同じようなことで乱数の処理を標準関数ではなく独自で作ろうとする人がいます。

これもやめたほうがいいと思うんですよね。

確かに偏りがあるのかもしれませんが、何回その計算が走るかはわかりませんが認識できるほど変わりませんよ。

反対したのにもかかわらず実装した人がいて、その人srand()忘れててバグらせてたんですよね。

にもかかわらず「こっちの方がいい!」って言ってて。

独自関数がバグっている可能性もあるじゃないですか。

通常の乱数だと思って、別の場所で使用しちゃう人が出るかもしれないじゃないですか。

そういうミスを入れる余地をなくしていく方が重要なんですよ。

■結論として

まあこれを読んでも工夫を入れたいっていう人に対して反対はしません。

正直いれても問題ないからです。

ゲームで使用する乱数は履行回数がどうしても限られますからね。

それで面白くなると思うならやるべきだと思いますし。

実際に入れて、お客さんに出してみないとそれが正しかったかそうでなかったかわからないですからねえ。

+--------------------------------------------

↓ブログランキング参加しています!


ゲーム制作ランキング
にほんブログ村 IT技術ブログ ゲーム開発へ
にほんブログ村

-プログラム
-

Copyright© ゲームプロマネのブログ , 2020 All Rights Reserved Powered by STINGER.