locked
XNAでのプロジェクト設計について RRS feed

  • 質問

  •  

    初歩的な話で申し訳ないです。

    今までDirectXで作成されたゲームではDllで部品化して作る様なスタイルが結構あったと思うのですが、XNAにはそういったものが見当たりません。

    例えばdllで部品化して作成したゲームをXbox360でも問題なく動作できる保障といったものはあるのでしょうか?

    また、こういったDllで部品化するよりもクラスファイルをプロジェクト内に持って一つのEXEに収めた方がパフォーマンスなどの問題で望ましいのでしょうか?

    (パッケージっぽく作りたい理由で、Dllの中には各シナリオデータを個別に持ってexeの中身は基本、dllの実行と共通関数、セーブデータ読み取りのみを考えていました)

    知っておられる方がおられましたら御教授頂ければありがたいです。

    2008年2月2日 10:52

回答

  •  

     Ito 様、返信ありがとうございます。

     大変参考になりました、これからも宜しくお願い致します。

     

     

    2008年2月8日 12:14

すべての返信

  • XNAは.Netベースなので、dll、正確にはアセンブリを別にして使うことができます。プロジェクトテンプレートの中にある「Windows Game Library」や「Xbox 360 Game Library」がそれに相当します。

     

    Creators Clubサイトのサンプルの殆どは全体が把握しやすいように意図的にひとつのプロジェクトに収めるようにしていますが、

    スターターキットのShip Gameではコリジョン用のBoxColliderは別DLLになっています。

     

    パフォーマンスについてですが、結論から言うと問題はありません。ネイティブDLLを使った場合に他のDLL関数を呼び出す場合は通常の関数呼び出しより遅い仮想関数の呼び出しと同じくらいのコストが発生しますが、アセンブリファイルDLLの場合は同じAppドメイン内でJITコンパイルされるので、通常の関数呼び出しとの速度差はありません。

     

     

     

    2008年2月6日 3:37
  •  

     Ito 様、返信ありがとうございます。

     大変参考になりました、これからも宜しくお願い致します。

     

     

    2008年2月8日 12:14