C# Possibility for game development
現代において、大部分のゲーム開発者は、 C++ もしくは C (と若干のマシン語およびシェーダ)を使わなくてはいけません。これらの言語は、非常に強力であり、 C++ は、十分に生産的ですから、特に問題はありません。

しかし、私は、休日用に、他の言語を求めてきました。あらゆるゲーム開発者は、自身のゲームを開発することを望みます。しかし、それは、不可能なように思われます。ゲーム開発は、多くの時間を必要とするからです。大部分の開発者は、自身のゲーム開発より休暇をとって眠ることを望みます。

その目的のために、私は、最小のアーケードゲームを開発するのにいくらかのライト級のプログラミング言語を必要としました。それらは、休暇用の迅速なゲーム開発用の言語です。私は、 HSP 、 Python 、 Ruby 、 Java 、及び、ゲームエンジンのいくらかのスクリプトを試みました。(私は、一度だけ会社の仕事で Java を使ったことがありますが、二度とゲーム開発には使いたくありません)

そのようにして、私は、多くの言語を試みました。しかし、私は、いつも同じ結果を得ました。C++ がゲーム開発においては世界上で最も生産的な言語であるということです。そこで、私は、 boost ライブラリと OGRE をチェックし始めました。

しばらくして、私は、 Managed DirectX と C# 2.0 に出会いました。 Managed DirectX は、 DirectX のマネージドライブラリ版です。C# 2.0 は、 Generics 機能を持つ C# の拡張です。私は、これらが現在最も良い答えである、と思いました。そして今、マイクロソフトはゲーム開発のために調律された .NET 製品である XNA フレームワークと XNA スタジオを提供します。

C# は、低パフォーマンスです。C# や Java のような、 GC 機能を持つ言語は、リアルタイム処理に対する適性を持っていません。私が XNA との最初の接触を持っていたとき、私は、 XNA と C# はなんらかの方法で GC の問題を克服したのだと考えました。しかし、 XNA は、やっぱりひどいパフォーマンスです。

しかしながら、私も他の開発者も、それに関して同じ結論にたどり着いています。その結論は、我々が GPU 至上主義者であるべきであることです。GPU 処理では、 C++ と C# に、パフォーマンスの違いはありません。GPU が物理学等々を計算し得るというアイデアは、いくらかの本にあります。しかし、それは、生産的な方法ではないかもしれませんが...
|