最初の質問に答えるには: いいえ。背景情報については、このスレッドを参照してください。
MVC は、ビジネス ロジック (モデル) から切り離したいユーザー入力駆動型プログラムに適した設計です。2 人が直接会話するのを避けるために、コントローラーを 2 人の仲介者として導入します。
ただし、ゲームでは事情が異なります。ほとんどの場合、ゲームはユーザーの入力を待っているわけではありません。また、モデルは多くの場合軽量 (いくつかの変数) ですが、多くの場合、システム全体に関する知識が必要です (他のオブジェクトとの衝突、AI による他のオブジェクトの動作のチェック)。
ゲームは、ユーザーの入力に関係なく、フレームごとにゲームの状態 (モデル) を前進させ続け、フレームごとにビューをレンダリングし続けます。ユーザー入力は、特にアクション ゲームでは、イベントの継続的なストリームに似ています。そのため、ほとんどのゲーム開発者は、少なくとも 2 つのレイヤーの間に明確な境界を定義しようとしますが、通常、モデルとビューは密接に結合されていることがよくあります。(厳密な) MVC はかなりのオーバーヘッドを追加する可能性があるため、これはパフォーマンスへの妥協でもあります。
MVC の代わりに、ゲームでより一般的に使用されるデザイン パターンは、コンポーネント ベースの開発です。多くの場合、ゲーム オブジェクトは大部分が似ていますが、動作、能力、武器、ヒットポイント、免疫、速度などに微妙な違いがある場合があります。ハードコーディングする代わりに、この種の動作はコンポーネントとしてゲーム オブジェクトに追加され、オブジェクト自体に作用します。これは cocos2d のアクションにいくらか似ていますが、通常、コンポーネントは常にアクティブであり、無効化/一時停止することができ、アニメーションだけでなくゲーム ロジックにも使用されるという点で異なります (つまり、シールド コンポーネントを介して受けるダメージを減らします)。