3DダンジョンRPG制作ツール Desigeon in Kuma's Page

過去のスクリプト機能

スクリプト機能実験の名残

 すでに時効となっている話なのですが、先にテストゲームをご紹介します。現在のDesigeonを制作する過程で一度はスクリプトシステムを作ってみたことがあるのですが、このゲームはその上で動かしている、つまりインタプリタ上で動いているゲームです(ソースファイルが同梱されています)。

 このシステムは、もちろん現在のDesigeonに組み込まれてはいません。また、画面サイズは固定です。

 以下、注意点です。

 スクリプトファイルは分散していますが、大部分のロジックはconfig\global\GameMain.knsに記載されています。テキストファイルで見ることができます。

 ちなみに以下のような感じです。

スクリプトファイルのイメージ

Desigeonにおけるスクリプト機能

 Desigeonでは当初、Java風のスクリプト言語機能を搭載する予定でいました。というより、スクリプト機能によってゲーム全体をコントロールさせようとしていた、といった方が正解です。

 具体的には、以下のような感じです。

 これらが目的でした。スクリプトファイルの他、データの記述はCSVファイルで行い、その中にも式を書けるようにするつもりでした。

 スクリプトを様々な場所に記述できるようにすることで、多目的にシステムを使いこなせるようになります。イベントも画面入力もモンスターの思考も、使いこなせさえすればシステムの表現力と多様性は大幅に増します。

 実際にCSV読み込み・インタプリタ・画面エディタを制作してみて、その有用性と欠点を確認しました。結論は、これを制作の中心に据えて実際のゲーム制作を行うことは困難である、ということです(あくまで私の能力と努力の範囲で制作したものがそうであるということです)。

 スクリプト機能は実質的にプログラム言語であるため、ウィンドウフォームから入力を行うばかりの制作方法に比べてはるかに自由度が高まりますが、その一方で学ばねばならない知識量や設定に要する作業量が多く、ゲーム制作への敷居が高くなりがちです。Wizardryのようなシンプルかつ端的に表現しやすい世界観のゲームは、七面倒なスクリプトを学べるほど力と意欲のある人であれば、自分でサッとプログラムを書いて、どちらが簡単に済むか試してしまう人が多いだろうと考えました(DesigeonはWizardryモドキを制作することが目的のツールではありませんが、シンプルな迷路ゲームを作ることは目的の一つになっています)。

 結局スクリプト機能は、ゲーム制作の上でもっとも邪魔になる機能として挙げ、一度削除することを決めました。

 この他に、CSVによる編集に限界を感じたという理由もあります。CSV上に「式」を記述できる意義は、セルに記述した式から関数を呼び出して、該当の設定値をリアルタイム計算できることにあります。

 そもそもCSVによる入力は、ExcelやOpenOfficeによって編集を行える点は強みなのですが、これは二次元配列に強いだけで、他の要素への参照、とりわけインデックス参照の編集が難しくなることが問題として挙がります。たとえば、武器屋に配置するアイテムの指定は、インデックス値にせよアイテム名にせよ、列挙する作業が大変になると思いました。

 最終的に、スクリプト機能の削除は同時にCSV入力機能の廃止にも繋がり、現在のVBフォームからの入力によって編集を行う形に収まりました。というわけで編集ツールの方は急遽立ち上げられた機能であるため、かなりのやっつけ仕事となり、荒っぽい作りになっています(深く考えず“勢い”だけで作られています)。しかしそれでも、CSVとスクリプトの記述で制作環境を提供するよりはマシであろうとの思いから、フォーム入力路線を定着させました。

 結果としてみると、Desigeonは設定項目が多く煩雑ではありますが、スクリプト中心で設計させる当初のイメージに比べるとだいぶストイックさが失われています。

 現在でも、スクリプトおよびCSV機能の導入を完全に捨てたわけではなく、いずれ部分的に導入を検討しても良いと考えています。ですが、先により簡便な利用方法で提供できる機能が数多くあるので、なるべく避けるようにしています。


Desigeonメインページに戻る

熊恭太郎