私は MVC のバックグラウンド (Flex と Rails) から来ており、コードの分離、再利用性、カプセル化などのアイデアが大好きです。これにより、物事をすばやく構築し、他のプロジェクトでコンポーネントを再利用することが容易になります。ただし、複雑で状態駆動型の非同期のアニメーション化されたアプリケーションを構築しようとする場合、MVC の原則に固執することは非常に困難でした。
アプリケーション内の多くのネストされたビュー間でアニメーション化されたトランジションを作成しようとしていますが、自分自身を誤解させているかどうかを考えさせられました... MVC の原則を人工知能 (ビヘイビア ツリー、階層ステート マシン) の原則に適用できますか? 、ネストされた状態)、ゲームのような? これらの 2 つの分野はうまく連携していますか?
HTML CMS システムなどのように、物事が静的である場合、ビュー/グラフィックスがそれ以外のものを無視するのは非常に簡単です。しかし、複雑な状態駆動型の遷移を追加し始めると、すべてが他のすべてのことを知る必要があるように思われ、MVC がほとんど邪魔になります。どう思いますか?
アップデート:
例。今、私はFlexでWebサイトに取り組んでいます。アプリケーション内のネストされたすべての要素を適切にアニメーション化するには、それらを AI エージェントと見なす必要があるという結論に達しました。したがって、各「ビュー」には独自のビヘイビア ツリーがあります。つまり、コンテキストに基づいてアクション(表示および非表示) を実行します。(選択したデータは何かなど)。そのためには、ViewController タイプのものが必要です。私はそれをプレゼンターと呼んでいます。ビュー (MXML でレイアウトされたグラフィックス)、プレゼンター (アプリケーションの状態とネストされた状態に基づいてビューが実行できるアニメーションとアクションを定義する)、およびビューにデータを表示するためのプレゼンテーション モデル (発表者を通して)。また、値オブジェクト用のモデルと、URL やデータベース呼び出しなどを処理するためのコントローラーもあります...すべての通常の静的/html のような MVC のもの。
しばらくの間、私はこれらの「エージェント」をどのように構成して、周囲のコンテキスト (何が選択されているかなど) に応答できるようにするかを考えていました。他のすべてを認識する必要があるように思えました。そして、ゲームのパス/ナビゲーション テーブル/リストについて読み、すぐに、すべてのエージェントが実行できるすべての事前計算されたアクションの中央に格納されたテーブルがあると思いました。そのため、彼らが実際にコードをどのように構成しているのか疑問に思いました。
3D ビデオ ゲームのすべては大きな秘密であり、ビヘイビア ツリーの定義など、グラフィカルな UI/エディタで行われていることがわかります。そのため、エージェントが環境にどのように応答するか、またコードをモジュール化してカプセル化する方法を構造化するために、ある種の MVC を使用しているのかどうか疑問に思っています。