ゲーム開発の世界は面白いです。一方で、彼らはしばしば新しいアイデアをすぐに受け入れることができ、他方で、彼らはまだ石器時代にいます。
真実は、C / C ++以外の.NET / Java /何かに切り替えることにそれほどインセンティブがあることはめったにありません。
ほとんどのゲーム会社は、ゲームエンジンの一部を他の会社からライセンス供与しています。これらの部分はC ++で記述されており、ソースにアクセスして移植できる場合もありますが、多くの労力がかかります(もちろん、ライセンスで許可する必要があります)。
また、C ++には多くのレガシーコードがすでに存在しています。以前のプロジェクトのコードを再利用できる場合(たとえば、続編を作成している場合)、新しい言語で書き直すのではなく、同じ言語を使用するほうが有利です(再導入する可能性が高いため大量のバグを修正するために時間を費やす必要があります。
最後に、ゲームが100%C ++で記述されることはめったにありません。カスタムであっても、既存の言語を統合するだけでも、多くはスクリプト言語を使用して行われます(Luaは最近人気のある言語の1つです)。
ガベージコレクションに関する限り、これは少し問題になる可能性があります。問題はそれが存在するほど多くはありません。それはそれがどのように機能するかです-ガベージコレクターは非ブロッキングでなければなりません(または少なくとも非常に短時間しかブロックされないことが保証されています)。割り当てられたすべてのメモリをスキャンして、解放できるものを確認します。Javaがメモリ不足に近づくと、GCでかなり窒息する傾向があることを知っています(一部のゲームでは、そうなるでしょう)。
また、実行できることも少し制限されます。ランタイムのオーバーヘッドのため、ハードウェアを完全に活用することはできません。CrysisがJavaで記述されていることを想像してください...それが唯一の目に見える違いであるとしても、それは同じではないでしょう(それを実行するにはCore i7が必要だとかなり確信しています)。
これは、これらの言語がゲーム開発の場を持たないという意味ではありません。いいえ、私は単にツールプログラミングに言及しているのではありません。ほとんどのゲームでは、3Dゲームを含めて、C ++から得るパフォーマンスの追加ビットは必要ありません。すべてを最初から作成する場合、XNAのようなものを使用することは完全に理にかなっています。実際、それは良いチャンスです。
商用ゲームに関する限り、RuneScapeはカウントされますか?それは、世の中で最も成功したJavaゲームかもしれません。