機能

計算手順独立の構想について。

能力値の枠が不足する問題

キャラクタ能力値の枠が不足する声があることは、私としては意外に感じるのですが、その原因について少し考えています。

今のところの結論は、「可変情報を能力値に頼りすぎる」ことにあるのだと思いました。

ゲーム中の情報を自由計算できる「計算手順」を搭載した部分が現在、能力値とコマンドの一部にしかありませんが、この自由計算の枠を増やす目的で、能力値を増やしまくっているのが理由かなと。

例えば、コマンドの「速度」は現在、能力値か定数かのどちらかを扱えますよね。もし速度を可変値にしたいなら、速度専用の能力値を採用することになります。能力値数が最低でも+1個、コマンドごとに速度を変えたい場合は、その都度能力値を増やすことになります。

この辺の問題が確かなら、真に不足しているのは能力値ではなく計算手順の枠、ということになりそうです。設定事項に計算結果を指定できればいいわけで、それが能力値である必要は無いわけです。

独立した計算手順テーブルを設ける

計算手順は、イベント機能の実装を踏まえて独立させ、自由に増やせるようにしようと考えています。

例えば「コマンドの速度」には、今のように能力値を割り当てる方法もありますが、計算手順そのものを「速度」に設定できるようにするわけです。「001:速度の計算手順」をコマンド速度に割り当てて、あらかじめその手順をプログラミングしておけば、速度の能力値枠を増やさなくても速度を自由に決めることができます。

計算手順は汎用の共通テーブルに自由定義できるようにして、いろいろな速度を計算したい場合には手順枠を増やすことになります。

他にも、エリアのエンカウント率・宝箱の出現率・店の商品価格なんかにも適用したりして、だいぶ可変情報を増やせるようになりそうです。

大きな効果を上げそうなのがイベント条件判定あたりです。計算結果がゼロ以外をOK、ゼロをNGとして判定をすることで、もう少し複雑な条件判定ができるようになるはずです。

もう一点のメリットしては、現在「特殊能力値」として定義してている能力値を、レベルを除き廃止できることがあります。特殊能力値にあたる部分は計算手順で代用できます。必要なら能力値を手で増やしてもらって、それを計算手順から参照すればいいのです。これで能力値の枠が150空き、動作速度が向上します。

計算手順の枠組みをさまざまな場所に適用するには内部的に工夫が要るのですが、能力値やコマンドの計算手順で手応えを感じたので、やってみようと思いました。

アイテム称号の出現規則も計算手順で

以前述べた「アイテム称号」についてですが、これも計算手順の拡張とセットでやっていこうと思います。

アイテム称号を指示するには多くの情報指示が必要で、出現規則をすべて固定乱数で指示するだけならすでにできているのですが、出現率や称号ランクの範囲を固定でやってしまうと、活用の範囲がとても狭いものになってしまいます。計算手順のような機構が頼りだと感じました。

そのままイベントテーブルになる

計算手順の定義システムは、やがてはイベントの定義システムになっていくと思います。

計算手順を割り当てる場所には計算命令だけを許可して、イベントを割り当てる場所には、計算命令も含めたイベント命令のすべてを許可するという感じです。

イベントについて今のところの課題は、以下の二点です。

  • モジュール化をどこまで許すか
  • ループ機能および配列機能を与えるか

ゲーム制作ツールのイベント機能というのは、実質プログラミングの機能になるわけですが、プログラミングといっても実装段階がありますので、どこまで細かく弄れるようにするか判断が難しいです。

機能が細かいと使いたがる人が増えて使える人の割合が減り、機能が粗っぽいと使いたがる人が減って使える人の割合が増えるのですが、私としては己の需要以外に、利用者の方とのやりとりを通じて居心地の良さそうな位置取りをしたいと思っています。