Crashed Jan 13, 2016 @ 3:53pm
Suggestion: Make common runtime installers one-time downloads, not part of the game
There is so much of a problem of runtime installer "trash" in Steam games that there are at least two Greenlight items for so-called "steam cleaner" apps.
Instead of allowing such apps that will just cause Steam to report corruption if the user needs to verify their game cache, how about a system where runtimes are their own distinct "apps" that can be managed within the Steam application, and de-duplicate common runtime installers?
Another advantage of such a system is that Steam could check if said runtimes are installed instead of trying to re-install them for every game that needs them,
< >
Showing 1-9 of 9 comments
wuddih Jan 13, 2016 @ 3:56pm 
the thing is, they can be modified and unique to the game.
Crashed Jan 13, 2016 @ 3:59pm 
Originally posted by wuddih:
the thing is, they can be modified and unique to the game.
I'm sure there are only a handful of unique vcredist_x86 and vcredist_x64 files, and most DirectX runtime distributions appear to be the huge multi-version installer.

I'm sure things like DosBox might be a bit dicey though because it is open source and there are probably loads of custom versions floating around in Steam products.

The runtimes don't cause me any issues space-wise but it is a bit annoying when most of the size of a Steam product is redistributable packages.
Last edited by Crashed; Jan 13, 2016 @ 4:01pm
aiusepsi Jan 13, 2016 @ 4:27pm 
Steam already does maintain a list of custom redistributables that developers can opt-in to importing into their apps (see https://steamdb.info/app/228980/depots/ ), there just isn't that piece of deduplicating them across the system. Would be good to have.
Crashed Jan 13, 2016 @ 4:33pm 
Originally posted by aiusepsi:
Steam already does maintain a list of custom redistributables that developers can opt-in to importing into their apps (see https://steamdb.info/app/228980/depots/ ), there just isn't that piece of deduplicating them across the system. Would be good to have.
If they already have the depots, they should turn that into an app and individual DLCs and have purchases of a game that requires a redist add such DLC to the client.
Satoru Jan 13, 2016 @ 4:39pm 
While you can centralize vcdredists, you can't really do that for directx which is really the larger issue. You're still going to have tons of directx downloads because those are version specific to the game. It also means devs would have to go back and repackage their games to duse the depots which they're not likely to do at this point

also realistically this 'problem' is mostly going away since dx and vc are no longer separate downloads in windows 10
Last edited by Satoru; Jan 13, 2016 @ 4:41pm
Crashed Jan 13, 2016 @ 4:47pm 
Originally posted by Satoru:
also realistically this 'problem' is mostly going away since dx and vc are no longer separate downloads in windows 10
Most Steam games that use redists use legacy DirectX runtimes not available in Windows 10, and if they use MSVC often use runtimes older than 2015.
In addition, Steam is still compatible with Windows XP through 8.1 and the MSVC14 libraries are still separate installations for those operating systems.
If I were to get my program greenlit, it would be the difference between my depot being a few hundred KB or over 6 MB.
Satoru Jan 13, 2016 @ 5:38pm 
Originally posted by BFeely:
Originally posted by Satoru:
also realistically this 'problem' is mostly going away since dx and vc are no longer separate downloads in windows 10
Most Steam games that use redists use legacy DirectX runtimes not available in Windows 10, and if they use MSVC often use runtimes older than 2015.
In addition, Steam is still compatible with Windows XP through 8.1 and the MSVC14 libraries are still separate installations for those operating systems.
If I were to get my program greenlit, it would be the difference between my depot being a few hundred KB or over 6 MB.

You really shoudlnt concern yourself with how big your redists are. I mean your'e talking about a few MB worth of stuff. In an age where my cell phone has 16GB of storage.

We're not in some era where, like back in my day, I literally chewed a guys ear off over the phone because they were going to replace my in warranty 120MB hard drive with a 110MB one, and THAT WAS NOT ACCEPTABLE!
Washell Jan 13, 2016 @ 6:03pm 
5 year old reply from the old forums by a Valve developer:

Originally posted by jmccaskey:
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.

I'm guessing the depot feature mentioned earlier would be the slight improvement.

Originally posted by Satoru:
You really shoudlnt concern yourself with how big your redists are. I mean your'e talking about a few MB worth of stuff. In an age where my cell phone has 16GB of storage.

It has become somewhat more relevant with SSD's and their limited capacity.
Last edited by Washell; Jan 13, 2016 @ 6:04pm
Satoru Jan 13, 2016 @ 7:17pm 
Originally posted by Washell:
It has become somewhat more relevant with SSD's and their limited capacity.

Even SSDs are now coming down in price. And the space taken up by the duplication of games is minimal compared to the games themselves.
Last edited by Satoru; Jan 13, 2016 @ 7:18pm
< >
Showing 1-9 of 9 comments
Per page: 1530 50

Date Posted: Jan 13, 2016 @ 3:53pm
Posts: 9