Comment by unpaydijk

4 days ago

>One game i have didn't run even run when i was on windows, but the windows version worked in Linux..

Was it an old game? Those tend to do that

>My anecdotal experience with the steam and steamOS has been that the windows versions of games run better via proton than their native linux versions.

This is very interesting, does anyone have insights into why? I can only guess the games/their engines are more mindful of optimizing their calls to the native windows APIs, which when translated turns out to be pretty efficient on the output side too

There's a joke that "the most stable Linux ABI is Win32". Like sibling commenters have pointed out, many Linux game ports either used system libraries that may or may not be compatible after years of changes, or bring along vendored libraries that may not play well. Valve tried to encourage Linux builds for games during their first foray into Linux gaming with the Steam Runtime, but even they have largely abandoned updating it in lieu of advancing WINE and sibling systems like DXVK, vkd3d-proton, dgvoodoo2, et al. Much more engineering effort goes into the Windows game tech stack than native Linux ones have.

For older games, the biggest advantage WINE has over Windows is WINE's prefix model, which lets you essentially build purpose built environments, not dissimilar to vendoring your dependencies into an OCI container. And if you're running a file system with CoW powers, those separate environments don't even take up a great deal of storage since the vast majority of the prefix is bit for bit identical.

The "native linux versions" are typically just the windows games with an old build of wine/proton/etc.

  • Depends, I've still got some of the end-90's Loki game ports. Those were 'real' Linux binaries but won't run on modern Linux distributions due to changes in core libraries. The big game engines (Unreal, Unity) and even smaller ones (Gamemaker, Godot, AGS) offer Linux runtime support.