この手のプログラムの仕組みを真剣に考えたことがある人は、恐らくこの部分ハードルの高さに開発を躊躇する、あるいは「どの様に回避するかを真剣に考える」事でしょう。
かく言う当方もその一人です。
この手のプログラムとは当方の場合コッペリウスであり、プレーヤーの操作(外部からの刺激)に応じて反応を返し、そして状態が変化してゆく機械の事を指します。
この様な機械は何か正式な名称が有るのかもしれませんが当方は知らないのでここでは、これを仮に状態遷移機械と呼ぶことにします。
人の場合外部からの刺激に対してなにがしかの反応を返しますが、その反応は(生成方法はともかく)自動的に生成されます。
しかし、状態遷移機械の場合は自動的には生成されません。故に製作者あるいは開発者が、全ての刺激に対する反応をあらかじめ用意しておく必要があります。
そしてクリックアドベンチャの場合、反応とは「絵や動画」であり「テキストや音声」に他なりません。
●初期状態 | |
お尻をつつく | 体をよじって嫌がる |
胸をもむ | 激しく拒否する |
クリトリスをつまむ | 泣きだす |
上記の例ですと3つの刺激に対して3つの反応を返します。
つまり、製作者は「3つの状態を表現するために3つの反応を用意しなければならない」事になります。
では、これが初期状態だとして何度か刺激を加える事により状態が変化したとします。
ここでは仮に「刺激に慣れ受け入れた」としましょう。
●初期状態 | ●刺激に慣れ受け入れた | ||
お尻をつつく | 体をよじって嫌がる | お尻をつつく | 息が荒くなる |
胸をもむ | 激しく拒否する | 胸をもむ | 拒否する |
クリトリスをつまむ | 泣きだす | クリトリスをつまむ | 感じるのを怖がる |
この場合で注目すべきは「状態が1増えただけで用意しなければならない反応は3増える」と言う事です。
つまり「状態が増えると用意しなければならない反応は2次関数的に増えてゆく」そして、反応の数は作業量に直結すると言う事でです。
さらに、「いつも同じ反応だとつまらないので、さらにランダム性を持たせたい」とかなってくるとどうなるか・・・、言わずもがなだと思います。
これをどのように回避するか、あるいは真正直に正面突破?
プログラムと言うか制作側の問題かもしれません