内部状態を持つ系

Propellaさんの9/12の内容についてコメントを。ずっと書きたかったのですが、時間がとれなくて。

もう一つは、長年の疑問である。ラチェット(一方向回転)の有る機械と無い機械の本質的な差が何かという疑問に答えてくれそうな事。めちゃくちゃな理屈だが、『面白い機械』にはラチェットが必要で、逆に『面白く無い機械』はラチェットが無くて、しかもそれは状態を群で記述出来るというのが僕の仮説。群によって面白く無さが一体何なのか説明できる気がする。

ベクタもマトリックスも嫌というほど使ってるのに(リアルタイム3DCGの基礎理論だし)、群論自体はあまり得意ではないのですが(^^;)、ちょっと、こっち側(ゲーム屋)からの感想を。


ゲームとして物事を見る際、真っ先に気にしなければならないことがあります。
それは、「インタラクティブ性」。ゲーム単体を系として見るのではなく、ゲームと、それを遊んでいる人( Florian 風の言い方をすると「ディスプレイのこっち側」)全部を含めた「系」と見なし、系の中の各要素同士が双方向性を持つよう心掛ける必要があります。
このとき、ゲームの側は

  1. 入力
  2. 処理
  3. 出力

を、なんらかのスパン(まぁ、普通はリアルタイムに)でおこない、遊んでいる人の側は

  1. 認識
  2. 判断
  3. 出力

を、ゲームの側のスパンに合わせて行っていく形になります。
とはいえ、例えばリアルタイムゲームで考えるとある瞬間tでの遊んでいる人の行動は、t-1のゲーム側の出力にのみ依存する訳ではなく、t-1,t-2,t-3...と有限の過去にさかのぼったものの蓄積として発現する形にならざるを得ません。これは、判断の論拠として蓄積した経験を使用するという事情と、tのスパン(普通は1/60secとして考える)はあまりに早すぎるため、tの時点での認識は、実際に出力として発現するには遅延が発生してしまうという事情が存在します。
ま、どちらにしても、遊んでいる側の人間はtに独立した関数としてはふるまうことはできず、内部状態を持つ系と見なさなければならないってことですね。
これに対して、ゲームの側は別に内部状態を持つ系としてふるまう必要は必ずしもありません。実際構築するに当たっては、tに独立した関数として構築した方がずっと作り易いのですが、ゲーム本来の目的である「人を楽しませる」ための基礎理論としての「動因低減説」や「フロー理論」、「選択強化」などの心理的なくすぐりをいれようとすると、結果としてゲームの側もtの出力を実現するためにt-1,t-2,t-3...と有限の過去にさかのぼった根拠を求める方向に走らざるを得ません。
これも、「内部状態を持つ系」に、結果的になりますね。


さて。
「内部状態を持つ系」同士を接続すると、系として結構不安定な状態になりがちです。それは、発散したり、一瞬で収束したり、カオティックなふるまいを見せたり。
また、人間はかなり良質な乱数発生器として見なすことができるので、ますますカオティックなふるまいに近くなります。
全く完全にカオティックなふるまいがそのままで楽しいか、と言われると、正直微妙ですが(^^;)、カオティックなふるまい自体を観察すること自体には、何か一定の「面白い要素」があるんじゃないかなーって気はしている今日このごろです。
いや、あんまりカオティックの側にこだわると、先に挙げた「動因低減説」や「フロー理論」、「選択強化」なんかのくすぐりが見えなくなって、何を楽しんでいいのか分からないゲームになっちゃうんですけど(^^;)。