51

PC開発に関しては(XboxとZuneを除く)、

XNA と C# DirectX の違いは何ですか? C# DirectX は XNA よりも大きな利点がありますか (速度、ロイヤリティなどの点で)?

この 2 つは、速度が管理されていない C++ DirectX と比べてどうですか?

ゲームプログラミングに関して、業界はどこに移行していますか?

4

4 に答える 4

54

アンマネージ コードを書くのが得意なら、おそらく DirectX の上にもっと高速なグラフィック エンジンを書くことができるでしょう。ただし、愛好家にとっては、XNA は2D と 3D の両方のゲーム開発で十分なパフォーマンスを発揮します。

これは、Xbox 360 で XNA ビルドのレーシング ゲームを実行するChannel 9 の優れたビデオです。フル HD でも問題なく動作します。XBox Live Arcade ゲームのいくつかは、XNA コミュニティによって開発されています。

C# DirectX に関する限り、私が思い出したように、管理された DirectX は、XNA が基本的にそれを置き換えるため、正式にサポートされなくなりました。私が間違っている可能性があります。

XNA と Managed DirectX のパフォーマンスの違いは、本質的には同じであるため、ごくわずかです。XNA には、記述する必要があるボイラープレート コードの量を減らすための便利なビットがいくつかあります。

于 2009-02-05T07:12:54.323 に答える
31

Xna Game Studioのものは、ゲーム中心の問題の解決に焦点を合わせていますが、Xna Game Studioのもののパフォーマンスは、適切なメトリックが表示されない管理されたDirectXよりも悪いと言っているポスターには疑問があります。

MSの外部の独立したグループが、SlimDxと呼ばれるプロジェクトを作成しました-http ://slimdx.mdxinfo.com/ ゲームではなくアプリケーションを作成している場合(他の質問ではないと思います)、それは価値があるかもしれません検討中。

業界は依然としてゲームの根性にC++を多用していますが、XBoxライブのコミュニティゲームセクションでXNA Game Studioを使用して完全に管理されたコードで記述され、XBoxアーケード自体でリリースされたゲームのリリースは成功しています。コミュニティゲームでどれだけの人が作ったかについて、すぐにいくつかの興味深い統計が来るはずです。

多くの定価ゲームはC++を使用するものもありますが、実際のゲームロジックにはLuaのようなものがあります...そしてLuaは驚異的なスピードで知られていません!

C#は優れた学習曲線を持っており、業界のツールプログラマーによって使用されています。これは、あなたのベルトの下にあると便利な言語です。C ++は優れた言語ですが、関数型コードを作成するにはより多くの規律が必要です。そして、新しい人に自分自身をぶら下げるためのより多くのロープを与えます。C#は動的に変更され、コンパイル時ではなく実行時にループを展開するなどの処理を実行できます。優れたC#は、優れた読み取り可能なC ++と同じか、それよりも高速ですが、使用方法を知っている必要があります。非常にタイトなループでは、特定の状況でC++とアセンブラーが勝つ可能性があります。多くの場合、C ++を使用するゲームでは、カスタムアロケータは、通常のアロケータによって引き起こされる断片化を支援するために独自のメモリ戦略で作成されます...そのようなことはのCLRによって処理されます。

ゲーム開発に取り掛かり、言語を決定することを検討している場合(つまり、行間を読むことは、その質問の行で行っている場所のようです)、使用するのに最適な言語は、終了した言語です。 C ++、Objective C、C#、Flash、Silverlightなど、最後に表示するプロジェクト。言語が変化し、好意的になり、好まれなくなると、採用担当者はさまざまな言語の実証済みの習得を探すことがよくあります。彼らが現在使用しているもの-そして完成した仕事のポートフォリオはそれをするでしょう。

于 2009-02-05T08:55:32.947 に答える
17
  1. XNAとDirectXは、同じ問題を解決するための非常に異なる実装です。つまり、高性能のグラフィックを多用するプログラミングです。どちらも2D、3D、オーディオ、ネットワークコンポーネントをサポートしています。DirectXは、XNAがマネージコードである場合にのみアンマネージされます。
  2. DirectX呼び出しのラッパーであるDirectXのマネージド実装がありますが、現在のリリース以降は更新されていないため、気にしないでください。
  3. XNAは、管理されていないDirectXのラッパーではありません。DirectXの一部を使用しますが、ラッパーではありません。
  4. 業界は依然としてアンマネージドDirectXに非常に固執しているようです-すべての主要なエンジン会社がまだC++、ASMでコーディングし、DirectXをサポートしているためです(Linux / MacバージョンのOpenGLと単独でまたは組み合わせて)。MicrosoftがDirectXマネージラッパーを「削除」し、XNAを使用するように人々に指示しているという事実は、マネージ開発者を後押ししていることを示しています。
于 2009-02-05T08:29:40.097 に答える
5

現時点では、Microsoft は Metro スタイル アプリで XNA をサポートする予定はないようです。XNA および現在非推奨の「管理された DirectX」に代わるものはSharpDxです。これは、Metro スタイル アプリの作成に使用でき、XNA、SlimDX、および Windows API コード パックに対して有利にベンチマークされています。

于 2012-03-06T16:48:19.697 に答える