Steamサポート
すべてのゲームでDirectXがインストールされる
すべてのゲームでDirectXがインストールされるのはなぜですか?

すべてのゲームでDirectXがインストールされるのはなぜですか?

MicrosoftはD3DXというD3D用のヘルパーライブラリを用意しています。 Windows\System32フォルダー内には、d3dx9_43.dllのようなバイナリファイルがあります。 D3D9だけでも、40を超えるバージョンのD3DXライブラリがあり、D3D10および11でもさらに多くのバージョンがあります。 D3DXヘルパーライブラリを利用するゲームはすべて、特定のバージョンにリンクされています。 そのため、コンパイルされたのと同じバージョンのバイナリが存在することを確認するために、ゲームは適切なD3Dインストーラーバージョンを実行する必要があります。

より新しいバージョンのバイナリがすでにインストールされていたとしても、そのバージョンを利用することはできません。また、新しいバージョンのインストーラーを実行したために、DirectXが最新であったとしても、以前のバージョンがすべてインストールされているとは限りません。 さらに、仮にx86用バージョンがインストールされていた場合でも、x64用バージョンがインストールされているとは限りません。つまり、64ビットと32ビットのゲームで、同じバージョンのインストーラーを使用する必要があっても、実行時にはそれぞれのプラットフォーム向けにインストールが行われます。

Microsoftのライセンスではそうしたファイルを直接頒布することを禁じています。頒布する唯一の方法は、インストーラーの実行です。そしてこれは、正しいバージョンがインストールされていることを確認するためにMicrosoftがサポートしている唯一の方法でもあります。 正しいバージョンを手作業で確認しようとすると、非常に複雑になります。なぜなら、全部揃っている必要があるファイルの数が膨大である上、個々のシステムの設定でDLLを検索するパスが異なることが状況をさらに複雑化させるからです。 さらに、依存関係や必要なチェックがD3DXランタイムのバージョンアップごとに変化する恐れもあります。 正しくチェックし、破損したインストールを修復するためのコードはすべてインストーラーの中に存在します。インストーラーを実行することにより、ゲームの実行時に正しいバイナリが存在することが保証され、Windowsのインストール時に正しいバージョンがなかったり、過去に何らかの理由でファイルが破損していたりした場合に、不明なエラーによってゲームの起動に失敗するといった問題が多発するのを防ぎます。


ValveのSourceエンジンのゲームがDirectXインストーラーを実行しないのはなぜですか?

D3DXヘルパーを使用しないゲーム(Sourceエンジンのゲームなど)は、インストールされているd3d9/10/11のメジャーバージョンにのみに依存しているため、初回起動時にインストーラーを実行する必要はありません。 しかし、D3DXを使用するゲームは、D3DXを実行する必要があります。これは、Microsoftがファイルのバージョン情報の頒布と確認を許可している唯一の方法だからです。


Steamでヘルプが必要ですか?
Steamヘルプウィザードを使ってトピックを絞り込み、必要なヘルプを見つけましょう。
コミュニティヘルプ
Steam掲示板に質問を投稿するか、関連する回答を検索してください。