方針を決めて作り始めると早い気はするのですが、どんな命令を用意すべきか考えるだけで相当な時間を食われるので、決めるまでが長そうです。
とりあえず、分類を大きく二つに分けて、実装段階も分けようと思っています。
- OSリソースが関わらない命令(条件分岐、キャラクタデータ更新など)
- OSリソースが関わる命令(画像表示、メニュー表示,BGMなど)
要は、画面とファイルが関係しないところから、命令を揃えていこうかなと。
テキストメッセージについては画面が絡みますが、これだけはないと何もできないに等しいので、さしあたり現在のメッセージと同じ形で、単行および長文の二通りは表示できるようにしたいと思います。課題は書式かなあ。メッセージ中に変数を埋め込めないと。
イベントプログラミングはフォーム入力で
イベントプログラミングはフォーム入力でやる形を考えています。外部スクリプトと内部スクリプトも検討しましたが、シナリオ作者のデバッグの関係で、利用者的にもツール的にも荷が重いと感じています。
このあたりのことはアンケート結果も参考にさせていただきました。
ループと配列を避ける構造
ループと配列を意識しなくて済む仕様を目指しています。ということは、これらを使いたくても使えないことになります。オブジェクト集団に対する処理は、選択と更新という二つの命令群でやるつもりです。例に挙げると、次のような感じです。
- 選択命令:荷物からすべての“盾”アイテムを選ぶ
- 更新命令:選んだものを荷物から消す
選択命令によって選び、更新命令によって反映させるという形をとります。
ループと配列がありませんので、あまり複雑なことはできません。例えばパーティ(キャラクタ配列)や荷物(アイテム配列)に対する反復処理ができないということです。「ア」という文字を名前に含むアイテムがいくつあるか、カウントできないわけです。
選択命令に用意されている方法以外の形では選べません。
迷路の自動生成をやりたかったり
個人的には迷路の自動生成をやりたいのですが、これをやるには外部スクリプトの力がいります。そこに辿り着く頃には老人になっているかも。一人で作品を作るだけなら簡単なんですが、ここまで複雑化したDesigeonで外部IFを定義するのは作業量の都合で現実的ではなさそうです。やるなら新システムですね。
最後に、構造体を公開してDLLコールする手は残されています。これはC/C++を書くのと変わりませんが、実は開発環境を持っている人にとって一番安全・確実であったりします。IDE側のデバッガを使えるのが大きい。
迷路の自動生成なんて欲しがるのは私だけかもしれないし、自分専用でやってみようかとか。
独自のグラフィクス・システムを実現できる可能性が高いのもDLLですね。戦闘や迷路のレンダリング担当がDesigeonである必要はないわけで。まぁ、.NET Frameworkの時代に今さらという気もしますが。現実的な実現手段ではあると思います。
迷路の自動生成は実は私が最初に作ろうとしていたゲームに一番必要な機能だったりします。
返信削除コメントどうもです!
返信削除自動生成で何かをやろうとしたら、シナリオ作者の側にプログラミング技術が欠かせませんぜ!
Desigeonみたいなツールが、いくつかの生成型を提示することはできますが、誰が作っても同じような迷路しか作れないことになります。
固定型迷路と、自由形迷路の中間層を探ることはできるかもしれません。その形は、論理的には固定型と変わりありません。やはり、誰が作っても似たような迷路が造られるような、活用範囲の狭い機能になると思います。
Desigeonに自動生成を搭載するなら、迷路のデータ構造を外部に公開する形になります。ゲームを開始したら、皆さんが定義するプログラムを呼び出して、自動生成をしてもらうという形になると思います。
それ以外の方法があるならとっくにやってます(笑