Hello Linux Gaming friends :)

I’ve been tinkering on and off with my wife’s laptop (Mint 22) to get a few of her games working on Linux, namely House Flipper 2. It experiences frequent OS crashes, despite everything saying that this game should work on Linux (hell, it’s even Steam Deck verified).

I’m not necessarily asking how to make this particular game run, but in my tinkering with different Proton versions I find myself asking: what is the difference between these versions of Proton? Why do some work better than others? How does one version work, say Hotfix or Experimental, but not a numbered release?

Just trying to learn to add some knowledge to my toolbelt, or whatever 😅. Thanks!

  • bisby@lemmy.world
    link
    fedilink
    English
    arrow-up
    21
    ·
    3 days ago

    As someone else has mentioned, proton or wine or games should not be able to cause “OS crashes”. If they do, its either an error happening somewhere else in the stack (a driver perhaps?) being triggered by the game, or you’re dealing with out of memory issues, and its struggling to clean itself up. I would suspect drivers (ie, make sure the system is updated) or memory, because those are the 2 aspects of a system that games tend to push the most.

    But to your actual question: It’s a few things. The main thing that differentiates proton from wine, is that wine aims for maximizing global compatibility. Proton is focused on games, and is therefore able to make tradeoffs.

    What if a new feature breaks MS Office because it changes how a function works, but doesn’t impact any games, and in fact, makes games fun 2-3x faster on average. Wine would not include this new feature. Proton would. They would put this into proton experimental.

    But now they find out that while it makes MOST games faster, some games it causes to crash. Some games might use that same function MS Office does. so they don’t run properly. That might warrant a hotfix release. The point of numbered releases is to have points in time where most things are known working. If this feature had shipped into Proton 123, valve could pin the broken game to Proton 122, so now having different number versions makes sense to keep each individual game working optimally, while experimental and hotfix can be used for testing out new code (literally experimentally).

    A great example of this was fsync. TBH, I have no idea what fsync is, but generally speaking, the games make a Windows function call that didn’t have a direct equivalent Linux function. Wine made a workaround to make sure this windows function did what it was expected to do, and there were several versions of the workaround. Some faster, some more reliable. And then eventually the function was actually added to the Linux kernel, so no work around was needed. For a while there, fsync vs esync was a big performance and compatibility concern. And now ntsync tends to cover this. Some games worked better with fsync and some with esync, and some with it all just turned off. But we need experimental proton versions to validate all of this.