こんにちは、開発ブログです。
今回の技術共有は、ゲームにおけるMVCについて紹介します。
MVCとは、ユーザー・インターフェースを持つアプリケーションの
デザインパターンです。
Model、View、Controllerの頭文字を取っており、それぞれ
次のような役割があります。
Model・・・データを格納して、アプリケーションの状態を保持するもの
View・・・Modelの内容を視覚的に表示するもの
Controller・・・Modelの操作を行い、Viewに変化を与えるもの
それぞれの関係を図にすると、以下のようになります。
MVCのそれぞれの関係を簡単に説明すると、Controllerはユーザーの入力からModelを
加工し、その結果をViewが表示します。
MVCを適用することにより、表示用の処理やデータの加工処理が明確に区別されます。
そのため、作業の切り分けが容易にでき、複数人で開発しやすくなります。
また、それぞれが独立しているので修正や再利用が行いやすいという利点もあります。
MVCをゲームに適用させると、以下の様に分けられます。
Model・・・3Dデータ、マップ情報、シナリオ
View・・・OpenGL、DirectX
Controller・・・AI、イベント処理、物理演算
ゲーム開発にMVCを適用させる利点としては、例えば「障害物をかわして
目標地点に到達する」というAI(Controller)を作成すれば、異なる
キャラクター(Model)や異なる表示方法(View)であっても、同じAIを
利用できることです。
MVCを適用することで、開発期間の短縮や修正しやすさの向上が
見込めるため、1度MVCについて調べてみてはいかがでしょうか。
以上、技術共有でした。