第15無駄話「ゲームの素」(04/02/04)
 

 


 実は以前同じようなコラムを本職としてゲームを作っておられる人のHPで見かけたのだが、同じようなコラムを書いてみよう。模倣子です。ちなみにその人のHPはリンクフリーだったので、紹介しましょう。「リンダキューブ」とか作った人です。どのレベルで作った人なのかはHPに行ってみましょう。下のバナーから飛び込めます。

 自分でゲーム作ったことがある人は分かると思うが、アクションゲームやシューティングゲームよりRPGの方が作るのは簡単である。勿論、綺麗な絵、音楽、シナリオ等をしっかりしようと思えば難しくなるのは当然だが、それは他のゲームでも同じだと思う。私は昔、PC9801シリーズのパソコンでn88Basicというインタプリンタ式の言語(当時はOSの役割も強い)でゲームをちょぼちょぼ作っていたのだが、「平原を歩く。」「敵と出会う。」「戦う。」「勝つ・負ける」といったプログラムは、それが美しく機能的であるかは別として、作っていた。ちなみにインタプリンタ式とは、ちょっと作っては確認の作業がすぐ出来ると言う方式なのだが、いきあたりばったりで無計画にプログラムを組んでしまう傾向がある。勿論、全ての人がそうではないが。2000年問題とかも「プログラムは動けば良い。」「見易さよりも速さ。」という考えが昔は一般的だったので、そのせいでプログラムが分り難くなっていて発見が遅れた面もあるのではなかろうか?ちなみに、2000年問題とは、プログラム上で西暦を下二桁で処理していたせいで、00年が2000年ではなく、1900年と処理してしまうせいであったが、そもそも何故、二桁で処理をしていたかと言うと少しでも早く処理することと、プログラムを短くするためだった。当時のニュースで、「ずさんだ。」とかキャスターが言っていたが、私はそういった小さな努力は好きである。しかし、考えると2000年以前の多くのソフトは下二桁で処理していたとすると恐ろしい。メインメモリが16MBくらいになった時に方向転換しようと思った人はいなかったのかな?いたんだろうなあ。

 話が随分とずれたがRPGの話である。私の作ったRPGなぞ一人盛り上がりのストーリーと、貧弱な絵、当然音なしなのだが、昔一斉を風靡し、いろんなゲームにリメイクされているゲームは主人公の表示が「@」だったりするのだが、剣と盾を持ってモンスターと戦う以上、夢中にならざるにはいられなかった。よってRPG(ゲーム)の面白さは絵とか音楽にはよらない部分もあるのだ。
 さて、随分前にアクションやシューティングは難しいといったのは、処理の関係と動きの表現の関係である。処理に関しては使ってたパソコンの性能を考えると本格的なアクションやシューティングを作ろうと思ったらC言語とかを覚える他なかったのだが、そんな気合がなかった。敵が多くなると当然遅くなるし、少なくなれば早くなる。そういった速度調整が非常に難しい。一歩すすんだ知識が必要になる。最近は専門書も沢山でているのだが。
 動きと言うのは非常に難しい。リアルな動きを表現し様と思えば物理・数学の知識が必要になるし、気持ちのいい動きを再現するのは非常に難しかった。よって私の作ったゲームはかくかくしていたのだった。

 さて、ようやく本題に入り、RPGの中の計算式について考えてみよう。攻撃によるダメージの算出式だ。ちなみに、この辺のことを考えたのが模倣子であります。同じコラムを以前読んだんですね。
 さて多くの初期のRPGでは与えるダメージを以下のように算出していたと思われる。ダメージDm、攻撃力At、敵の守備力eDfとするならば・・・。

 Dm=At−eDf・・・(1)

  となる。これは非常に単純な式で、攻撃力が10で、スライムの守備力が3だったら、7のダメージをスライムに与えることになる。勿論、毎回同じダメージじゃつまらないので、適当に補正がされている。また、敵の守備力の方が高いと敵が回復するので、ちゃんと処理が挟んである。間違えて攻撃すると相手が回復するゲームを作ってしまったものだった。
 さて、なぜこのような簡単な計算式が用いられていたかというと、ずばり処理の関係である。複雑な式にすればするほど、戦闘が遅くなる。「タカオはスライムを攻撃した。」(間)「スライムに5672のダメージを与えた。」。この間が長くなってしまうわけだ。
 そもそも、計算式が単純な方が自分の攻撃力から敵の守備力を想像できるし、変に凝った算出式を提案して後半のゲームバランスが崩れたり、または、作った側の自己満足に終わってしまうことだってある。最近のゲームがどんな式を使っているかは分らないが、古来からの式でも充分に面白いゲームは作れると思うのだ。

 しかし、作っている側としては算出式=世界観であって、この辺のことを考えていると楽しい。だからこんなコラムを書いている訳だ。
 ところで攻撃力At自分の守備力をDfとおくとその内訳は以下になるだろう。自分の力をSt武器の攻撃力をWp自分の守備力をVi(適当)防具の守備力をAmとするなら・・・。

 At=St+Wp・・・(2)
Df=Vi+Am・・・(3)

 という感じになると思われる。しかし、ここで疑問が出てくる。まあ、鎧やら兜はつける人によって硬さが変わる訳ではないだろうから、守備力は良いとして、攻撃力に関しては疑問が出る。この計算式では力の強い人がハンマーを使った場合と力の弱い人がハンマーを使った場合というのがあらわせていない。現実では力の強い人(ハガーとか)がハンマーを振り回せば手をつけれないのである。勿論、力の弱い人は装備できないという話は後に回しましょう。
 さて具体的に考えよう。A君の力は20。B君の力は40。A:B=1:2。2倍違うわけだ。ハンマーの攻撃力は20としよう。各々装備をするとA君の攻撃力は40。B君の攻撃力は60。A:B=2:3。1.5倍になった。馬鹿な!じゃあ、お互いがハンマーを装備した方が良い勝負をするってことなのかい!?
 まあ、現実ではそういう場合もあるかもしれないが、自分よりも2倍力の強い男がハンマーを持ったらタコ殴りにされるのではなかろうか?つまり、(2)式ではこういった言いがかりには対応できないのである。
 ではどのような式を考えようか?こういう作業が楽しいのである。思うに武器というものは使うものの力を、その材質や形状の特徴を含めて、どのように対象に伝えるかというものではないだろうか?回りくどい言い方だが、武器の攻撃力というのを単純に力に加算するのではなく、掛算してみれば良いわけだ。自分の力をSt武器の攻撃力(率?)をWpとしてするなら・・・。

At=St*Wp・・・(4)(”*”は掛算ね。)

 この場合、例えばハンマーの攻撃率が1.5だとするなら、さっきのA君とB君の攻撃力はA:B=30:60=1:2となるので、武器を持っても持たなくても彼らの攻撃力の関係は同じだ。守備力の話はしていないが、2人の服装おんなじような感じだったら、A君はたちまちピンチである。
 ところで(4)式でもまだ疑問が出てくる。ハンマーの攻撃率が1.5、ラグナロクは4.8としよう。勿論ラグナロクは伝説の魔剣で、ジョースターさんが小さく見えるほどでかい。両方の武器をひ弱のA君が装備をすると、ハンマーで攻撃力30、ラグナロクで96だ。なるほど、ラグナロクつええなあってなる訳だが、攻撃率を武器の材質・形状等を表した数字と決めた訳なので、現実問題では重くて使えないということもあるだろう。ちなみに職業やキャラクターが原因で使えない武器があるというのは、わがままであろう。
 そういう訳で武器に重さという属性を与える。Wtとおく。StWtを越えていないとその武器を上手く使えないということにするのだ。
 とまあ、ここまで考えたことを表にしてみよう。

名前 攻撃率 重さ
ハンマー 1.5 30
レイピア 1.3 10
ロングソード 1.7 50
ミスリルソード 1.9 25
ラグナロク 4.8 100

 どうだろうか?まるで攻略本みたいな感じではなかろうか?まだまだ、いろいろと考えることが出来る。武器を使う以上、素早さや技術は当然必要になってくるし、得意な武器とかもあるだろう。長くつかっていれば武器は壊れるかもしれない。

 

 

無駄話に戻る トップページに戻る

劇団ヤルキメデス超外伝 劇団ヤルキメデスHP Senden_Senyo

SEO [PR] おまとめローン Windows7 冷え性対策 動画 掲示板 レンタルサーバー ライブチャット SEO