Monday, February 28, 2011

Why DirectX Installs Every Time You Install A Game

One thing that's become more visible lately is the installation of DirectX. Thanks to Steam, this has become a lot less translucent to consumers and more in your face. Below is an example of what I'm talking about. After downloading the King's Bounty demo, and starting it for the first time, I am forced to wait for DirectX to install. You can understand how this frustrates some people who want to know why DirectX is installed again and again, even though it's already been installed.

The truth is, DirectX, which powers most Windows games, gets installed almost every time you install a game, whether it's a Steam game or not. What most people don't know is that this has been true for years. While Windows comes with DirectX already installed, that doesn't mean it's updated to the version the game needs. This means developers need to update DirectX themselves if it's necessary.

That's where the DirectX installation that you see with every new Steam game comes in. This installer checks to see if the computer has the correct DirectX version and components for the game. If your DirectX needs an update, it will install the update before launching the game. If your DirectX has what the game needs, the installer will leave DirectX alone and install nothing. So really, it's more of a check and install, instead of just a straight up install.

The last thing to talk about is why you don't always see DirectX installed with retail games. While some games that seemingly don't install DirectX truly don't install DirectX, most do, but in silent mode. The DirectX installer that Microsoft releases can be told to install quietly, without bugging the user with an installation wizard. This is what Steam uses. It installs in silent mode, so you don't have to click through an install wizard. While it runs the installer, it tells you what it's doing with the dialog box pictured above.

So, next time you get impatient waiting for Steam to install DirectX, just be glad you don't need to update it manually.