The Linux Thread - The Autist's OS of Choice

  • 📧 If you are an employee of a T1 ISP, US datacenter, or related company please get in touch at josh@kiwifarms.net. I have some questions.
  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account
It's not just the GUI toolkit being used and whether or not it gets deprecated, but also how game developers used to "port" their games to Linux in the first place. Our beloved Gaben was the standard bearer for good Linux ports of Valve games, but sadly, not everyone was willing or able to follow his lead.
I have an SDL 2/C++ matrix animation that I wrote about 3 years ago. This isn't that difficult to do; it's actually a fun little coding exercise.

I wrote everything on Linux and then ported it to Windows and used cross-platform libraries. Porting it to run on Windows with MinGW took about a day.
Most of this was dealing with CMake and inconsistencies between GCC and MinGW and how they behave with the newer C++ APIs that I used in some places.

Granted, I am not a C++ expert, and I am a hobbyist. But I am a professional software developer, and it took me about a day to port something trivial and have it work on my GitHub CI build.

Having code built between 2 or 3 operating systems and then 2 consoles is non-trivial, and that is why there are many companies that make their bread and butter porting games between platforms. It just wasn't worth the effort porting to Linux when (at the time) only a small player base would be interested.
If memory serves me right, Linux ports of Windows games were (and still kinda are) crapshoots. The big "gotcha" was making a game engine meant for Windows run well enough on Linux. It's a non-trivial task to port something like REDEngine to Linux, especially at a time when CD Projekt RED was still demonstrably an "indie" developer and wasn't flush with Cyberpunk and Witcher 3 cash. The shortcut taken was running REDEngine through some type of compatibility layer which would then translate the game engine into something Linux could work with. Not too sure on the specifics, but I'd wager that similar issues hamper Baldur's Gate 2's Linux port.
Homegrown translation layers often cause as many issues as they solve.

I would instead build stubs/facades for all the Windows-specific API calls. And then have the code call a stub/facade.
I've done stuff like this in other programming languages for Windows-specific APIs vs *nix ones.

This is major work and quite tedious; if they made sure they always had a working Linux build as they built it, it wouldn't be any issue.
Conversely, Hollow Knight has an excellent Linux-native version. Unlike Witcher 2 and Baldur's Gate 2, the game was created with the Unity engine. Unity exists natively on Linux, so they never had to do all that translation pipeline bullshit. That's on top of the Linux version for Hollow Knight using endemic media rendering pipelines instead of dealing with Media Framework or any of that other horrible Windows nonsense. I haven't yet touched Silksong, but I'm 99.99% sure that it's more of the same for that game: excellent Linux-native version, well-optimised, and the media playback being buttery smooth.
Well, Unity has done all the hard work porting their engine. So any game that is built in Unity will work well.
 
Last edited:
Also had a really funny situation where I installed Heroic so I could play my games from GOG, I download Baldurs Gate 2 and it gives me the option of installing the native Linux version or the Windows version, obviously I pick the Linux version and for some fucking reason it won't play... so I go and install the Windows version instead and it runs like a dream.
Most likely a libSSL issue.
It's this. I messed with it before and the Linux port for the Baldur's Gate Enhanced Editions refused to run for me because it's built off a depreciated version of libSSL. I fixed it by grabbing libssl1.0.0_1.0.2n-1ubuntu5.6_amd64.deb from the apt archive and extracting libssl.so.1.0.0 and libcrypto.so.1.0.0 into the game folder and adding adding code to the start.sh script so it'll look there for those libraries. Kind of a pain in the ass if you're already fine with just running the Windows version through Wine, though as far as I could tell the Linux port runs fine once you get it running.

The Linux port of Undertale has the same issue with the extra problem of being a 32-bit executable that expects the 32-bit version of libraries, so playing the GOG release of it requires manually setting up a script for it find a library path you've placed them in yourself. And the Linux port of RPG Maker MV has several issues because it's built in a web browser framework and comes shipped with a now heavily outdated version of Node-Webkit, so you run into several issues including wit libSSL and Fontconfig unless you manually replace the NW.js within the game folder with the most recent version.
 
Last edited:
...

Linux ports often are broken. The Windows port will run on proton without issue. People bitch and moan about Windows, but one of the best things is backwards compatibility. A program from 30 years ago will often work with no modifications.
I've played Fallout 3 and New Vegas on Linux and I had way less crashes than on Windows 10.
 
Lub me Linux Mint, probably won’t use anything else ever unless I get a brand new desktop computer to try a different distro on.
Try them in virtual machines before putting them on a new computer.
I've played Fallout 3 and New Vegas on Linux and I had way less crashes than on Windows 10.
I think this sort of thing will ring more true with time.
 
Try getting the Unreal / UT99 Linux port working today. I doubt it is possible.
Unreal is a pretty bad example because both Windows and Linux rely on fanproject installers and patches. Better example is probably something like Sid Meier's Alpha Centauri but that's so old and janky even Windows struggles with it and supposedly the Linux native port was shit at the time.

Related; Alpha Centauri is kind of a white whale for me, I've never managed to get it playable in Proton. At some point I'm gonna break down and run it in a VM
 
At least SuperTuxKart is still perfectly usable.
I'm noticing something, though...

1782047326116.webp

Every. Single. Time.
 
A personal Linux milestone for me that's actually pretty mundane with hindsight but it's something that gave me minor palpitations when I first started this lifelong and deeply autistic journey with Linux 15 years ago: I finally got over my fear of /etc/fstab. Admittedly, it was much easier back when it was common practice to just use the raw /dev/sdaX partition labeling. Once UUIDs got into the picture and I made the mistake of setting the PARTUUID or the device ID for the actual UUID more than once, I was like "God fucking help me." After mucking about with mounts and permissions, I had sudo mount -a succeed on the first try! First time that ever happened to me, period.
 
Buy a motherboard with a decent BIOS.
I’m not aware of fancy shmancy motherboards dealing with load order any differently. Sounds like a lot of work for something that’s easily handled by the OS.

Or are you going through life with a system where if you randomly plug in or remove an unused drive the entire thing becomes unbootable because the mount point for your boot drive now points to your porn drive?
 
If the AMD card is clocking itself down (you will see the clocks randomly jump around), it is worth reading this
Okay so not trying to sound like a whiny bitch, but is there a reason you have to jump through all these hoops? I find it weird that I have to edit bootup files just to control clock speed when you can do that on Windows with something like msi afterburner.

I get that this is a different operating, but it just seems like everything requires more steps do go through. I'm genuinely curious.
 
I've never worked out how to fuck about with fstab yet so I literally just enter my password to mount my drives and just put my PC in sleep instead so it remembers the drives when I boot back on. The added bonus is that I go from literally silent and 'off' to the desktop in like 2 seconds.

It's the year of our lord 2026 and there isn't a native fucking option in any distro to go "hey, this drive that's installed in your fucking pc? click this button and it's automatically mounted on boot" Even shit like KDE that has the option in settings doesn't result in it fucking applying.

This is shit that should have been sorted out 10-15 fucking years ago. Under NO circumstances should the casual user be having to open the terminal.
 
Okay so not trying to sound like a whiny bitch, but is there a reason you have to jump through all these hoops? I find it weird that I have to edit bootup files just to control clock speed when you can do that on Windows with something like msi afterburner.

I get that this is a different operating, but it just seems like everything requires more steps do go through. I'm genuinely curious.
I would have thought this was something that the OS would do automatically.
However CoreCTRL and similar apps allow you the user to set clocks, voltages, fan speeds, etc.
In theory you could fry your card, so this is why you have to set the bits to be overridden as a kernel parameter and set a policy on what users can actually change the GPU settings.
You have to keep in mind that Windows (desktop versions) is set up so that one person is using the machine at the time; you don't want the user you've created to run, say, like a web service to be able to change the GPU settings on the computer.


Under NO circumstances should the casual user be having to open the terminal.
The casual user isn't installing extra drives. Linux/Unix in general is designed underneath to be a multi-user system that runs on a big rack the size of a fucking fridge.
You have to view every design decision of the OS, making the assumption that it is a multi-user system and most of the people that were originally developing it either worked in a university or an big corpo enterprise usage.

I personally wouldn't trust a GUI tool that was touching my fstab. GUI tools for system administration are dangerous IMO and should not be trusted.
 
Last edited:
I've never worked out how to fuck about with fstab yet so I literally just enter my password to mount my drives and just put my PC in sleep instead so it remembers the drives when I boot back on. The added bonus is that I go from literally silent and 'off' to the desktop in like 2 seconds.

It's the year of our lord 2026 and there isn't a native fucking option in any distro to go "hey, this drive that's installed in your fucking pc? click this button and it's automatically mounted on boot" Even shit like KDE that has the option in settings doesn't result in it fucking applying.

This is shit that should have been sorted out 10-15 fucking years ago. Under NO circumstances should the casual user be having to open the terminal.
There is an option that ships with every distro, it's called /etc/fstab.
It's even documented at the top when you open it, arch wiki or LLM is your friend otherwise. Use blkid to grab robust UUID instead of praying that devices get enumerated in same order each boot. I learned my lesson 20 years ago when my Windows XP PC crashed and rebooted into broken bootloader because boot drive decided to reset itself during game and second drive took over.
 
Back
Top Bottom