PC開発の観点から(XboxとZuneを除く)、
XNAとC#DirectXの違いは何ですか? C#DirectXには、XNA(速度、ロイヤリティなど)に比べて大きな利点がありますか?
この2つは、管理されていないC++ DirectXの速度と比較してどうですか?
ゲームプログラミングに関して、業界はどこに向かっていますか?
実際にアンマネージコードを書くのが得意であれば、DirectXの上に高速なグラフィックエンジンを書くことができるでしょう。ただし、愛好家にとって、XNAには2Dおよび3Dゲーム開発の両方で十分なのパフォーマンスがあります。
これは優れたチャンネル9ビデオです Xbox 360でXNAが構築したレーシングゲームを実行する場所です。フルHDでも良好に動作します。 XBox Live Arcadeゲームのいくつかは、XNAコミュニティによって開発されました。
私が思い出すように、C#DirectXに関しては、呼び出されたままのManaged DirectXは、XNAが基本的に置き換えるため、公式にはサポートされなくなりました。私は間違っている可能性があります。それを見てから非常に長い時間がかかりました。
XNAとManaged DirectXのパフォーマンスの違いは、本質的には同じものであるため、ごくわずかです。 XNAには、記述する必要のある定型コードの量を減らすための便利なビットがいくつかあります。
Xna Game Studioのものはゲーム中心の問題の解決に焦点を当てていますが、Xna game studioのもののパフォーマンスはまともなメトリックスを見ることなくマネージドダイレクトxよりも悪いと言うポスターには疑問があります。
MS以外の独立したグループがSlimDxと呼ばれるプロジェクトを作成しました- http://slimdx.mdxinfo.com/ ゲームではなくアプリケーションを作成している場合質問)その後、それは検討する価値があるかもしれません。
業界では依然としてゲームのガットにC++を多用していますが、XBox LiveのコミュニティゲームセクションでXNA Game Studioを使用して完全にマネージコードで記述され、XBox Arcade自体でリリースされたゲームのリリースが成功しています。コミュニティのゲームでどれだけの人が作ったかについて、すぐに興味深い統計がいくつか出てくるはずです。
多くの定価ゲームではC++を使用していますが、実際のゲームロジックにはLuaのようなものがあります...そして、Luaはその速さで知られていません!
C#には優れた学習曲線があり、業界のツールプログラマーによって使用されています-これは、あなたのベルトの下にある便利な言語です。 C++は優れた言語ですが、機能的なコードを作成するにはより多くの規律が必要です。 C#は動的に変更でき、コンパイル時ではなく実行時にループを展開するなどの処理を実行できます-優れたC#は、読みやすいC++と同等またはそれ以上に高速になりますが、使用方法を知っておく必要があります。非常にタイトなループでは、特定の状況でC++とAssemblerが勝つ場合があります。多くの場合、C++を使用するゲームでは、独自のメモリ戦略を使用してカスタムアロケータが作成され、通常のアロケータに起因するフラグメンテーションが試行されます...そのようなことは、。ガベージコレクターの長所(独自のC++実装で行う必要のあるものと同じ)であれば、.Netでのこのような低レベルの実装の詳細について心配する必要はありません。
ゲーム開発に入り、言語を決定することを検討している場合(行間を読むことは、その質問の行で行く場所のようです)、使用するのに最適な言語は、完成した言語ですC++、Objective C、C#、Flash、Silverlightなど、プロジェクトの最後に表示するプロジェクト。言語が変化し、好意的に出入りするため、採用担当者はしばしば、異なる言語の実績のある習熟を探します。彼らが現在使用しているもの-そして完成した作品のポートフォリオはそれを行うでしょう。