This is just a vent post / unpopular opinion (? unsure if unpopular). Specifically on Steam. Linux native builds are so buggy and glitchy and never work right. Always some combination of:
- No sound
- Old outdated version missing content and incompatible online
- Controllers don’t work
- Crashes, doesn’t launch at all
- Horrific FPS
- Cutscenes don’t play
- Weird game breaking softlocks and logic errors, like critical items not spawning and dialogue not triggering
- Zero support and low priority from the developer
I have none of these issues with Proton. Proton works perfectly fine, I love it. This only happens when a game doesn’t use Proton. As soon as I change to Proton all issues are resolved. This problem has followed me across distros with fresh installs, so it’s not a config issue. Yes I have the correct drivers and such, NVIDIA proprietary unfortunately. It’s so strange, you’d imagine the native build would run better not worse.
The worst part is, it’s not easy to tell when a game will launch using Linux native as it’s the default priority. Games can even silently update and stop working when they gain Linux native “support”. You have to manually go in to properties and override compatibility to proton. Normally I do this when I notice a suspiciously large amount of bugs and I’m like hmm… oh look it’s Steam Linux Runtime 1.0 again.
I wish there was a way to just force Proton globally. Either that or people actually test and maintain their Linux builds. I’d rather there be no Linux build at all if they’re going to be so terrible.
Edit to add commented example list of games:
I couldn’t get a full list because I was relying on having set a flag forcing a specific version of Proton to identify which games were problematic to jog my memory… Unfortunately this data is local only and was not synced between computers, so it was lost when I changed distro. Just from my limited memory though, I can list some that I distinctly remembered when writing up my post, though it’s many more in reality. It’s also surprisingly hard to see whether a game even has a Linux native version, you usually have to wait for the store page to load and scroll down to compatibility, which is just annoying.
Games that worked well:
- Factorio
- Stardew Valley
- Baba Is You
- All Valve games (TF2, DotA2, etc)
Games that had issues:
- 1001 Spikes
- The Case of the Golden Idol
- Broforce
- Spiritfarer: Farewell Edition
- The Stanley Parable: Ultra Deluxe
- Cook, Serve, Delicious
- Valheim
- A Game About Feeding A Black Hole
- Audiosurf 2
- Keep Talking and Nobody Explodes
- Slay the Princess
- TIS-100
- Cassette Beasts
- Brotato
- Bit.Trip runner
- Don’t starve together
- Unpacking
- While True: Learn
- Fez
- Magicka 2 (controllers not working)
- One Shot (critical gameplay bug right at the end. Had to watch a let’s play to finish it. I messaged the dev who left me on Read)
- Just Shapes & Beats (no sound)
- Tiny Bookshop (no sound)
- HiveSwap (critical gameplay bug right at the end, and savefile bricked, had to watch a let’s play and the dev ignored me) (I’m not a “fan” I swear, please don’t lynch me)
I’m getting tired and I’m sure you get the point. Almost every game in my experience has been unplayable on Linux runtime. I’m glad it’s working well for you though.
Consequence of not static linking your dependencies into the game executable
deleted by creator
Kerbal Space Program on proton literally uses half the amount of ram compared to the Linux version. I assume the way unity exports for Linux is just not optimized at all but it works. Maybe with Linux gaining popularity these engines will put more effort into making them work well.
Many game developers make it for Windows and do the bare minimum to get a native Linux build.
I’ve always experienced a, if it has a Linux distributable, and it launches, I have no issue, but it actually launching is maybe a 60% chance. It’s also super rare that it either gives an error log at all or gives an error code that is able to be deciphered/any value to the consumer
So anyone having these issues:
It’s libraries and steam (and GOG, jesus christ GOG is the worst at this) being lazy at actually implementing permanent fixes.
For example, BG II Enhanced edition works wonderfully under linux. Every game with Beamdogs improved infinity engine does. Except for the fact it was built against specific library versions which are a decade behind what is shipped in 90% of distros today. Except most versions of the game you download have the libraries you need so no problem right?
Except the launcher script included is rarely if ever set up to actually use them. So it fails to launch, and the error message you get sends you on a wild goose chase and since its an old game you just skip the work and instead use the windows version and take the 10-20% FPS hit and weird graphical issues that happen with proton.
The actual solution? Take those specific library versions, putting them in a folder, and then symlinking said libraries into the game’s folder and setting up a venv so that it only uses those libraries and doesn’t try to use system libraries.
And unfortunately you have to do this for every game with developers too stupid or too lazy to actually do any amount of work on their linux builds.
Between Steam’s linux runtime (1 2 and 3) and gog linux native games you can build up a decent “library” of libraries and easy symlinks to copy, which will make all native linux clients behave. This solves 99% of the things wrong.
The other 1% is genuinely the developer doing something fucky with the windows version of your display driver that the manufacturer of your video card didn’t parity with their linux drivers and is too obscure for the open source community to know about.
I don’t get noticeable FPS hits or graphical issues with Proton. In fact, in many cases Proton actually outperforms Windows in FPS.
I don’t think many people are willing to mess with that symlink stuff to be honest, I know I’d only do it if I had a really good reason to. But I’m not a Linux expert, I don’t really understand that kind of stuff and would probably fuck up my game or system if I tried. I know enough to read and mostly comprehend commands that I’m copy pasting into terminal
I don’t get noticeable FPS hits or graphical issues with Proton. In fact, in many cases Proton actually outperforms Windows in FPS.
This will depend entirely on your hardware and drivers, but I was referring to Proton v native. Properly set up and ‘supported’ native should generally always end up faster, but Nvidia’s stupidity and developer’s stupidity tend to mess that up.
I don’t think many people are willing to mess with that symlink stuff to be honest, I know I’d only do it if I had a really good reason to. But I’m not a Linux expert, I don’t really understand that kind of stuff and would probably fuck up my game or system if I tried. I know enough to read and mostly comprehend commands that I’m copy pasting into terminal
That’s understandable and why I direct my complaints very precisely at the problem so that more people can yell at developers and stores to actually do this work themselves. Steam tries, but their solution only works on the flatpak version, which makes modding said games outside of the workshop difficult (and introduces all sorts of other problems for power users that do not keep their games in their home folder) and GOG tried for a while but whoever is overseeing the gog linux distributions seems to not understand anything about linux at a fundamental level. Hell even the independent GOG installer is broken on on some systems without GTK2 installed because the underlying application was built 15 years ago and essentially never updated.
I’ve been daily driving Linux for 9 years, and I didn’t know any of this either. I wouldn’t recommend yelling at developers to update old games, because basically none of them ever have it in their development budget to go back and do so, if the studio even survived to this day. If this is something that routinely happens with old Linux native games, then we need a better solution. I’ve run into misbehaving old Linux native games and also just defaulted to using Proton instead. That’s way easier than diagnosing which libraries I need, which I never thought to do and still don’t know how.
So, short tutorial:
- Install steam. (seriously it just has the most libraries)
- Install any steam native linux game (if you have any valve product, install that.)
- Navigate to ~/.steam/steam/steamapps/common
- Navigate into each of the SteamLinuxRuntime* folders
- Find every ‘lib’ folder within i386 and x86_64 (or amd64) for each steam library folder
- Open a new tab/window and pick a path somewhere that you can remember and create two folders there, something like ~/Games/LinuxFix/i386 and ~/Games/LinuxFix/x86_64
- Copy every single library you find in every single linux runtime into these folders, respecting the i386 and x86_64.
- Create a new file (I normally name it run.sh) in the game folder of the game you want to play with the following (at minimum, if you need/want any other ‘command line’ arguments, this would be the script to dump them in:
#!/bin/bash export LD_LIBRARY_PATH=/<Path you picked>/i386:/<Path you picked>/x86_64 ./<game_executable>- And run it.
Congrats, you now solved nearly every launch problem with native linux games better than a multi-billion dollar company. The most you will have to do if you’re still having problems is run that ‘run.sh’ in a terminal, see what exact name for a library the game is expecting, find a library in one of those folders that is close to that name (usually this is something like “libkeyutils.so.1.4”) and symlink (in dolphin this is ctrl click and drag to an empty space) it with the name requested (which is usually just something like “libkeyutils.so.1”)
Congrats, you now troubleshot more than the entirety of GOG’s forum staff and successfully did something that multi billion dollar company couldn’t do.
We can actually put a number on the value of GOG since its recent acquisition, and it’s about $25 million, not billion, which is a pretty stark difference. I get where you’re coming from, but this is something I would have had no idea how to do, and how frequently should those libraries be checked? They probably don’t become outdated all at once. Even with you spelling it out for me, I’m still more likely to just use Proton.
Generally once you set it up once per game you should be good to go. But every update to your distro may invalidate games you haven’t done this to. To explain why:
On linux your system maintains your packages, including all linked libraries, not individual programs. On windows it’s mostly down to the program (though for things like direct x that’s now handled by windows update… for the most part).
Now when compiling a game, you can only compile for version numbers you know, since newer versions of a library might make drastic changes that break things, so you can’t future proof your application on linux. This is also why packages on linux have ‘maintainers’ even when they don’t add new features or make any real improvements for years at a time, you have to compile to whatever’s current.
So as linux keeps updating, the system version of the library keeps increasing, but for video games especially the original developers don’t, won’t, or simply can’t recompile each time their dependencies update because their entire profit model around software release was designed for windows, where each application is shipped with the exact library version it needs and never has to change anything.
So. What’s the real solution? Each game should just ship with the library version it needs. The reason game devs are hesitant is because it’s not best practice on linux, as it theoretically introduces a security risk and they don’t want to be held liable. (Say there’s a Privilege Escalation exploit found in libssh 0.2.1 and your game shipped with that version, you can’t update the version your game uses without updating the game, and if you’re several years out you’re not spending money updating the game.) But honestly the risk of that is so low it’s practically pointless to worry about, but still that has meant that the distributor defaults to being the one responsible… the problem with that is the distributors rarely have Subject Matter Experts in high enough numbers to decipher what every single game needs.
So what’s this solution? So what this does is piggy back off of Steam’s implementation. Steam installs several “run time environments” for linux to handle this problem… but that doesn’t always mean steam includes everything you need in any single one, and valve probably has like, one guy doing it. So by combining all of steam’s work into a single source folder and then linking setting up that venv to point to it, you shotgun blast library versions at a program until it accepts one, solving the problem for that game forever. Much like any problem solved by a shotgun.
Sidenote
The app image distribution format completely and totally solves this problem, but kills mods without explicit handling by the developer. Flatpak also completely and totally solves this problem but introduces permission problems and kills modding in a new exciting way thanks to the sanboxing feature of Flatpak. Snap also completely solves this problem, but like flatpak kills modification and non-standard installs thanks to its sandboxing feature.
Because of linux’s architecture itself it is harder to distribute static non-changing applications, because realistically those are a security risk.
You outlined a lot of very good reasons as to why this hasn’t happened already. Is this something you could build as an automated tool to pay it forward, particularly for outside of Steam?
Also, your posts seemed to point mostly to games that won’t launch. I haven’t had that problem. What I have had are issues where the game window behaves in strange ways such that it breaks Alt+Tab; or that it reads my mouse coordinates in incorrect locations in a multi-monitor setup; things like that. Do you expect the updated libraries to solve issues like those as well? Or, in your personal experience, have they?
Oh yes that’s right, you awakened a traumatic repressed memory where I keep all my games on a secondary SSD and because I installed either snap or flatpak (can’t remember), it just shit itself and failed to work properly. Took me ages to figure that out.
It would be nice if there was actually good native Linux games. Imagine how buttery smooth they would run. Valve games one of the reasons they’re so enjoyable is they run perfectly on Linux, chef’s kiss. But they made the steam deck so it would be silly if they didn’t
This is less unpopular opinion and more of just a fact that a lot of people don’t know yet. Native linux builds are often buggier than the Proton versions, especially if the game is older than a few years because Linux packages move fast and break old versions every now and then.
When Baldur’s Gate 3 made a native Linux version (mostly for Steam deck) everyone started reporting that the game is a buggy mess.
Terraria had a number of bugs on the Linux version back when I played, to the point where everyone on ProtonDB just said use the Windows version.
Hollow Knight Silksong on release had an issue where controllers on the Linux version wouldn’t work. I forced it to use Proton and get the windows version and it just worked.
So I can’t help but roll my eyes when somebody from the Linux community asks a developer with a perfectly working game to make a native version for Linux. For what? They’ll put a lot of time and effort making a more unstable version of their game where, at the end of the day, the performance will probably be exactly the same? You’d be surprised how many people still parrot the idea that native builds are magically better.
Yeah exactly. At first glance native = better; probably because we have had so much experience with non-native stuff being garbage, like Electron apps and such. But Proton Is Not an Emulator, it actually is much more clever than that.
You end up with the opposite of what you initially expected, where you’re asking each individual developer to target an environment they’re not familiar with, probably can’t easily test, and for very little renumeration. If anything it’s surprising some developers even manage to make good native Linux versions at all.
It’s much better IMO to rely on the very smart people working on WINE / Proton to handle the compatibility layer, where all that Linux specific knowledge can be put to the most efficient use. Especially because Linux isn’t just one thing, it’s like a billion things, so it’s really not an easy task at all.
In my mind the only thing that could be done is to make Proton’s job easier in some way. Like if more games used Vulkan instead of DX11, that would probably help compatibility between all OS’, right? Maybe or maybe not, I’m not particularly knowledgeable about the details of that kind of stuff.
I expressed this view before. Wine and Proton are now the Linux Gaming Layer.
Windows has relatively stable APIs or ABI to serve the third party software and games.
Linux does not. It is however so incredibly flexible that it can assimilate entire operating systems as interface layers. I think it’s absolutely awesome we are using Microsoft’s DirectX tech combined with Vulkan to run Windows games faster than Windows does.
It’s been years since I bothered to check if a game I’m buying is Linux compatible or not, because of it isn’t, it will be soon.
There’s a part of Wine called winelib that lets you build an application meant for windows and get a Linux executable. I don’t know if Proton has it too.
https://gitlab.winehq.org/wine/wine/-/wikis/Winelib-User’s-Guide
People who downvote because “hurr durr linux best” but have never had to support a cross-platform application should read Raiguard’s experience of maintaining Factorio’s Linux-native build: https://factorio.com/blog/post/fff-408
“Why don’t most games support macOS and Linux?” is a sentiment I often see echoed across the internet. Supporting a new platform is a lot more than just changing some flags and hitting compile. Windows, macOS, Linux, and the Nintendo Switch all use different compilers, different implementations of the C++ standard library, and have different implementation quirks, bugs, and features. You need to set up CI for the new platform, expand your build system to support the new compiler(s) and architecture(s), and have at least one person on the team that cares enough about the platform to actively maintain it. If you are a video game, you will likely need to add support for another graphics backend (Vulkan or OpenGL) as well, since DirectX is Windows-exclusive.
I support every solo and small-team developer who prioritizes making the game over maintaining a completely different platform build.
Supporting a new platform is a lot more than just changing some flags and hitting compile.
Sadly, based on many comments I’ve seen (across the net at large but also here on Lemmy), a lot of gamers really do think it’s that easy.
See also: ‘why don’t the devs just add multiplayer?’
Still get into arguments with Mario Maker 2 players on why multiplayer had to be lockstep sync without “the rollback like fighting games use”
I kind of feel like MM2 is designed around playing multiplayer with people next to you rather than on the other side of the planet
I don’t mind people downvoting. To me that means the games they play don’t have that issues. Maybe I’m just unlucky but I’m also a “variety gamer” so my exposure surface is very high as well
I wouldn’t say just because people downvoted you means they don’t have issues. I for myself don’t have much issues (as far as I know) that can be attributed to Linux builds, and still upvoted you. They might not agree with you fully and that’s why downvote you. In example your statement it didn’t work ever and you always have to use Proton version, but also there are examples of games that worked well. It might be that some games work well and some don’t, I wouldn’t argue against that. But many games work well without Proton.
Also Proton doesn’t work perfectly fine either, depending on the games. In some cases games might even stop working using newer version of Proton. And for some DRMs like Denuvo, Proton is deadly, because every time the Proton version updates, it counts as a new machine (which counts as a new installation for no reason!) and will get you a cooldown of 24 hours before able to play game again; even for single player games.
Yeah that’s true as well. Nothing is perfect, I was just sharing my experience because even today I ran into this issue multiple times and got annoyed.
I noticed people here seem to attribute a lot more meaning to downvotes than other websites, and it’s even a bit taboo to downvote too often. Personally I don’t really think about it that deeply, there’s always people who will disagree with you. Also I noticed hyperbole isn’t appreciated either. Like to me if I read “Linux native is buggy and never works right” that doesn’t mean literally never, it’s more like the emotional never.
There are also people who hate on Proton, because it uses the Windows build and advocate for Linux builds only. They say its bad for Linux, because developers don’t need to understand and care about Linux in the long run anymore. This is not my opinion and I disagree with those statements. So when you say you hate native Linux games, they will downvote you because they disagree with you on that point. As always, there is a truth in all those statements, so I don’t want to discourage anyone for being against Proton.
One thing I want to mention is, that these games on Steam are for the most part proprietary. So having native builds isn’t as effective as having native Open Source builds. The reason we usually want native is, because we can change and adapt issues with Open Source tools and games. But that is not possible with proprietary games. Therefore having them on Proton isn’t losing much on that front.
Yeah that’s a good point. There’s a huge difference between Cities: Skylines and OpenTTD. I feel like those kinds of older style PC games are especially suited to native Linux builds.
I’ve experienced countless times a native Linux game not working because of a dependency issue, an outdated version of some library that’s not in the distribution repositories anymore. And it’s often very hard or impossible to find it.
I would say it happened with over half the native games I’ve tried.So unless it’s a popular game with good support, don’t bother and go with wine.
I can agree that an old and buggy version of a game is no fun. But that is as true of Windows versions as Linux versions.
You seem to have much worse luck when starting linux native games than I though. I have no problem with Factorio, Oxygen Not Included or Kingdoms and Castles which I think are the only linux native games I got installed at the moment.
The thing I find much more frequently is that a game released on GOG doesn’t receive the patches and dlc that the developer release on Steam. I always have to verify that a developer actually support their GOG release as well as Steam before buying.I think I had this issue with xcom 2. I thought it was native Linux but I ended up using a proton version I think due to issues.
Xcom 2 is a strange game. Apparently it’s very popular. I remember buying it specifically because it was a game on a list of ‘best games that run natively in linux’ games without knowing what it was about or anything.
Dam is it a difficult game. I can’t tell if i just suck at it or if it’s actually very difficult. I tried it again and after a stupid snake grabbed one of my people with his tongue through a wall like a bullshit master I got so frustrated I had to put it down
XCOM is pretty famous for its difficulty and the 2013 reboot was famous for being much, much easier than basically all other games in the series, including its eventual sequel. You basically need to accept losses and strategize around eventually losing some of your people and some missions, because you will.
Yes, it’s way more difficult than the first one.
I managed to complete the first one, I forget exactly now but I think I struggled through to somewhere near the end of the second and then had to give up.
It’s an extremely difficult game, yes. I lost to the first mission, then 90% of my team died in the second mission, and I’m like, I’m not particularly strategically gifted, maybe this game isn’t for me ^😂^
It makes a lot of sense that it sadly is that way. Most of the linux gaming work does go into the compatibility layers and then the drivers and software stack is overwhelmingly tested on those compatibility layers due to the lack of demanding native games.
Another issue is that a lot of linux ports are from the original Steam Machine wave that haven’t been updated since. On Steam Deck it’ll automatically use the Proton version in these cases but I don’t think it applies to desktop.
Small tip: press the (i) on the right, next to game settings, and it’ll show what runtime is being used for this game at the bottom.
Bro that’s not a small tip, that’s an epic tip. Makes it so much easier to see what’s actually happening. Ideally there would be that information visible at all times and also in Big Picture Mode, instead of hidden behind a button click in desktop only, but I’ll primarily use it to quickly check compatibility at the time of install. Thanks mate!
Do you have some examples of games? I play native games and games through Proton and do not see these differences as you outline.
I couldn’t get a full list because I was relying on having set a flag forcing a specific version of Proton to identify which games were problematic to jog my memory… Unfortunately this data is local only and was not synced between computers, so it was lost when I changed distro. Just from my limited memory though, I can list some that I distinctly remembered when writing up my post, though it’s many more in reality. It’s also surprisingly hard to see whether a game even has a Linux native version, you usually have to wait for the store page to load and scroll down to compatibility, which is just annoying.
Games that worked well:
- Factorio
- Stardew Valley
- Baba Is You
- All Valve games (TF2, DotA2, etc)
Games that had issues:
- 1001 Spikes
- The Case of the Golden Idol
- Broforce
- Spiritfarer: Farewell Edition
- The Stanley Parable: Ultra Deluxe
- Cook, Serve, Delicious
- Valheim
- A Game About Feeding A Black Hole
- Audiosurf 2
- Keep Talking and Nobody Explodes
- Slay the Princess
- TIS-100
- Cassette Beasts
- Brotato
- Bit.Trip runner
- Don’t starve together
- Unpacking
- While True: Learn
- Fez
- Magicka 2 (controllers not working)
- One Shot (critical gameplay bug right at the end. Had to watch a let’s play to finish it. I messaged the dev who left me on Read)
- Just Shapes & Beats (no sound)
- Tiny Bookshop (no sound)
- HiveSwap (critical gameplay bug right at the end, and savefile bricked, had to watch a let’s play and the dev ignored me) (I’m not a “fan” I swear, please don’t lynch me)
I’m getting tired and I’m sure you get the point. Almost every game in my experience has been unplayable on Linux runtime. I’m glad it’s working well for you though.
Alright, did not expect so many games to be listed. Most oft them are not in my library (but a few are).
Played the original Stanley Parable and do not remember having any technical issues. I plan on playing The Stanley Parable: Ultra Deluxe soon too (just purchased it, noticed there is a good discount on Steam right now). Valve gave it a Steam Deck verified rating and the community rating based on ProtonDB rating is Platinum. Looking at the reports, many play with Proton. Note, I don’t object, just having a look at it.
Yeah in my experience, if it has a Linux native build, it is bad. 90% of the time at least. Of course there’s exceptions, but mostly I try and manually set the Proton version when I play a game the first time. Never have issues with Proton, it’s great.
Though sometimes I forget and run into frustrating issues. Like today actually, I tried to play Magicka 2 with my kid. We only had 30 minutes, and the controllers just weren’t working no matter what I did… It thought every controller was a “steam controller”, so most of the buttons didn’t work at all, because I didn’t have them lol. Couldn’t get past the tutorial. Press the Steam button to use Life energy. Hello, we are using Xbox and Nintendo Switch Pro controllers? Spent the whole time troubleshooting.
Just now when I was writing my list, I was like, no way… Checked the store page. Yep it forget my Compatibility setting between distros, and the Linux native version was the whole problem. Changed it manually to Proton 10 for next time
:/. Works fine now…Ultra deluxe works great as well on Proton. Only problem is that the jump button doesn’t work
:P. Surprisingly my kid likes that game too, which I wasn’t expecting at all.Just a suggestion: Update your post with the list you provided. I feel like lot of people might miss it buried somewhere in the comments, especially if it fills up with more comments over time.
Borderlands 2: you don’t have the borderlands 4 ads you get in the win through proton version but you also can’t play multiplayer with windows users
Psychonauts 1. It’s unplayable using native version, but switching to proton and the whole game just run like normal. Granted this is like a very old game and it might be due to compatibility, and so far it’s the only native game that has this issue.
I’ll compile a list but it’ll take a while because I don’t remember off the top of my head and I don’t have my library in front of me right now
Whoa! Hold up there. It’s “Aboriginal” Linux Games. /s
This joke makes me feel uncomfortable
My apologies. A rose is a rose is a rose after all. It’s okay to mention race or culture without being racist or xenophobic. A silly, stupid quip, nothing more. That being said, I paraphrase Mark Twain who said “Some people will go way out of their way to feel offended”.












