4 ms·
Turns out the best gaming API on Linux is WinAPI. Who woulda thought!
by forrestthewoods 2y ago
Turns out the best gaming API on Linux is WinAPI. Who woulda thought!
- haunter 2y agoSee the famous "Win32 Is the Only Stable ABI on Linux" article https://blog.hiler.eu/win32-the-only-stable-abi/ https://blog.hiler.eu/win32-the-only-stable-abi/ https://news.ycombinator.com/item?id=32471624 https://news.ycombinator.com/item?id=32471624
- forrestthewoods 2y ago> You know how on Windows, you can just download a zip with a program in it, unzip, double click, and the thing runs? Wouldn't it be nice if we could have that on Linux? There's no technical reason we can't, just standard practices that are hostile to this goal. Oh Linux. The inability to trivially target arbitrary versions of glibc is so frustrating. So much of Linux is stuck with terrible patterns from the 80s.
- haunter 2y agoTo more or less this what snap, AppImage, flatpak etc tries to solve. And honestly it works. One part of Steam Deck's success that it was entirely built on an immutable flatpak based distro (Arch)
- trissi1996 2y agoAFAIK Arch is neither flatpack-based nor immutable by default, that's just how valve configured it, or am I missing something since I've used it a few years ago ? Still nicely done on valve's part.
- opan 2y agoArch does not normally use or make you use flatpaks, nor is it immutable. You describe SteamOS, which is based on Arch, but with changes to it. This is more clearing up ambiguity for others reading than a correction, there's a decent chance you knew this already. Fedora Silverblue is a distro which heavily uses flatpaks and is immutable out of the box. I believe this is what Bazzite, a community alternative to SteamOS, is based on.
- haunter 2y agoYes my bad for the wording. I also use Fedora Kinoite on my daily driver Thinkpad.
- forrestthewoods 2y ago> more or less this what snap, AppImage, flatpak etc tries to solve. Yes. Seems really complicated though. It’s a whole lot of machinery and complexity to achieve what should be a very simple zip + double-click. The Linux model is just inherently complex.
- somat 2y agoThe linux model exposes it's complexity to the end user. Because of this the model is usually a lot simpler(the average user is expected to understand it). In the windows world the model is this huge unknowable beast with a facade over it. if you are fine with the facade this works great, but when things go wrong, it is much harder, a soul crushing wall of propriety internal interfaces. that is, it makes the easy things easier and the hard things harder. Don't get me wrong microsoft is one of the good guys here, compared to apple they are a very programmer focused company and try very hard to provide the information needed to do things with the os. There are people who are very good with windows and understand it well, I just never liked all the hidden complexity and am much happier with linux and it's explicit complexity. I have to admit that statement is a bit of a lie, I actually think linux is far to complex and am happier with openbsd, which exposes and expects even more of the end user and is correspondingly much simpler.
- ffgjgf1 2y agomaximizing the amount of complexity just because your current users are capable of dealing it and often no other benefits whatsoever (of course not always) just doesn’t seem like a great strategy.
- j_maffe 2y agoWhy would any designer intentionally maximize complexity? It's one of the core tenants of design to minimize complexity.
- forrestthewoods 2y ago> The linux model exposes it's complexity to the end user. Because of this the model is usually a lot simpler(the average user is expected to understand it). In the windows world the model is this huge unknowable beast with a facade over it. if you are fine with the facade this works great, but when things go wrong, it is much harder, a soul crushing wall of propriety internal interfaces. that is, it makes the easy things easier and the hard things harder. This has not been my experience in the slightest. Supporting “Linux” is radically harder, more complex, more error prone, and more miserable than supporting Windows. YMMV.
- account42 2y agoYou can compile against the oldest glibc you want to support and it will work on newer ones.
- hyperman1 2y agoHow do big binary linux applications deal with it? ldd'ing my chrome, I see it using Ubuntu's /lib/x86_64-linux-gnu/libc.so.6 and even a lot of GTK/Gnome stuff is in there, with Gnome famously providing no backward compatibility guarantees at all.
- MindSpunk 2y agoThey don't. They either just ship half a distro with the app (flatpak, etc) or make a couple builds for different popular distros and call it a day. Linux's userspace ABI compatibility is a joke. Who would want binary software right? Just build it from source! You can make portable binaries if you statically link everything and use MUSL as your libc but this brings in a host of other problems. Dynamic linking is impossible to do completely portable too as the dynamic linker is a part of the distro and the executable bakes an absolute path to it!
- account42 2y agoThis is FUD. Portable Linux distribution has been figured out as early as Loki and it's not all that different from Windows distribution: ship your dependenciens with your application (which is not even close to half a distro if actually care to think about what your dependencies are) instead of just assuming that whatever is on your dev machine will also be on other systems. It's really not that hard.
- wongogue 2y agoIt will be half a distro if they meant alpine.
- account42 2y agoIt's not the best, only the cheapest to port to if you already have a Windows version - at the cost of additional bloat from the abstraction layers added.