Steam for Linux

Steam for Linux

Faeren Jun 11, 2020 @ 4:18pm
Proton creating a WINE directory for every single game.
Is this really necessary? When using Wine I can easily get 30+ games running on one WINE directory, why does Proton insist on creating one for every single game? Also is there any workaround for this so I don't have gigabytes of wasted space on my 256GB SSD?
< >
Showing 1-15 of 19 comments
YellowApple Jun 11, 2020 @ 6:30pm 
Different games often require different hacks to get working right, and I personally appreciate that Proton keeps things isolated instead of potentially clobbering every other game's config every time a new game gets installed. It's also handy for troubleshooting purposes (you can blow away a game's prefix and not worry about other games being impacted).

If you'd prefer everything to be in one prefix, you could always install the Windows version of Steam under a normal/standalone Wine (or even a standalone Proton[github.com], though I've never tried this) and do it that way (Steam was Wine-friendly long before it had a native Linux version, though I'm not sure if the new UI throws a wrench in that).
Kiba Snowpaw Jun 11, 2020 @ 7:04pm 
Originally posted by YellowApple:
Different games often require different hacks to get working right, and I personally appreciate that Proton keeps things isolated instead of potentially clobbering every other game's config every time a new game gets installed. It's also handy for troubleshooting purposes (you can blow away a game's prefix and not worry about other games being impacted).

If you'd prefer everything to be in one prefix, you could always install the Windows version of Steam under a normal/standalone Wine (or even a standalone Proton[github.com], though I've never tried this) and do it that way (Steam was Wine-friendly long before it had a native Linux version, though I'm not sure if the new UI throws a wrench in that).

you can do that with Lutris it has somthing called wine steam so it thinks its on a windows pc thats how i get some of the games to work that just dont like proton.
Marlock Jun 11, 2020 @ 9:41pm 
If there are specific games you want to force into using the same WINE directory, go to Steam > Library > right-click the game entry > Properties > Set Launch Options and in the text box paste this (and adapt the target path to the desired WINE folder):
STEAM_COMPAT_DATA_PATH="/path/to/WINE/folder" %command%

Do it for a couple games and, if satisfied with the results, maybe try making it a global setting for proton games...

I wouldn't do it if I were you though, as it may break more games than whatever benefits you think it may achieve... unless you're trying to actually test stuff and figure out a "perfect prefix" or something.

In any case, the best way to set these environment overrides for all games would be by renaming user_settings.sample.py to user_settings.py and modifying it appropriately. This file is located in the Proton installation directory in your Steam library (often ~/.steam/steam/steamapps/common/Proton #.#).
Last edited by Marlock; Jun 11, 2020 @ 9:42pm
Cat on Linux Jun 12, 2020 @ 2:52am 
I use one wine prefix for everything - it has configuration selection per executable so you can easily configure all changes without installing new prefix again and again. if you use any other game storefront besides steam one full wine prefix is more useful than Proton anyway.

jason Jun 12, 2020 @ 6:56am 
If you haven't found a game that manages to break unrelated games in the same prefix then you don't have enough games.

Deduplication is nice if your filesystem allows it. I have 320 prefixes using about 8GB of actual disk space for 90GB of mostly the same files.
Marlock Jun 12, 2020 @ 9:42am 
Originally posted by jason:
If you haven't found a game that manages to break unrelated games in the same prefix then you don't have enough games.

Deduplication is nice if your filesystem allows it. I have 320 prefixes using about 8GB of actual disk space for 90GB of mostly the same files.
That's an interesting approach!

Does ext4 have deduplication? Any caveats?
Cat on Linux Jun 12, 2020 @ 11:15am 
Originally posted by jason:
If you haven't found a game that manages to break unrelated games in the same prefix then you don't have enough games.

how many games should I have to get something broken? and how game can break the prefix? only if you allow it to install redist packages without having these installed from winetricks.
Marlock Jun 12, 2020 @ 12:29pm 
I think @jason refers to breaking in a wide sense, including having a game that doesn't work in that prefix, not necessarily just to making the prefix stop working for other games... but in any case I can see how it can happen, as some games do require exotic, specific workarounds that are not handled by winetricks
SIGKILL Jun 12, 2020 @ 1:46pm 
dedup is cool, but takes a ton of memory and cpu cycles. ZFS has it (and I love ZFS for fileservers) it will definitely cost you performance and def not recommended for gaming.
jason Jun 12, 2020 @ 3:47pm 
I meant offline dedup of whole files. BTRFS and rmlint, for example, do it once in a while when you are otherwise idle.

cd somewhere/compatdata rmlint -s 2049 -F -T df --config=sh:handler=clone . ./rmlint.sh

Runtime impact is zero.

Ext4 does not support any form of deduplication, as far as I know.

As for games breaking, I'm gonna be that guy and not think of any specific examples.

It would usually be things that are optional dependencies or requirements for particular versions. A game you played runs fine, then some other game installs a version of directx, vcredist, physx or something without asking that is not compatible with the first game.

Or a particular tweak here and there for one game has unintended consequences elsewhere. You have games that says something like if windows version = 10 run this bit of code otherwise run some other code, one of which doesn't work. By the time you notice you cannot remember what changed or why.

If this hasn't happened to you then be happy.
Cat on Linux Jun 12, 2020 @ 5:04pm 
Originally posted by jason:

It would usually be things that are optional dependencies or requirements for particular versions. A game you played runs fine, then some other game installs a version of directx, vcredist, physx or something without asking that is not compatible with the first game.

It always asks for permission to install. Just close the window and install same from winetricks. or even better, when you create prefix - install all possible packages, there's a list with checkboxes, hard to miss.
Winehq has it somewhere in faqs, it says to never install dependencies from windows installers if you don't want to have issues.

Wine config has setting for separate executables, you can easily set Windows version, virtual desktop settings, dll overrides, audio for each executable individually. Why you have to remember anything if you change only things specific to your executable and don't touch prefix itself? if you need to load specific dll you can toss it into game folder and set override in winecfg to make sure game uses correct dll. it does not have to be global things.

Originally posted by jason:
If this hasn't happened to you then be happy.

never happened to me because I follow winehq suggestion and use winetricks for all dlls. I use dll overrides maybe on 1 out of 30 games I install, usually everything works out of the box. Nothing got broken so far, in 3 years that I'm using this prefix.
Marlock Jun 12, 2020 @ 6:55pm 
@cat
thanks for sharing the details, it's an insightful aproach indeed
Cat on Linux Jun 13, 2020 @ 3:12am 
Originally posted by Marlock:
@cat
thanks for sharing the details, it's an insightful aproach indeed

lazy approach :) it might seem like alot of work to create your full prefix. but you do it only once, and then almost everything you run with it just works. saves alot of time later (no need to install every game prefix and its dependencies). also once your prefix is feature complete you can just archive it, clone to another PC in household, keep it alive if you change distro. It is standalone tool that needs no maintenance. what's not to like? :)
Zyro Jun 13, 2020 @ 9:34am 
Originally posted by jason:
I meant offline dedup of whole files. BTRFS and rmlint, for example, do it once in a while when you are otherwise idle.

Shouldn't something like this be doable with a little script and hard links on every decent file system?
jason Jun 13, 2020 @ 10:01am 
Not without copy on write semantics. If something writes to a hardlinked file it writes to all instances of that file. Unless it removed/replaced the file entirely. It would save space to begin with but you could end up with a mix of some old and some new files scattered between prefixes.

If you write to a deduplicated file a copy is made (effectively) and only the one file changes.
< >
Showing 1-15 of 19 comments
Per page: 1530 50

Date Posted: Jun 11, 2020 @ 4:18pm
Posts: 19