Steam: How it could manage fast and big storage
It’s 2020, one decade of SSD and Steam still doesn’t help PC gamers, but they can!
At this point in life, I find weird that Steam still doesn’t help PC gamers to handle storage spaces optimally in a computer considering how games space requirements and different disk types exists.
The most useful configuration in every computer I see is to have a fast SSD where Windows and most software live, while having a secondary bigger HDD where documents and games can live. Still, Steam leaves the user to manage its library totally by himself.
As the new gaming consoles arrive with promises of super-fast storage, having a way to manage games between SSD and HDD seems like a requisite. There will be a point where games will require an SSD to work without constant hiccups.
Prioritizing your games, one at a time
There is no point of comparison between the best HDD in SATA III and the best SSD in NVMe form. Even if an HDD can saturate the 750 MB/s offered by the bus is connected when reading something, an average $100 SSD can start from 2000 MB/s upwards.
Luckly, most PC games, and overall titles in the market, doesn’t require an SSD to work, but these can benefit from load times. Having a plan before this start to happen should make Steam less than a mess for gamers who don’t know the difference.
Steam should handle the fastest storage for two types for games, in this order of priority:
- Games that require and SSD to work.
- Games which load times can benefit from.
- Games that are constantly played.
- Games that are installed forcefully (pinned).
For this to work, Steam should label each library as FAST or SLOW, depending on the nature of the storage where the library lives. Anything below 1000 MB/s should be considered SLOW, but considering how Xbox Series X and PlayStation 5 specs to 4.8 GB/s and 9 GB/s of compressed data respectively, it seems safe to say that it could change in the future as more games start to be ported from consoles to PC using the next gen consoles as baselines.
Since most of the SSD sacrifice speed and endurance for space and longevity, Steam should know if the game requires and SSD to play or not, for example, if it expects to push gigabytes of data to the system RAM or VRAM.
So, now that we have FAST and SLOW libraries, how to let Steam to manage the games we install in our libraries?
Moving games automatically
By default, games stay in their libraries. The user can use the “move installation” to another library, but you would probably not want to do it for every game, but rather, let Steam decide if you could benefit from better load times.
To enable this feature, you should put in your library “Enable auto-moving most played games to the fastest library”. This would be accompanied with a maximum of GB to slot these games — this space will be used has a “swap” most used games between each other — and how many days to calculate the most played games.
Nice defaults would be a window of 14 days of activity, and a maximum of 50% of the storage space where the fast library is.
The algorithm is basically this:
- Get the most played game from the last 14 days.
- If the game can fit in the swap area, remove the least played games in the swap space until the most played game fits.
- If the game doesn’t fit, don’t move it at all.
- Go to the next game in the list of most played and repeat.
Let’s make an example.
First world problems
Bob has a 256GB SSD and a 1TB HDD. Bob mostly plays Dota 2, and lately has played more Doom Eternal than Assassin’s Creed Odyssey. Steam has auto-moving enabled for all games, so it will intelligently schedule moving Doom Eternal into the SSD.
Next month, Death Stranding comes out. Bob start playing Dota 2 along Death Stranding, and sometimes Doom Eternal, leaving Assassin’s Creed Odyssey in the dust. Steam will know that Assassin’s Creed Odyssey is no longer played actively, so it will intelligently mark to move Death Stranding into the SSD.
The problem here is that Death Stranding is too big to enter to the SSD, so Steam will remove Assassin’s Creed Odyssey and Doom Eternal from the SSD to make space for Death Stranding.
After moving both games to the HDD, it will proceed to move Death Stranding into the SSD.
Sometimes there will be no space to swap a game from fast to slow storage. So, if a fourth game comes, Steam will try to still swap games as long there is space to move them around.
For example, Bob now has bought Horizon: Zero Dawn, which is huge, so he decided to install it in the only place there is space: the HDD. Since Bob still plays Dota 2 a lot, and decided to not uninstall any game, Steam will keep Horizon: Zero Dawn in the HDD.
Steam will restart auto-moving games once enough games are uninstalled (Death Stranding, or both Assassin’s Creed Odyssey and Doom Eternal), or another library shows up with more space.
If another library is enabled, two things can happen: if it’s fast, Horizon: Zero Dawn will be moved there; if it’s slow, Death Stranding will be moved there and Horizon: Zero Dawn will take its place in the fast library.
And that’s it. There is no much to do say except let the Steam know that relying on Steam to deal with this as an opt-in, and check the feedback of users.