I have had numerous cases where a non-Steam game would run perfectly through Steam with Proton but the same game wouldn’t even launch through Lutris, even though I used the exact same Proton version. How are they different? Is there anything that Steam does in the background that Lutris won’t?
I’d love if anyone could shed some light on this for me.
Proton is Valve’s version of wine running inside a container specifically made for Steam, while Lutris is only using wine.
And the versions being used by Lutris and the version being used by Steam are not the exact same thing. If you use GloriousEggroll for example there is the proton-ge-custom repo for Proton, which is the one Steam uses, and the wine-ge-custom repo that Lutris uses.
I’m not even sure that the latest “GE-Proton8-14” and “Wine-GE-Proton8-14” are actually equivalent to each other. They were released two weeks apart and might be based on slightly different wine and/or dxvk versions since they are using whatever the bleeding edge git commits are, rather than actual stable releases (i.e. using commit #ABCD1234 instead of release version 1.2.3)
I know that wine and proton are not the same thing, which is why I specifically ran my tests with the Proton Experimental version that is downloaded through Steam in both launchers. I tested it again with GE-Proton8-14 and the results were largely the same: Most games ran just fine, but some wouldn’t launch in Lutris and would instead work through Steam.
Proton isn’t meant to be run outside of Steam at all. If you are running games in Lutris you need to use the “lutris-GE-Proton8-14” you can find in the Lutris wine version manager. There is actually a huge bold disclaimer about that on the proton-ge-custom repo I linked in my last comment. Proton (and Steam) bundles a bunch of libraries together while Lutris uses whatever versions your system has installed.
Yeah I know, I’d just like to know how they are different. I imagine some of it has to do with controller compatibility and steam features such as overlay and achievement integration?
Proton and the Steam Runtime bundle a bunch of different libraries so they all play nice together and are consistent across everybody’s machines. There are the obvious things like DXVK and VKD3D, but the Steam Runtime includes basically all of the system files that affect games. It’s not quite the same thing but for the sake of simplicity think of it like running in a virtual machine. The Steam Runtime is using libraries from Debian. It is the same concept as docker if you know how that works.
Lutris on the other hand lets you select DXVK and VKD3D versions independently of the wine version, and uses your system’s actual libraries rather than the standardized ones. If you’re wondering why running Proton inside of Lutris is not working it’s because Lutris is missing the Steam Runtime. It’s searching for a container that doesn’t exist so it can’t even start in the first place.
That’s a really helpful explanation, thank you!
Proton is basically just a version of Wine but Steam has other runtime apps like Pressure Vessel that work together making the game run. Don’t know if Lutris has anything else than managing and running the apps in the Wine prefix with specified Wine version. This is as deep as my knowledge goes.
I think it is to do with the files steam adds, not just proton.
To get a pirated copy of a game to work I created a compat folder for steam games, put the whole game in there, then ran it from lutris and it worked. (I can’t remember exactly how I created the compat folder but I can update this comment later when I’m at pc if you can’t figure it out)
When running from lutris without the folder structure of steam compat files it had many visual glitches.
When running from steam it tried to attach some steam processes which didn’t work for the pirated game.
Interesting trick! I’ll see if I can figure it out.