Arqade is a question and answer site for passionate videogamers on all platforms. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

As a follow-up to my question regarding the first-time installation, I noticed Steam stores the DirectX and vcredist etc files individually in each games directory. That means, those sometimes up to 100 MB are downloaded and stored over and over again wasting both space and downloading time.

Can Steam be prevented from re-downloading and duplicating game requirements like DirectX over and over again?

share|improve this question
up vote 19 down vote accepted

The problem has been discussed on the Steam Forums. The problem is that each game has to have a binary-identical version of the vc++ redistributables. Since games link against different versions of these libraries, steam always installs them the first time as a safeguard.

Credit to mordi2k for finding the post
Here's a link to the steam forum post about it. The text is quoted below.

FYI, running this is not a matter of making sure your overall DirectX install being up-to-date. Microsoft has a helper library with D3D called D3DX. You'll find binaries for this like d3dx9_43.dll in your Windows\system32 folder. There are over 40 different versions of the D3DX library for D3D9 alone, and many more for D3D10 and 11 as well. Each game that uses the D3DX helper library is linked to a specific version. As such the game must run the correct D3D installer version that it was specifically compiled with to ensure the binaries exist. Even if a later version of the binary is already installed, that version cannot be used, and even if your DirectX install is up-to-date because you've run a more recent version of the installer that is not guaranteed to have installed all previous versions. Even worse, if a version is installed for x86 it doesn't guarantee the same version is installed for x64, so 64 bit and 32 bit games may need to run the same exact installer version but targeting different platforms when run. Furthermore, Microsoft's licensing terms prevent anyone from distributing the files directly, the only way to distribute them is to run the installer, that's also the only supported method from Microsoft to check that the correct version installed. Trying to manually check for the correct versions is extremely complicated because there are numerous files that must all be present and individual system configuration options like dll search paths complicate the situation. In addition, the dependencies and required checks may change in each new version of the D3DX runtime. The code to check correctly and repair broken installs all exists in the installer and running it is a guarantee that the correct binaries will exist when you run the game and prevents lots of bad cases where a game would fail to launch with an obscure error if a windows install was either missing the correct version or somehow corrupted in the past.

Games which don't use the D3DX helpers (such as Source engine games) don't require running the annoying installer on first launch as they only depend on major d3d9/10/11 versions being installed. However, games that do use D3DX must run it as it's the only way Microsoft has allowed for distributing and checking the version info on the files.

So that's why we do it for lots of game installs. We can't stop, it's required due to a bad versioning/packaging scheme as well as bad redistribution licensing terms on the D3DX libraries.

The one thing that could be made better on our side is that Steam could be smart enough to know if an exactly matching version of the dx installer is already downloaded and share that content so you don't download it with each game. Since the installer is relatively small compared to most game installs that wouldn't be a huge win though and requires a good deal of new complexity for partners in how they package up their games and manage installation dependencies. You'd also still end up with lots of different versions of the installer, since as discussed above they are often targeting different D3DX versions and as such are all required. As such any improvement to avoid duplicates isn't an immediate priority, but we may be able to improve it slightly in the future.

share|improve this answer
Here it is:… – mordi2k Sep 14 '11 at 18:31
@mordi That's exactly what I was looking for. Thanks! – Dave McClelland Sep 14 '11 at 18:32
I got rid of it partially by running a duplicate-hardlinker tool on it. Didn't prevent Steam from downloading first, but at least it doesn't waste space unnecessarily... – Zommuter Oct 28 '12 at 11:29
Has this been fixed yet? – Dronz Feb 20 '15 at 18:51
@Dronz Not to my knowledge, though I'm not sure. – Dave McClelland Feb 20 '15 at 20:57

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.