少しずつ進めています。
某冥界さんを仮想敵にして動作の洗練をできないかとアレコレやっておりました。
結局負けっぱなしだったわけですが、まぁ100%勝てないこともないので無駄ではなかった。と思いたいです。
相変わらずビームショットローケンにも勝てないし、ショット機は本当に怖いです。
さて、今日はルーチン制御について。
特定条件下で特殊6f+急速8fというキャンセル機動を用いているのですが、これをシリアルに並べると14fに1回しかミサイル検知を行わないというかなり危険な状態になります。検知箇所を増やせばいいのですが、ミサイル以外にも機雷、被弾検知、オプション制御といったものはできるだけ頻繁にチェックしておきたいものです。
これらの判断チップをできるだけ使いまわすために、カウンタによる状態制御を行って、キャンセル機動1セットをメインルート4周で構成する設計にしました。これなら3~5fに1回はミサイル検知ができます。
しかし、どのルートで何を判断すればいいのか迷うところでもあります。
条件を整理するために、最初は「ロジカルシンキング」が役に立つと踏んでいたのですが、むしろこれは「オートマトン」のほうがしっくりくることに気づいて「オートマトン」を勉強しなおしてきました。
オートマトンは計算機科学における状態機械のことで、「状態」および「状態遷移」から「出力」を決定するという論理構造を持ちます。
この3つのフェイズに分けることで、どこで何の条件分岐をするのかを明確化してPGに突っ込みました。
かなり応用範囲の広い概念で、熱量による射撃制御や壁スイッチジャンプもこれを使って説明することが可能です。
熱量による射撃制御は「状態」「状態遷移」「出力」、
壁スイッチジャンプは「状態」「出力」「状態遷移」という順番になっています。
おそらくMealy型やMoore型といった状態遷移の種類に該当するもので、オートマトン的には同一の出力を得るはずなのに、状態が時間によっても変わりうるカルネージハートではその動作に差異が出てくるというのが面白いところです。
というわけで基本フレームはできあがって、今はミサイル回避ルーチンに着手しています。チップ数削減が目的なのですが、性能が落ちることでどの程度の影響が出るのか不明な部分が多く、バランス調整のために幾度と無く作り直しをしています。
PR