Puget Systems print logo

https://www.pugetsystems.com

Read this article at https://www.pugetsystems.com/guides/1773
Jon Allman (Support Technician Lead)

My Journey into Gaming on Linux

Written on May 26, 2020 by Jon Allman
Share:

To the folks that know me, it’s no secret that I’m not a fan of Windows 10. Microsoft has made a number of decisions leading towards gathering more data and controlling the overall user experience. There’s enough in those statements to unpack into an entire blog post (read: rant) on its own, but that’s not the focus here.

Considering Linux

I was getting to the point that I wanted to upgrade my system (Z87 board with an i7-4770k) with current-gen hardware, and I didn’t really want to try to wrestle with a lack of Windows 7 driver support on the new hardware. That coupled with my general disdain for Windows 10, led me to decide to take the plunge into using a Linux-based OS as my primary operating system.

I’ve avoided using Linux for a long time because my primary use for my home systems is for gaming, and I’ve known about the struggles with getting Windows games to run in alternative OS’s. However, after seeing the release of Proton for Steam, and a general uptick in industry interest in supporting Linux, I was feeling pretty optimistic. While I do enjoy solving technical challenges, I don’t really want to spend hours tweaking settings in my off-time in order to get games running.

So I purchased and built my new system (X570 board with a 3700X, a couple of 2TB NVMe drives, and I reused my 1080 Ti), and took the plunge! I decided on Manjaro because it looked easy to get into and game-friendly. I had some initial struggles with getting things set up, but one of the great things about using Linux was being able to find the answers to my questions online pretty quickly and easily. That’s not to say it’s easier than finding answers online for Windows issues, but there’s a lot fewer generic answers like, “Update your drivers, run SFC, and if that doesn’t work, Reset your PC”. (By the way, those DO often fix problems, but when I’m searching online, I’m looking for options that I don’t already know about!)

Installing Steam

So then I installed Steam and was thinking, “I’m all set to start playing my entire Steam library through Proton!” Well, not quite. I found that by default, a lot of my games had their “Install” button grayed out. What gives? It turns out “Steam Play” (Which includes, but is not limited to Proton), is by default only enabled for the titles it has been tested & vetted with, and to make it available for all titles, you must enable the “Enable Steam Play for all other titles” setting. OK, no big deal, EXCEPT for the fact that once you do that, all of the not-officially-supported games get dumped into the same library category as officially-supported games. It’s a pretty minor thing overall, but it would be nice to have separate categories for games with a native Linux client, official Proton support, and non-official support.

Then I was finally ready to play! So, how well did it work? Pretty darn well! I was impressed with how easy it was to get playing once I had figured out the “Enable Steam Play for all other titles” thing. At the time, I was playing Outward and Remnant: From the Ashes with friends, and I was concerned that we were going to run into issues connecting to each other, but we didn’t experience any network issues at all. I occasionally ran into a texture not loading right, or a particular graphical effect not working, but they were usually minor issues, and could be resolved by tweaking the in-game graphics options.

Eventually, however, I ran into an issue that I wasn’t going to be able to work around. I am a fan of Escape from Tarkov, and the developer had recently implemented the Battleye anti-cheat service. Battleye does have support for games with a native Linux client, but not through Proton. If I wanted to keep playing EFT (answer: YES!), I was going to need a Windows installation. Crap!

Left is 'Steam play for all other titles' disabled, and Linux-compatible filter off. Middle is 'Steam play for all other titles' disabled, and Linux-compatible filter on. Right is 'Steam play for all other titles' enabled, and Linux filter-compatible on.

Going Dual Boot

When I realized that I was going to need to install Windows 10 after all, I took the easy way out: I installed it onto my secondary NVMe drive, and let GRUB handle distinguishing between the two OS’s. This added the minor inconvenience of being prompted for an OS on boot, but that comes with the territory of dual-boot systems.

Over time, I found myself booting into my Manjaro installation less and less frequently, and just living inside of Windows all the time. One reason for this was familiarity, but another was that I discovered even though games ran well enough through Proton, the performance was always better running in Windows natively. I don’t have any hard numbers or benchmarks, but it was noticeable enough that I drifted away from actually using Manjaro.

I used this dual-boot setup for a few months, but it was bothering me that I wasn’t really getting much benefit from my two NVMe drives, because I was hardly touching one of them at all. Eventually, the COVID-19 situation had me working from home, which quickly led me to wanting to reinstall Windows. When I’m doing my work as a Support Technician, I often find myself making a mess of my OS! I’m constantly downloading & installing random applications and drivers (some of which don’t belong on my system). It’s not an unrecoverable state, but I’m the kind of person who likes clean installations over cleaning installations.

Making a VM

So I was considering my options, (Do I wipe both installs since I’m not really using Manjaro anymore? Do I just wipe Windows, and if I do, am I going to find myself wanting to wipe again in a couple months?) when I stumbled upon the wonderful world of PCI pass through.

Essentially, this method promises “near-native performance” in a VM by dedicating a graphics card for the exclusive use by the VM. All I needed to get going was a second video card! I ordered a passively-cooled (no fan) GT 1030, and got started.

It took probably about an hour after getting started on the setup before I was loading up my new VM with my primary GPU passed through to it. It wasn’t too difficult because I was just following along with guides I found online. I did have a bit of a scare when I got an error message about my system not supporting IOMMU, but then I realized that it was simply disabled within my BIOS. *phew*

I loaded up one of my latest obsessions, Mount & Blade 2: Bannerlord, and was absolutely floored by how well it ran! I never thought that gaming through a VM could be this smooth. The one major issue I came across was audio popping & crackling due to latency. This has been something on my mind due to support requests, so I knew exactly what the problem was. Instead of adding my USB DAC as a device to the VM, I added the entire USB controller, which immediately resolved the latency issue.

After getting Windows all set up, I simply cloned it over to a new VM, and now I’ve got a “work” VM and a “play” VM. All of that is stored on my Linux NVMe drive, and my secondary drive is where I install my games, so that if I decide to wipe out a VM, then I don’t have to re-download all of my games.

Conclusion

Overall, I’m very happy with my new setup, and I really feel like I’ve got the best of both worlds between Linux and Windows. I have heard of issues with certain anti-cheat services absolutely not functioning when running inside of a VM, but that hasn’t been a problem for me (so far). I’m currently having a bit of trouble with network shares between other systems on my LAN, but I found that I’m able to connect to them via IP, but not by hostname. I’m sure that I can fix this too, but it’s easy enough to work around for now.

I hope you enjoyed reading about my journey, and I hope that it inspires you to try something new!

Tags: Linux, Windows 10, virtual machine
MicahK555

I recently just switched to linux a few weeks ago, and I chose the manjaro distribution too (XFCE). I've definitely had some issues, and to be honest it's been kind of rough. I feel like I spend half my time troubleshooting, but so far I have been sticking with it. I completely related to your sentence "While I do enjoy solving technical challenges, I don’t really want to spend hours tweaking settings in my off-time in order to get games running." because that has totally been my experience, lol. The forums have definitely been my friend, and I do have a windows OS running through vitrualbox, but to be honest I don't really use it. Although there are some games and features of games I can't use on linux thanks to anti-cheats and proton not playing well together, but right now I'm just living without (I don't have an accessible second pcie slot for a second graphics card). It's cool to hear about your experience especially since I'm going through it right now. Hopefully, things get easier for the both of us.

Posted on 2020-05-27 13:39:35

Thanks for sharing! Something from when I started with Manjaro (KDE) that I remember specifically giving me trouble was the "Global Themes". They look like a single button click to download & use custom, user-generated themes for your desktop, but I found that it is not that simple.
Cheers, and best of luck!

Posted on 2020-05-28 20:59:41
Jonathan Vazquez Duran

Nice article, how many cores are you assigning to the VM? I'm thinking of doing the same, but my concern is related to streaming and how the VM is going to affect the performance cuz I use a really heavy setup for OBS on my 3900X.

Posted on 2020-05-28 12:10:43

Thanks! I've got 14 of 16 cores and 24 of 32GB assigned to the VM. I chose those numbers fairly arbitrarily, though. I also haven't experimented with CPU pinning yet, either, but that may be something you want to look into to maximize CPU performance.

Posted on 2020-05-28 20:44:56
Jonathan Vazquez Duran

I'll give it a shot, thanks for the tip. BTW do you have the links for the documentation you followed? I'm a bit rusty when it comes down to linux stuff.

Posted on 2020-05-31 18:25:25
Max Qarl

I've also tried to switch from Windows 10 to Lubuntu, but I use the Adobe Creative Suite a lot, and Wine wasn't able to run it properly. I've tried some open source alternatives, but I couldn't really adapt to them. Also, I play PUBG, and linux can't run it for the same reason as Tarkov (anti-cheating software).
So I've switched to Windows 10 LTSB and it's quite good so far: no Cortana or other useless frills, no bloatware, no feature updates. I'm pretty happy, but if I could shut down their spyware/telemetry completely i'd be even happier.
I really like your idea, but for me it wouldn't be a rational decision because I've realized that I'd be forced to use Windows 90% of the time anyway.

Posted on 2020-05-29 00:51:54
Billy Jameson

PopOS from System76 has put together some nice stuff. PopOS has been "optimized" by system76 specifically for STEM. "Pop!_OS is an operating system for STEM and creative professionals who use their computer as a tool to discover and create"

Posted on 2020-06-17 23:11:32