上は開発中の画面のスナップショット。
ここでキーとなるのは「拡張可能」ということ。
実は実行ファイル本体とシナリオを持つDLLは完全に分離されています。
ここで「ヒデキ」はユーザー入力した名前ですが、フレームワーク側は何も知りません。全てモジュール(DLL)側で処理しています。「おみせ」も同様ですが、これは拡張された場所オブジェクトの名前。もちろん、モジュール側に入っていますが、モジュールを追加すれば追加できます。
買い物の対象となる物も全てモジュール側で用意した物です。タイムマシンでも光線銃でもアイテムを用意できます。また、既存のショップに対して別モジュールで売り物を追加することができます。
お金(所持金)そのものは買い物支援機能の関係上フレームワーク側で持っているパラメータですが、メインウィンドウ上の10,000円の表示は全てフレームワークが知らない行為です。モジュール(DLL)側が組み立てた文字列を見せているだけです。
背景に少し見えるママとの会話も同様です。場所と有効を判定する手続きを含むオブジェクトを記述すれば自動的に「話す」メニューが追加されてモジュールがコールバックされます。そのままPersonオブジェクトのSayメソッドに文字列を渡せば表示されます。
ちなみに、文字色と背景色もモジュールでカスタマイズできます。
というわけで。
- 自分のモジュールで全て用意すれば新ゲームになる
- 場所の提供者と人の提供者が違っていても構わない (同じ場所を使用する複数のゲームがあってよい)
- 他人のモジュールに追加するモジュールを書けば他人のゲームを拡張できる
感想 §
だがしかし、もうちょっといろいろ手を入れないとまだ公開できないのだ。
ドキュメントも書いていないし。