I’m glad to see this community picking up, the old sub is probably the community I’ll miss the most from Reddit.
How about a discussion topic? Native Linux games!
Gaming on Linux has absolutely never been better. I’ve been using Linux for 6+ years now, and I’ve been daily driving it since Proton first launched. I don’t even check ProtonDB anymore, I just buy games and they work. It’s amazing. However, it feels like native games almost always have an extra step, forcing Proton.
A lot of people predicted this when Proton launched, but the moment it got really bad for me is when I switched to Wayland. Native games that used to work under X11 suddenly stopped working never to be fixed, but the Windows version with Proton continued to work just fine.
I skimmed through the native Linux games in my library to get examples. In all of these cases, forcing Proton fixed the problem. The only two games with functional Linux ports that came to mind are Stardew Valley and Zachtronics Solitaire Collection.
- CrossCode – Controller didn’t work.
- N++ – Crashes on startup.
- NeoDash – Controller didn’t work.
- Bioshock Infinite – Awful performance, possibly still broken because of 2k launcher thing?
- Hexologic – Game breaking level bug in Linux port.
- DiRT Rally – Awful performance.
- Drawer – Crashes on startup.
- Super Meat Boy – Last level runs too fast and the game breaks.
- I also remember having trouble with DiRT 4 and one of the Tomb Raider games, but I can’t remember what was happening.
It’s gotten to the point where if I experience a single issue with a native game, I just immediately force Proton instead of wasting time troubleshooting, and that strategy hasn’t failed me yet.
So, here are some discussion questions. You don’t have to answer all (or any) of these if you have a more interesting thought to add!
-
What do you think of the state of native Linux games? Has your experience been different from mine?
-
More and more developers are choosing to officially support Proton rather than maintain a native Linux version. This is resulting in a better experience in the short-term, but will that have consequences in the long run?
-
In the above cases, the community seems more accepting of indie developers going this route due to their more limited resources. Do you agree with that, or do you treat these cases the same as larger studios doing the same?
-
Do you think this will change in the future? Linux market share is slowly but surely ticking up. Do you think there’s a threshold where studios start putting effort into native ports again, or will Proton be the way forward indefinitely?
EDIT: Formatting improvements
I have seen native versions tank as the default distro setups change over the years. As weird as it sounds it feels more reliable to use the windows version under proton/wine. Often game modding communities stick to the windows version.
Once M$ inevitably introduces Windows Cloud with subscriptions and the lowest tier being ad supported with anti-adblock and a registration fee, then Linux will become the preferred experience native or otherwise.
For the time being though wine and proton are good enough. I have been doing all my gaming on the steam deck and there haven’t been any games that make me feel like it’s a lesser experience in any way. The few games I have any difficulty running tend to be shitty games with micro transactions and kernel anticheat that doesn’t even prevent cheaters. Several can be made to work anyways. You can even install poorly made games and mods using the case folding toggle in ext4 that steam deck does have access to.
I am admittedly still waiting for someone to tell me that Wayland incompatibilities are a thing of the past…
Here’s a potentially unpopular opinion… Games that target the Proton API are actually native Linux games. Proton isn’t virtualization or emulation, it’s just an API that happens to be mostly compatible on both Windows and Linux. Other than the kernel itself, Linux has never had one true API to do anything… there’s always more than one option to target (as you note with your Wayland/x11 example, but also pulse, alsa, pipewire, the list is endless). Proton is an API that’s available on Linux, and programs that target the Proton API are Linux programs in every way that matters.
The question isn’t native vs proton. The question is whether proton is a good API. At the moment, it’s an API that offers pretty good cross platform compatibility with windows, which is hugely valuable to developers and they’re using Proton for that reason and even testing against it. That’s good for us as users and for gaming on Linux.
If Windows evolves their versions of the proton APIs in ways that break compatibility and are difficult to fix, we may find that game devs complain on our behalf to avoid breaking their Linux builds. If Proton begins to suck compared to alternatives, and enough people are playing games on Linux with Proton, devs will organically start to look at other porting options more seriously. But Proton is both a way to kickstart the chicken/egg problem, and itself may just actually be a good API to develop Linux games against.
Philosophically there isn’t much difference between a Windows game running in Proton and a native Linux game. Devs that port games to Linux are going to be doing most of the same things Proton is doing anyway. In that sense, Proton is basically just an automatic porting tool that works in real time. And I’d like to say there is still value in native Linux games but… is there? Proton is open source, so devs could (theoretically) just submit changes to it themselves if they want to optimize things or fix bugs. And that could benefit everyone, not just that one game.
Tbh… I cant even tell. When it works, it works perfectly. Proton is just that good in my experience
If it’s a closed binary-only game then I really don’t care what “runtime” it uses as long as it runs well. Almost all games use their own GUI so they won’t be integrating with anything anyway and since they are closed I won’t be able to build them from source. It either runs and plays well or it doesn’t. Using Wine as the runtime is not that different from a game like Slay the Spire running in a JVM.
So I have no problem with switching stuff over to Wine/Proton if that works better.
Yeah I’m happy with whatever works and performs best. If that means a proton version that plays nicely in Linux I’m all for it, and if it’s a native version that will be supported and/or improve across many years of releases, even better.
I used to be really big on native games but honestly my experience with Proton have been pretty positive
wine/proton is so good at this point and it’s getting better day by day. imo there is no need for native games but if some competative games like counter-strike, dota etc. gonna make little bit more performance out of native port then devs should consider native ports too.
right now i’d rather devs focus on making proton-friendly games than native linux builds. mirroring your experience, i can think of several native ports that were completely non-functional while proton ran them with no problem.
anecdotally, i’ve personally had some games run better on linux with proton than they did on the same system in native windows. i’m unsure if this is due to regular windows background bloat eating too many resources, or if linux just does a better job of multithreading. average cpu usage per core is very nominal, whereas on windows 1 or 2 cores are frequently seeing spikes in the 80-90% when i’m just browsing.
I don’t think native Linux games are necessary anymore. It’s the antycheat stuff that is the hurdle for now… not technical of course… it’s political.
I started to look at wine/Proton as just another linux runtime. At least now game devs have sth (mostly) stable and backwards compatible that they can target. It is really important since in Linux world, things are much more prone to experience breaking changes. Also the fact that game devs just need to develop one version for both Linux and Windows makes it super easy to target proton - you even don’t need to have a separate build process. Hence we get a more ‘refined’ version than just half-assed port made by a small team or third-party.
So I’m quite happy with how things are now. It just shows how flexible and capable Linux really is. And who knows maybe in the distant utopian future, Linux (or sth based on it similar to chomebooks, but maybe not as gimped) will pick up market and we will have much more “native” runtime.
The only native games I’ve tried are Ark: Survival Evolved, Hollow Knight, Slay the Spire, and Borderlands 2, and they all played flawlessly.
Proton is great but it has killed native ports.
At the same time some native ports are old enough to not work as well as proton (XCOM EU) so this might be better? Mixed feelings.
@toallpointswest @Hextic @atmur
A good well supported native port will always be better than #proton or #wine.
If you don’t believe me just compare with a game like #factorio in the late game.
This is a bit of a cherry picked example, however, as resource usage for a game like that matters a lot more in late game.
@zbecker @toallpointswest @Hextic @atmur i was surprised how well Factorio plays on the steam deck at end game. Really didn’t think proton would handle it
@zigdon @toallpointswest @Hextic @atmur
Factorio is a native linux game. Are you manually selecting proton?
@zbecker @toallpointswest @Hextic @atmur oh, shows what i know, nvm :)
But a lot time they weren’t good native ports, at least for AAA games. A lot of the time they slapped a translation layer on the Windows version, so it may end up running better in Proton.
@toallpointswest @Hextic @atmur
I am not arguing to get rid of proton.
My point is that proton is a stop-gap measure.
Team Fortress 2 runs sweet native linux just got an udate too ;) The steam deck accelerated the development of proton so much, if they released another linux based product it would probably encourage more native games or at least better support with proton.
The steam deck and proton are game changers. Steam deck makes linux worth some nominal support. Simultaneously, proton means they don’t need a full port. All they need to do is not actively break compatibility with proton, which is a lot easier. This lowers the bar drastically for developers.
I actually experience the opposite, even though native games throwing fits sounds about right.
I have very few native games, the ones I remember atm are Valheim (which I didn’t realize was native at first), X3:TC (+ later expansions) and X4:F; the native versions work
relativelyflawlessly even in Windowed mode with Sway being my WM, so that’s something.At this point, the only way I see a game being native is with it being an AppImage or equivalent. The resources to keep up a Windows flavor along a native port would be wasteful. The only thing I would like to see is companies stop using launchers and kernel based anti-cheat systems.
That’s basically how steam does linux support now. There are different runtimes you can target that get frozen and have long term support. The issue is these namespaces/containers/runtimes only became available in late 2019, and meanwhile proton was getting so good and the Linux marketshare is so small that linux steam runtimes didn’t really take off. If Linux market share continues to grow, Valve is ready to support developers building better supported linux native binaries.
I always try the native version first if a game has one (old “native” ports using Wine don’t count) and only use Proton if it has serious problems. I want to see more Linux native games, and so I go out of my way to play them in their native version. There are some games that I own where the native version is clearly inferior to Proton, but for most it’s equal, or only slightly worse at best (I mean “Pillars of Eternity not having cloak physics in native version” level worse).