Monday, 4 November 2024

Daily Driving Linux for Gaming - My experience

 It's been so long since I had a tech thing I thought worth of documenting, maybe I should do a tik tok about it, would make me feel less old doing so, but while many might TikTok this journey, I prefer the depth of a written post for now, so here we are.

Intro - why? (you can probably skip this part)

So Windows has been pissing me off for the last checks notes 10 years, Windows 7 was perfect I'd gladly lived in a world where Win 7 got updated for ever instead of of the debacle 8 was. Win 10 started the trend of trying to prove that my computer wasn't indeed mine, it belongs to Microsoft, I just paid for the privilege of using it. Ads enabled by default, which you can disable, but then a windows update will "accidentally" re-enable; the constant harvesting of my usage statistics/data; trying constantly to force Onedrive down my throat; installing apps without my knowledge or permission; the list goes on.

Windows even nagged me with full-screen ads for Win 11—only to tell me my rig was ‘not compatible.

And don't even get me started on the whole copilot and AI powered spyware win 11 comes with, that wasn't the feather that broke the camel's back, that was the artillery strike that left a smoking crater where the camel was.

With all these things combined, I've decided to give gaming on Linux another try, after all I've been keeping my eye on r/linux_gaming so things have been looking up

The Plan


  1. Install Linux on the "Spare Parts PC" I have in my office.
  2. Try to play my current games on it
  3. use it for a while until the next World of Warcraft expansion drops to see if I have any issue (yes, this was the most important step ๐Ÿ˜)
  4. Purge the main rig from windows and install Linux on it (dual boot is for cowards).
I use the Office PC a little bit every day, so any long term degradation and issues with updates would have been noted in the months leading to the expansion prepatch day (for those who don't know, the prepatch is when the game goes up on Major version and so any incompatibility issues will arise then).
This plan had a flaw however, the Office PC has a very old AMD GPU while my main gaming rig has some flavour of a RTX 2070 (which is Nvidia), a risk I was willing to take.

Execution

It's been a while since I had Linux as main driver, my last attempt at gaming in Linux was in 2018 and at work I've been using Macbooks since 2013 and deeming them "Unixlike enough" to bother replacing the OS on them, so I found a bit distressing trying to figure out which distro I should be using, so I went to the "old reliable" of Ubuntu and installed 22.04.
The installation was pretty smooth, followed by installing Steam and Discord which I did from the app manager. 
I had read that the best way to get Blizzard games installed was installing the B.net app via Lutris, so I went to install that but I stumbled on a comment saying Lutris on the app manager was several versions out of date, so I went to their site and grabbed the installer there, no issue.
While I was fetching things I also got ZSH for the terminal and my favourite theme to make it easier to use, but that's a tangent.
After installing Lutris, installing Bnet had a small hiccup on the installation steps which took me like 2 tries to realise I hadn't read the instructions on screen (remember the most important rule in IT: read the fucking screen), but after that I was amazed on how seamlessly everything went. Installing games directly from B.net and everything just worked. Back in 2018 I had been unable to get Overwatch working and it was a major issue since my wife loves that game and I love playing games with her, now OW2 just worked.
I even added the bnet app the the startup applications, I was happy that Lutris allowed us to start the apps without starting Lutris itself first (which was my expectation).
Then I installed the games I had been playing at the time on Steam, a few notable entries:
  • Hades II because it was an early access game I was expecting issues, but none were found.
  • Manor Lords had came out the day before and I got it in a spur of the moment buy, it just worked, was not expecting.
  • Helldivers 2 didn't work it threw a GPU error so bad it crashed the whole PC! ๐Ÿ˜ฑ
To be honest I hadn't been playing Helldivers 2 for a while as the game stopped being fun with the constant nerfs, I searched my issue for a while and concluded it was an AMD specific issue that people on Windows were also experiencing with that I decided to move and hope they patch the game and try it later or try it on the other GPU, but I gonna be honest, I never got around it I had stopped enjoying the game before I set myself on this path so I just can't bother.

I found a really weird bug though, the office pc connects to the same monitor I use for work, I discovered if I had wow+bnet running on office pc, but then on the monitor, swapped the input (in the input select, I do not mean swap cables) so I could see what laptop was doing, when I swapped back, the game would have closed ๐Ÿคจ.  I discovered this by accident as my use cases don't involve swapping monitor input that often, but it's really odd.

For weeks I was pretty satisfied with this, I would play games for a bit on the office pc and everything was great, I even did a twitch stream and everything worked fine (except for HD2, I found the issue on stream ๐Ÿ˜…).

Until one day...

One day the Bnet app just stopped launching. No error, just nothing. I found the logs from Lutris app, searching for that error didn't turn up much, people with similar issues years ago, some solutions included swapping the wine version to a newer one at the time which is now older than what I was using, all in that vein of not applicable.
I set B.net to be launched from Steam with Proton instead, that worked great, "small price to pay" I thought and moved on with my life, the office pc has been like that since.

Eventually I found an issue with Bluetooth headsets, I could not for the life of me pair one of my Airpods to the office pc - even when I used a USB dongle that I had used to pair the same ones to my (still) windows pc. Another BT headset I had laying around (PCX 550) had a bit of a hard time connecting, it would pair, often connect but not register as a sound device, requiring several bluetooth service restarts via the command line for it to work.
Googling around the issue I found some comments saying that 22.04 didn't have support for the faster/newer BT protocol my Airpods used, it came pre installed with 23.x though. It had instructions to install said dependencies, but I followed them to the same result. With this information in mind I decided I was going to try a newer version of Ubuntu on the main rig when time came.
And time came.

Going all in

By the time the prepatch came out and I verified absolutely no issues with it ❤️ Ubuntu 24.04 LTS was out, so I burned that into a bootable thumb drive and set to turn my main gaming rig into a Linux machine.
Before installing I did the try it thing  and checked that I could in fact pair my Airpods and they worked flawlessly on 24.04 - the next obvious step was to purge all of my drives and install it, what could go wrong?

I understand that I don't understand several things about the Linux ecosystem, things like Appimages, flatpacks and Snaps are new to me as they didn't exist last I daily drove Linux; there are things I don't know if I should complain about Ubuntu or Gnome; while going Ubuntu on my main rig went pretty much as I expected given the Office PC's experience, I have some critiques:
  • On 24.04 you cannot install a .deb file from the GUI by double clicking on it like you could before, I had to install another installer for that. Why? 
  • They changed the way the icons for the Dock are fetch, so most of my apps now have this default cogwheel icon, while I understand I can make a .desktop file for them and point for the icon, it's just fucking stupid, it is working fine on 22.04 why make it worse? If there was a change needed there to make it better why not use the old way as fallback?  This is a "we hate our users" kind of change.
  • Why do all the Appimages [that I use] need the "--no-sandbox" argument or they fail silently? 
    • Also, why so many things silently fail?
  • What's the deal with permissions and Snaps? I have some comics I read occasionally on a different drive (not an extarnal drive, just a slow high capacity one to store media), and I couldn't open anything with OpenComic or YACReader when installed via Snaps, this looks like a design decision, it's the kind of thing that steers people away from Linux.

Unexpected issues

On 24.04 I'm having a few fun little issues with World of Warcraft which still don't manifest on 22.04, such as the Dock and the taskbar on top deciding they should be over the game 

Note the dock on top of the game, and the annoying cogwheel icons.

Sometimes the place where the cursor is and the place the game registers it will differ by a several vertical pixels, you can tell this is happening when you're trying to click something and you click what's above it instead, both these problems however have the same solution, which is going into the graphical settings of the game, changing the resolution to "default" and pressing apply.

There's a constant focus issue where I launch the game and try to click stuff on it, but it instead brings to focus the apps bellow it on that position, I just started throwing the game to a different desktop and minimising the bnet launcher.

I got this ROG Mouse with a joystick on the thumb, I have it configured to be the arrow keys and I use it in a variety of games as such. However when I use it on WoW I get massive frame drop for a second, usually only the first time I do it. Can't figure out why, but I also can't change the joystick functions because the ROG software to change it doesn't work on Linux obviously, and Wine doesn't forward USB connections which is annoying, the only solution would be to run windows on a VM just to use this particular software, CBA.

If I close discord "to taskbar" meaning that it's still running, I have the icon the taskbar saying it's running, then I click the discord icon on the dock (which will have the little dot telling me about a notification), then I'll get a second discord instance instead of opening the one still running ๐Ÿคก

I did not expect the Nvidia drivers to be so behind on Ubuntu, which led me to manually downloading more recent one from Nvidia and installing them - which is fine. However, every time there's a big update my drivers get fucked and I loose graphics on restart, forcing me into terminal mode where I'll go in and reinstall the drivers from my downloads folder, I guess I'm glad for that terminal only installer.


Speaking of breaking the GUI, I tried to install a fancy video editor and it told me I was missing some sound related libs, so I go into terminal and start installing them, one in particular said it was satisfied by two packages and I had to pick one, so I did the smart thing and picked the one on the top of the list without any research on the matter obviously.  Halfway through the installation my screen goes black and stays that way. Restarting didn't help. I had to press F2 to force it into command line mode and after trying many things (and yes purging those packages was the fist thing I did), the only way I got my GUI back was doing `sudo apt-get install --reinstall ubuntu-desktop`, which also removed most of my apps. Luckily after reinstalling the apps they got their configs back from $home and even their icons were placed correctly in the Dock. This little side-quest highlights something I love and hate about Linux - your system is yours and you can do whatever you want, including fuck it up. However it can be so easy to fuck it up.

Final weird issue, for the longest time I couldn't use "´~รง^" and other characters from my native language, this was resolved this week or so by some update I didn't notice.

Conclusion

I'm likely not quitting Linux, these issues I faced have been annoying but not game breaking, in fact I didn't go into detail how pretty much every other game I threw at it just worked. Either through Heroic Launcher or through "Adding Non-Steam game" to steam I was even able to try some weird indie stuff from itch.io and it was rare that it took me more than one try to get stuff running. For example, in Darkest Dungeon 2 I had to restart the game after setting it to window mode.
But seeing me deal with these annoying little issues makes my wife not very keen in abandoning windows with me once win10 runs out of security updates next year.
Next I'm gonna give Bazzite a go, maybe I can get good results there.