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 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!