RPGツクールでのシミュレーションゲーム制作 Vol.2 変数編①
こんにちは、あるいはこんばんは。青島清華です。
今回はちょっと早い更新です。(先月サボったので今月はちゃんと制作更新の報告をするつもりでもあります)シミュレーションゲーム制作の第2回ですが……
変数操作は難しい!
率直に言って、この記事を見るだけでいきなりシミュレーションゲームは作れません(笑)今持っているアイディアについていろいろと書きたい気もするのですが、実際に動く物を組み上げてからお見せしないと、問題が続出ということにもなりかねないので、より詳しく書いたものについてはまた機を改めさせてください。今回お伝えするのは「トレーダーでおまっ!」(以下本作)をどうやって作っていったか、ということについてです。
まず要素を書き出す
お見せしてしまうと、現時点(Ver.1.01)での本作の変数一覧です。実際には使っていないものや空白のままになっているものもあります。
変数、あるいはパラメータといった方が耳なじみがよい方もいらっしゃるかもしれませんが、ゲーム内で使われるさまざまな数値です。所持している資源の量だとか兵士の数とか現在の日付といった様々な数値を、項目名を付けて記録していくことができます。
以前どこかで書いたのですが探しません、RPGツクールの「変数」の機能、一度作り始めてしまうとあとから修正するのが面倒なので、(どうしても後から追加で必要になることはありますが)なるべく先にどういった要素が必要なのかを考えておいた方が楽です。自分の場合は紙に書きつけていくことにしました。
- まず交易のゲームということが決まっていたので所持金と各資源の所持量・それぞれの星での相場
- 宇宙船での移動を考えていたので燃料や燃費・貨物の最大積載量
- 前回でも使った目的地・現在地
- 初期段階から将来的な拡張を予定していたのでゲームモードや難易度の選択
といったことがメモ書きには書きつけてあります。交渉システム自体は最初から考えていましたが変数を用意していませんでしたw
また、現在制作中の作品(風呂田の冒険)でも利用しているのですが、確率で色々な計算をしたい時や、計算の記録として利用できるものがあった方がいい、というのが経験上分かっていたので、「乱数」や「参照値」の項目を用意しています。ゲームのデザイン次第ですが、複数の要素について、確率で判定し、しかも、お互いに影響せず独立しているような場合……、というと何のことやらかもしれませんが、「同じマップの中に宝箱が二つ以上あり、その宝箱が出るかどうかは宝箱ごとに確率を設定する」というような場合は、それぞれの項目を複数個用意しておく必要があります(例えば最大で出現する宝箱の数だけ)。そうでないと、出現がパターン化してしまうのです。今回はとりあえず一つずつで始めましたが、足りないときは適宜追加しました。
大まかな計算方法を考える
要素を粗方書き出したらそれがどのように動いていくのか、つまりどのような計算をしていくのか書き出していきます。そのためにはゲームのおよその流れを書いておく必要があります。本作の場合、①仕入れ→②移動→③販売→①に戻る、というのを繰り返すことにしていました。そして、それぞれの項目でどのような処理をしたりイベントを発生させるかも、メモしていきます。例えば、②では
- ターン経過ごとの相場変動
- 移動には燃料が必要
- 時々敵と戦闘
- (遭遇)イベント発生
といったことが書いてあります。
また、今作はそれほど変数同士の計算で複雑なことはしていないので割愛していますが、例えば「風呂田の冒険」の方では以下のような内政(もどき)があります。
初期案では「農業従事者数×農業技術×経過日数=(農業での)食糧生産」というようなことが書いてありました
本作では、計算自体は単純ですが、各星ごとに相場の傾向があったので、それについては先に決めて、表にしておきました。(青の星は水が特産でエネルギー資源が高く売れるなどなど)
「変数」以外も使えます!
さて、大体の設計図が出来上がったところで制作に取り掛かっていくわけですが、この「変数」、あるいはパラメータは、ゲームに備わっている「変数」の項目以外を利用することができます。例えば、
- 「所持金」についてはパーティの所持金
- 宇宙船の「耐久値」「燃料」については各キャラクターのHPとMP(項目名を変更)
この二つを本作では利用していますが、各キャラクターの能力値というのが案外使えると思います。
現時点では実装していませんが、本作では宇宙船の乗り換えができるようにしようかと思っています。RPGツクールではキャラクターに当たる「アクター」と「職業」が設定でき、同じキャラクターでも「職業」が変わると能力値も変化します。これを利用して、宇宙船の乗り換えをした時には「職業」を変更するようにし、耐久値や燃料、燃費もそれに合わせて変化するようにし、かつ必要な時に参照する値もキャラクターの能力値にしておけば、移動イベントなどの設定を変更することなく、新しい宇宙船を実装することができます。
応用編:戦略シミュレーション
各地に拠点があり、そこから部隊を出撃させて敵と戦うような戦略シミュレーションを作る場合、「拠点」または「部隊(の隊長)」を「アクター」で設定することが考えられます。後者の場合、部隊の種類(歩兵、騎兵、弓兵など)によって「職業」が変わるようにしておけば、能力値が変わります。また、HPを「兵力」、MPを「士気」などにしてMPを消費することで計略や強力なコマンドが使えるようにしておけば、RPGツクールのデフォルトの戦闘システムを利用して戦闘モードとすることもできます。これなら兵科ごとの相性や特殊コマンドなど、色々と設定することができるので便利です。しかし、問題は3以上の勢力が存在するようなゲームにした場合、必ずプレイヤーが関係しない戦闘が発生するので、その場合の戦闘をどのように処理するかなのですが……。このあたりのルール・処理が固まれば、サンプルゲームを作れそうな気がします。
ただし、「アクター」を利用する場合に注意が必要なのは、能力値の上限で
- HPは9999
- TPは100
- 他は999
が限界になっています。一般的な「変数」の方は±99999999が上限と下限、「所持金」は0~99999999までとなっています。状況に合わせて使い分けるのがよいでしょう。
そして、「変数」を利用する場合は探しやすいような並び順にするのをお忘れなく。
これぐらいが固まってから、実際にPCでの作業をした方がよかったと思います。風呂田の冒険はあまり深く考えずに作り出したので結構大変でした(笑)。本格的なシミュレーションゲームを作る場合には、いくつか試作品を用意して、テストプレイをしたうえで本格的に開発するのがいいですね。そうです、それをしなかった私はバカですw
長くなってきたので今回はこの辺りで失礼いたします。それでは!