I’m asking because I just bought Cronos: The New Dawn on Steam because it has a native Linux port. To be fair, I would have bought it at some point anyway but I got excited when I saw it had a Linux port. The game is missing features that the Windows version has, It runs horribly at any setting other than very low. I think they only bothered testing for the SteamDeck. But if that’s the case, why does it support FSR 4.0? To be fair, the Windows version doesn’t run amazing either if you enable ray tracing but it still performs way better than the Linux port. Why do devs keep doing this? I’ve bought many Linux games that have problems that the Windows versions don’t have. Why even make a port if you’re not going to bother testing or optimizing it?
From the sole developer responsible for Factorio’s Linux-native port: https://www.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.
Many developers will take one look at the Windows market share and decide that it is not worth the trouble to support other platforms. Also, with the meteoric rise of the Steam Deck and Proton, it is easier than ever for game developers to ignore Linux support because Valve does some black magic that lets their game run anyway.
The list of Linux-first games is so short it’s not even a factor. It’s very difficult to justify the additional effort of implementing a platform that serves exclusively the playerbase with a ~3% market share, especially when a different method exists to serve that same playerbase that works just as well and also serves the 90%+ with no additional effort.
The article I linked also contains an explanation as to why GNOME’s decision to drop server-side decorations is fucking stupid.
It’s very difficult to justify the additional effort of implementing a platform that serves exclusively the playerbase with a ~3% market share
And yet there are many games that have a native Mac port and no native Linux port, such as the recently released Ball Pit: https://store.steampowered.com/app/2062430/BALL_x_PIT/
How is it to justify that a platform with an even smaller install base gets the native port? Two ports, actually, because ARM and Intel are both natively supported. Why aren’t Mac users expected to use Whisky to play Windows games but Linux users are expected to rely on Proton’s battery munching API translation? Apple is even worse in breaking compatibility, so game developer cannot even expect their Mac games to still run in five years.
The problem isn’t “the playerbase with a ~3% market share” because 3% is still millions upon millions users in absolute numbers given the massive PC install base. According to https://www.theverge.com/pc-gaming/618709/steam-deck-3-year-anniversary-handheld-gaming-shipments-idc there were 6 million Steam Decks sold last February and Linux is still rising in Steam’s Hardware Survey. According to a bit of googling, Steam hat 1.5% Linux users that month, a third of that using SteamOS.
I’m too lazy right now to extrapolate even a rough ballpark of the overall Linux user base on Steam but even if we assume that a big number of Steam Deck buyers doesn’t use their device, I don’t think a user base north of 10 million is too far fetched.
So the problem isn’t the 3% number, it’s the developer’s / publisher’s attitude to expect that Proton just works without any QA and that Mac users are somehow valuable while the Linux peasants are not.
I have a question (an honest one, not implying anything). Given that most games work perfectly on Proton, why does a Linux port excite you?
It can be beneficial in terms of performance if done right. The native Linux build of Baldur’s Gate 3 runs considerably better than the Windows version via Proton, even though the Proton version already runs better than it runs on Windows natively.
Good question. It means to me that developers thought that Linux as a platform was worth targeting. One could conclude, the more Linux ports we see, then more people must be using Linux. It’s my dream for us not to be treated as second class citizens where computer operating systems are concerned.
It’s a baby step thing. They want to develop for Linux but so far it’s about 3% of steam users that use it. So when a studio does its testing/optimizing they focus on the platform their player base is using most.
Obviously there’s a negative feedback loop here. Players avoid Linux because of issues which causes devs to neglect it because of player numbers which causes issues in the game…
Steam is pushing Linux currently but it’s hard to overcome the dominant position windows and consoles have. We’ll get there though.
I know this is gonna dig deep, but consider this…
Linux just barely broke 3% share. As a company, whose goal is to make money, would you focus on what 97% of your base uses, or the 3%?
Further more, the company needs to spend QC resources for 1-2 versions of Windows, vs the multitude of Linux distros, but let’s say you can get a passable port, may not be the best but for minimal effort you can sell to a handful of that 3%, the business thinks “why not?”
In the grand scheme of things, native Linix ports is still low on the priority list for a company focused on making money
Linux just barely broke 3% share. As a company, whose goal is to make money, would you focus on what 97% of your base uses, or the 3%?
If your game is mobile friendly, treating Steam Deck not as an afterthought may be beneficial. Proton is not perfect. It has bugs, it loads a whole fake Windows environment into memory and API translation costs CPU and battery.
Further more, the company needs to spend QC resources for 1-2 versions of Windows, vs the multitude of Linux distros
That’s completely wrong. For games, the developer only needs to target whatever the latest Steam Linux Runtime is. It’s 100% identical across all distributions where the Linux version of Steam runs. That’s its entire point. Steam Linux Runtime is a more stable target than playing catch up with yearly Proton releases.
A lot of the “native ports” are done by a third party studio, and they don’t maintain it. Because of this, many games perform better through proton than natively.
Also save data is not shared between the versions, so if you’ve already sunk a lot of time into playing the buggy native port, switching to proton requires you to start over.
Also save data is not shared between the versions, so if you’ve already sunk a lot of time into playing the buggy native port, switching to proton requires you to start over.
To mess this up one as to be a special kind of stupid. It literally only requires to set up a few paths on the SteamWorks web UI: https://partner.steamgames.com/doc/features/cloud?l=english#steam_auto-cloud
Ya, and with Proton working so well, I’d rather focus on Windows, then at most work with Valve on making sure the game runs well with Proton. Way less work.
Unreal Engine’s Linux builds are very neglected compared to Windows. Windows gets DX12 which is the main rendering API for the engine, Vulkan (which the native Linux version uses, also available on Windows) is a complete after-thought unless you’re on Android where it is the main target.
Main Linux target for UE is Red Hat Enterprise Linux for movie CGI. The “we want open platforms” company don’t care about Linux gaming.
Specifically hates linux actually, Tim Sweeny is a huge Windows stan
Simon the Sorcerer Origins was recently released and their Linux version didn’t even run. Their run script contained just two lines and both of them were plain wrong. And after I fixed them the controller didn’t work.
Leave a bad review then.
I did.
My partner has had a really bad time trying to run cronos. We thought it was initially Linux problems, it’s the first game on her new rig. Turns out the game just has those problems on windows
The question is backwards: why are you not natively developing games for linux distros to see all the pitfalls developers deal with on a shoestring budget?
Easy to ask a question you do not traverse, harder to pave an easier road for everyone else.Because they live in a fantasy world where optimizing a game for Windows and pouring countless of hours of QA into the Windows version makes a merely cross-compiled Linux version magically great as well because “PC is PC, right?”
Windows dominated desktop development for years, and Macs did the same in the creative world. So a lot of developers naturally know those systems best. Linux has always had the problem of fragmentation, different distros and different library versions all pulling in slightly different directions, which makes it harder to target reliably. That’s why things like the Steam Deck or Ubuntu LTS matter so much, because they give developers a stable baseline instead of chasing down tickets caused by someone building with the wrong version.
Tools like containers and Flatpak have improved the situation, but the underlying complexity is still there. When a studio doesn’t have the time, budget or experience to handle that, the Linux port is usually where the cracks show. The ones that tend to get it right are teams with stronger engineering depth, which is why you often see the better native ports coming from studios behind RPGs and sims where crossplatform work is already part of their pipeline.
IMO: additional CD/CI pipeline and according QA, paired with the technological regression we’ve seen in real time graphics over the past few years and videogames being developed in sweatshops with a carbon-nanofibre budget, while ads get all the budget is a poor foundation in general.
Why commit to anything more than the bare minimum, when you need to desperately try to reach that while the circumstances are against you?
Same reason why a nightmare for me is someone asking me to make an app I’m working work on Windows.
First I don’t have a windows machine. IDK where you get the iso any more. I think RKE2 support windows worker nodes but no clue what that really means. I don’t even know what that install would look like. After solving that I have to figure out how to build images for windows. No idea there. Then how do I add those tests to my pipelines, which I assume meaning adding those windows worker nodes to my test cluster, which now means I have to see how to quarantine them or somehow get the security suit working on them. Does my networking stack work on it?
After all that I can then ask, how do I compile my apps specific code and try and run it there. How do I do that for Windows? I have no real freaking clue. I think rust and python can pull most stuff fine but sometimes my depencies build with Linux in mind and don’t work off the bat. Should I make a Windows dual boot to build/dev/test? Will my dev tools work on it?









