« So as usual there is some controversy about supporting Linux (and macOS for that matter) if you’re a game dev. I am a game dev and our current game Smith and Winston support Windows, Linux and macOS. So how do I as a lone coder in a team of two support three platforms and is it all easy and free? »
« By forcing the game through different compilers (Visual C++, Clang and GCC) you find different code bugs (leave the warnings on max). By forcing the runtime to use different memory allocators, threading libraries and rendering technologies you find different runtime bugs. This makes your code way more stable on every platform. Even if you never deploy your code to a non windows platform just running it on Linux or macOS will expose crashes instantly that rarely appear on Windows. So delivering a quality product on the dominant platform is easier if your support the minor platforms as well.
Starting with Windows, Linux and macOS makes porting to XBox One, PS4 and Switch a LOT easier. There will be a clear separation between common and platform specific. Maybe you’ll never port to those platforms but if you do you’ll be ready. »
Ce 2ème paragraphe me rappelle ce que disait déjà Tim Besset chez Boiling Steam (https://links.nekoblog.org/?u6PxRw
) et ça me rappelle aussi un long post sur un topic des forums Steam de D:OS2 (https://links.nekoblog.org/?3nMPlA
Et accessoirement, ça me rappelle aussi le mixage audio. Je suis pas ingé son, mais à une époque où je m'intéressais au sujet, il était pas rare de lire que faire en sorte que ses mix sonnent bien sur tout un tas de système audio différents a tendance à les améliorer qualitativement
« 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 *want* to 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. »
« One last thing to say here. If you are motivated to improve Linux and want to make it fundamentally better, now is the time to do that -- if you don't think [Windows Subsystem for Linux] is the first E of an [Embrace, extend, and extinguish] attack (in actual effect if not yet in intent), you're more trusting of corporations than I.
This means you're now competing with Microsoft on general experience to avoid the other two Es. Seems hard. Note that you can't tell if it's an actual attack when you see the second E because that happens naturally anyway. By the time you get to the third E, it's too late.
(I don't know how exactly the third E would happen against a free operating system, but it's not my job to think single-mindedly about that for years.) Anyway. Some competition here would be good, is all I am saying. »