DirectX とは?


DirectX の役割

DirectX は、Microsoft のゲーム開発戦略の一つと考えることができます
一般に、ゲームといえば家庭用ゲーム機を思い浮かべます
任天堂のファミリー・コンピュータや、ソニーの PlayStation などがこれにあたります

これら家庭用ゲーム機も、OS を持つひとつのコンピュータです
だとすれば、Windows のような誰もが持つ OS でゲームが作られても問題はないでしょう
ユーザーが多ければ、ゲーム開発企業はその OS 専用のゲームを開発してくれます

しかし、Windows はゲーム機とは異なり、マルチタスク、マルチスレッドです
ゲーム機では、ひとつのプログラムがメモリや CPU を独占できますが
Windows の場合は他のプログラムが動作している可能性を考慮しなければいけません
つまり、マルチタスクにおける「公共の福祉」を守らなければならないのです

パフォーマンスが重要で、他のプログラムとの共存にそれほど関心のない
ゲームという特殊なアプリケーションにおいて、これは重荷になります
通常、ゲームはクリップボードを使う必要はないし、データの共有も必要ありません

そこで、私たちはゲームの開発において DirectX を用いる事ができます
DirectX は開発環境や開発言語ではありません
これは、COM(Component Object Model) オブジェクトのひとつです
COM について、この場で詳しく解説するようなことはしません
DirectX を使ったアプリケーション開発に、COM の知識はそれほど必要はありません

COM オブジェクトは、インターフェイスを介して様々な開発環境から使うことができます
そのため、DirectX は C/C++ からでも、Microsoft Visual Basic からでも使えます
DirectX は常にバージョンアップし、改良が加えられているため
できるだけ最新のバージョンをチェックし、常に勉強することを心がける必要があります

DirectX を使えば、フルスクリーンモードでディスプレイを牛耳ることができます
描画処理は他のプログラムに邪魔されないため、高速なパフォーマンスが期待できます
もちろん、ウィンドウモードで DirectX を使うことも可能です
さらに、高度な 3D API を用いて、3次元グラフィックスを簡単に実現することも可能なのです
ゲーム開発者にとって、これらの機能を使わないのは勿体無い話です

注意として記述しておきますが、必ずしも DirectX はゲームに必須というわけではありません
特別、使う理由がないのであれば Win32 API だけでもゲームは作れます
そのほうが、ユーザーは DirectX をインストールする手間が省けるという利点もあります
描画処理が遅いのは、コンピュータではなくあなたのプログラムが原因かもしれません
3次元プログラムは、あなたが独自のジオメトリエンジンを設計すれば実現できます

DirectX はハードウェアの機能を最大限に引き出す手段でしかないということです
必ずしもゲームに使わなければならないというわけでもありません
必要に応じて、ビジネスアプリケーションに使ってもよいでしょう
型にはまらない、それがプログラミングにおいて最も重要なことだと思います

DirectX は、描画やサウンド、マルチメディアなどに応じて各要素に分かれています

名前 役割
DirectX Graphics グラフィックスプログラミングのための API を提供する
DirectX 7 以前の DirectDraw と Direct3D を統合している
DirectX Audio サウンドプログラミングのための API を提供する
DirectX7 以前の DirectSound と DirectMusic を統合している
DirectInput 入力装置に関する API を提供する
DirectPlay マルチプレイヤーネットワークプログラミングをサポートする
DirectShow 高品質なマルチメディア再生をサポートする
DirectSetup DirectX コンポーネントのワン・コールインストールを提供する



戻る