So lately I have been trying to build a system in which I can store Steam games locally in my data center, so my gaming rig can have more free space for recording lets plays and editing the extreme amount of doggy pictures that I now have. I have learned a lot about how steam stores games and what I can do to move them and compress them.
First thing I learned was that Steam stores games at
C:\Program Files (x86)\Steam\steamapps\common\
by default, however in my config I have it stored on a storage pool with duplication turned on. This is so I dont lose any data (game, pictures, or otherwise) to a single drive failure. I will write more about this later in a different post.
So lets say I have my steam games stored in
I need to know this so I can put a .bat file in it that I wrote to compress the games and store them on my server. I use the command line version of 7zip to compress each individual folder under this directory then manually move the compressed games. I do this manually because I dont want 7zip to take up all my computing power while Im trying to do other things, and the server I store it on would take forever and a half to get any of it done. In the future I plan to have an automated transfer of this folder to a crunch box that can handle the compression needs and automate the moving and backing up, but for now this will have to do.
So here is my one liner that I have saved in the same directory as the game folders:
for /d %%X in (*) do “c:\Program Files\7-Zip\7z.exe” a -t7z -m0=lzma2 -mx9 -aoa “%%X.7z” “%%X\”
Save this line to a .bat file such as “compress.bat”. It will loop through each folder in the directory that it is in and compress each folder to its own .7z folder. Be sure to check if the 7z.exe is the same directory as mine is, or change it to match the location.
Now for the size savings, I have been seeing most games compressed to 1/3 to 3/4s of its original size, so this actually helps me out a lot because the server I am currently storing these backups on is an old dual core machine that has 7x500gb drives that are older than God himself running FreeNAS. I am not worried about losing this data because I can re-download it if needed, but would like to avoid that if possible. I abuse my internet connection way too much for that.
So lets see the storage differences between the uncompressed games on my gaming rig to the compressed games on my FreeNAS box. On my gaming rig checking the size on disk property I see this:
1.04 TB (1,152,646,602,752 bytes)
So all my currently installed games take up 1.04 Terabytes of storage space. Quite a bit. Now lets see how much it is when it is compressed:
503 GB (540,267,249,664 bytes)
That is less than HALF the space that the uncompressed games take up. This lets me save a lot of space on my cold storage FreeNAS server that only has 3,255 GB of storage space, which is actually more like 2 TB after ZFS does Raidz2 to it. This also allows me to use this server as a VM backup as well since this frees up space for it.
Thank you for reading! Let me know if you think there is a better way or if you would like to know more! I am still working on a way to automate this process to once a month or when a folder is changed in case of Steam downloading updates to games.