私はゲーム開発者ではありません (~1982 年に Atari 6502 アセンブリ言語で書いたリバーシ ゲームを数えない限り)、Assembly -> C -> Objective-C で商用アプリケーション ソフトウェアを書いた経験はたくさんあります (誰もが覚えているでしょう)。次のキューブ?) -> C++ -> Java、そして今は C# です。
ゲーム ライブラリを比較することはできませんが、C++ と C# についていくつか考えがあります。
IMO、パフォーマンスによる C# に対する C++ の議論は、一部の人が信じているほど単純ではありません。私が取り組んでいるソフトウェアはパフォーマンスが重要です。ネイティブ コード (おそらく C / C++ / アセンブリで記述) にコンパイルされた製品と競合し、競合他社が特定のアプリケーションで独自のソフトウェアよりも当社のソフトウェアを使用するほどのパフォーマンスで勝利しています。
C++ が C# よりも高速であるとすれば、それはどうしてでしょうか? 私の経験では、その答えは、どのような複雑なシステムでも、言語よりもアーキテクチャとアルゴリズムの方が重要であるという事実です (潜在的なパフォーマンスが同じ球場にあると仮定すると、C++ と C# の場合は確かにそうです)。私はフルタイムの C++ 開発者として C# を使用した年数よりも長い年月を費やしてきましたが、C++ よりも C# の方がはるかに生産的です。これは、以前よりも多くの時間を、アーキテクチャとアルゴリズムのリファクタリングと完成に費やすことができることを意味します。
ときどき、アプリケーションのコア エンジンを C++ で書き直したいという衝動に駆られることを認めざるを得ません。なぜなら、アプリケーションをより高速に実行し、メモリの使用量を削減できることがわかっているからです。これまでのところ、私は衝動に抵抗してきました。なぜなら、生産性の低下は、私の C++ コードベースが、C# にとどまっていた場合よりも遅くなるのは時間の問題だと信じているからです。
ゲーム開発が C# や Java や C++ よりも生産性の高い他の言語に移行するのは時間の問題だと思います。Java を数年間使用し、現在は C# を数年間使用しているので、C# に賭けますが、それは単なる推測です。
私が今日ゲーム開発を始めるとしたら、間違いなく Silverlight や WPF に賭けるでしょう。WPF は Direct3D 上に構築されています。Microsoft は、Silverlight 3 がハードウェア アシスト 3D レンダリングをサポートすることを既に発表しています。Silverlight は、さまざまなブラウザーと Mac で動作します。Moonlight を使用すると、Linux 上で動作します。一部の電話プラットフォーム向けに発表されています。Silverlight は本質的に WPF の軽量バージョンであるという事実のおかげで (最初は "WPF/E" として導入され、"E" は Everywhere を意味します)、多大な労力を費やすことなく両方をターゲットにすることができます。ブラウザーで Silverlight を使用するゲームの軽量バージョン (無料または広告によってサポートされる) と、WPF を使用して Windows 上で実行される本格的なゲーマー向けの本格的なバージョンを用意できます。
さらに良いことに、WPF と Silverlight 3 (またはハードウェア支援の 3D レンダリングが必要ない場合は Silverlight 2) の両方を簡単にターゲットにできる優れたゲーム ライブラリを作成する人になりましょう。
公式の発表は見たことがありませんが、次世代の XBox が Silverlight をサポートしないとは信じがたいです。もちろん、Sony や Nintendo のゲーム システムでは検索しません。