• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

How-to: Linux Gaming Explained (2023 version)

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.


Nov 30, 2022
San Antonio
Original Thread:
How-to: Linux Gaming Explained

Hello Everyone,
This thread comes as an updated version of the whole topic of gaming on Linux machines. Linux as an OS has come a long way over the years. Where it used to be really complicated & touchy to get games running on Linux, depending on wine & Windows integration, a lot of compatibility was developed to game on Linux in recent years. Take the Steam Deck, for example. It runs on Arch Linux and has a high compatibility rate for their games. Proton is a Steam tool that helps with game compatibility for Linux. However, while the compatibility list is pretty long, there are various settings & configurations that need to be reviewed before looking at a game to be compatible with Linux. Wine has also come a long way, but is still not a perfect solution.

Proton DB - This database gives information on what games work on Proton (and what version) for Linux compatibility.

From their page:

Proton is a new tool released by Valve Software that has been integrated with Steam Play to make playing Windows games on Linux as simple as hitting the Play button within Steam. Underneath the hood, Proton comprises other popular tools like Wine and DXVK among others that a gamer would otherwise have to install and maintain themselves. This greatly eases the burden for users to switch to Linux without having to learn the underlying systems or losing access to a large part of their library of games. Proton is still in its infancy so support is inconsistent, but regularly improving.

With Steam, you have 2 basic options:
  • Proton - You can choose from different Proton versions
  • Steam Play Native Linux driver
I've been able to get the handful of games I play working fine. Some don't integrate well with a PS4 controller (I don't have any XBox controllers to confirm if it's all controllers or just limited to PS4, but some games map to the XBox control scheme & the L/R shoulder buttons aren't always properly ported to PS4 controller mapping). However, I am not a heavy gamer playing the newest things on high settings like Cyberpunk 2077/Far Cry 5/CS:Go/CoD series. I still do play games like the Final Fantasy series, Overwatch, the Tales series, the Secret/Mana series, etc.

It's also important to note that due to the popularity & portability of the Steam client, most haves have been ported over to be run on steam. But for those games that haven't been ported to steam (or if you have a previous windows installer & don't want to buy the steam version), there is another option...

Wine HQ (link)

Wine (originally an acronym for "Wine Is Not an Emulator") is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, macOS, & BSD. Instead of simulating internal Windows logic like a virtual machine or emulator, Wine translates Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods and allowing you to cleanly integrate Windows applications into your desktop.

While this description is taken directly from Wine's main page, it's an accurate description of the tool. While there ARE some games released for Linux as well as Linux ports of older games, you can run many Windows-based games pretty well using Wine. The link above has an Application Database that will give you information on the performance of different apps/games as well as any bugs/workarounds to make it work.

Wine is now included in the default repos for most distros and works on install:
  • Debian/Ubuntu - including elementary/Pop!OS
  • Fedora & all RH-related distros
  • Arch - including EndeavourOS/Arco/Manjaro
Wine creates an environment for your user under /home/$USER/.wine with multiple directories to serve as Windows "drives" (i.e. /home/$USER/.wine/drive_c). If you want to be able to launch your game without having to dive into your terminal/file manager for the file, you can always create a launcher that launches the .exe file for your game. How this is done depends on your Desktop Environment:
There ARE other DEs out there that I have not mentioned above, but I got those instructions from a google search. If you use a WM, then you're using either the supplied launcher, dmenu, or polybar (or another similar solution) & should be familiar with setting up a launcher. The basic command to set up for your launcher is going to be:

wine '/home/$USER/.wine/drive_c/path/to/game.exe'

NOTE THE SINGLE QUOTES - Windows file structures have default directories with spaces (i.e. 'Program Files') so it's important to encapsulate the file path in quotes. Single quotes ensures nothing is translated into shell functions (i.e. $folder being translated as a variable - not that it would be one that gets used, but trying to catch any & everything one might encounter here).

Winetricks (link)
Your game may need a particular runtime library in order to get it properly installed & running. Winetricks is a script that helps get those installed into your wine environment.

nVidia vs. AMD(formerly ATi)
You also need to take into consideration that some games were made to perform better on nVidia vs AMD & vice versa, so your hardware configuration will also determine how well your system can play certain games.

This article from 2020 does a great job of going over the subject of Graphics card drivers. If you're already on Linux with one of these cards, then you've already worked around driver issues you might have had with nVidia, be it installing signed proprietary drivers or open source noveau drivers. That said, you may still run into issues when actually running games. Interestingly enough, working proprietary nVidia drivers tend to get the most out of the nVidia cards, so if you're looking for the best gaming performance, using a nVidia card with proprietary drivers is going to be your best bet. HOWEVER, be mindful that you might have to do a little more work to get proprietary drivers for your particular card to work on your particular Linux distro.

While This is in the Arch Wiki, it does give a whole lot of information that translates to any distro:

Feel free to comment & let me know anything I might have missed or should tweak. Thanks for reading!

Last edited: