Helios
Member
This gets brought up every once in a while , especially when people talk about Microsoft's attitude towards the PC market. For gamers, there has always been a vicious cycle on PC in terms of OS. They want the freedom that Linux brings to the table but they are not willing to switch to Linux because there aren't enough games available. At the same time developers don't want to add Linux support because of it's low userbase. This cycle has been going on for many, many years.
A few days ago Ben Golus (ex-game developer for Uber Entertainment most known for Planetary Annihilation and Monday Night Combat) started a twitter thread in response to Ethan Lee's joke(or shitpost as he says) claiming that game devs consider Linux a niche platform and yet they support devices like Nvidia Shield and Amazon Fire TV
A few days ago Ben Golus (ex-game developer for Uber Entertainment most known for Planetary Annihilation and Monday Night Combat) started a twitter thread in response to Ethan Lee's joke(or shitpost as he says) claiming that game devs consider Linux a niche platform and yet they support devices like Nvidia Shield and Amazon Fire TV
Jonathan Blow (Game developer of Braid and The Witness) also gave his thoughts on the matterWe shipped Planetary Annihilation on Win, Mac, and Linux. Linux uses we're a big vocal part of the Kickstarter and forums. In the end they accounted for <0.1% of sales but >20% of auto reported crashes and support tickets (most gfx driver related). Would totally skip Linux.
So yes, fragmentation is still totally an issue.
We eventually laid out a guide with known good versions of Linux and graphics drivers, but it didn't matter. Part of the allure of Linux is the customizability, so few actually stuck to it, and generally wanted to run the game on older hardware we didn't support.
By the end of my time at Uber I believe very nearly 100% of both crashes and support tickets actually for the game were still Linux related, even after significantly engineering time. Way more Linux specific time put into that project than any other platform.
And again, that was for a tiny fraction of the users. Adding Linux support ended up likely costing Uber hundreds of thousands of dollars for a few hundred dollars in sales revenue.
As a follow up: The game came out in 2014 Runs OpenGL 3.0 on all platforms I didn't handle support, I do VFX I no longer work for Uber (who also no longer run PA) I'm not directly involved with PA now, and haven't been for many years [Planetary Annihilation] will continue to support Linux!
This also wasn't a condemnation of Linux itself, or its community, or really even in the volume of (generally very helpful!) support tickets. It's about the financial realities of supporting a platform with few users and high fragmentation.
There's a Hacker News thread about this tweet, and the amount of denial and wishful thinking in that thread is not any less than it would have been 10 years ago. So I predict that game development won't ever get better on Linux barring some asteroid-strike kind of event.
But it got me thinking about what it would take to ship reliable software on Linux. My understanding is that Linus understands the importance of interface stability and that the kernel itself is pretty stable; the problem is the giant mound of userspace garbage that is all dynamically whimmed.
If you can make an exe that doesn't use libc, and that talks to the kernel itself, you could probably ship something that works everywhere. Certain tasks like opening a window would be much more annoying, but you could certainly program the minimal amount of functionality you need, and after that it's probably nicer than using the actual libraries you're supposed to use.
I have no idea how to talk to a hardware-accelerated 3D graphics driver under these conditions, but maybe that just means software rendering is the thing on Linux.
All of this seems super hard / annoying, but if you are making a new programming language, the least you can do is keep these things in mind and not build your structure on the currently-existing userspace shantytown.
On my programming livestreams, once in a while people ask what I would do if I made a new operating system, and I don't totally know, but I did say you could do a lot of good with a relatively small amount of work just by using the Linux kernel and deleting all of userspace and starting over, no compatibility whatsoever, to build a system that makes sense in 2020 and minimizes complexity in an appropriately hygienic way.
"Makes sense in 2020" probably means you can run a binary without "containers" or whatever else the kids are inventing these days in order to overcomplicate the job that static linking already did in the 1960s.
The other thing I should mention ... for people who think "Linux just had an especially buggy couple of years, it just needs more time in its now-stable state and it will take over on the desktop and everyone will love it," look, that is what people have been saying since 1992; for a long time the reason Linux didn't take over was supposedly because evil Microsoft was pulling dirty tricks to prevent it.
But Microsoft just spent TEN YEARS seemingly doing everything they could to make their desktop OS unusable, and hostile for shipping software, and many other bad things, and Linux is still in the same relative position it was before that time (probably declining, actually?)
What you see today is the end-state of what shipping software looks like on an ecosystem built the way Linux userspace is built. It ain't going to improve unless the system itself changes its philosophy in a fundamental way.
I know I am going to get tons of mild Twitter harassment from Linux fans for saying this stuff, but look ... I wantto switch to Linux or something like it. ...
The Windows train is obviously going to a bad place. But, you know, I need to be able to write software that I can ship to people. I need to be able to work on a stable machine, and so forth. Make that possible and I will happily switch, and quickly.
Last edited: