The state of Gaming on Linux

July 3, 2023
Tags:

The state of Gaming on Linux is great and way better than a couple of years ago. This is largely due to the power of Open Source. But why ? Let’s dig into this a bit.

History

In the past, there were just a few games available as native Linux binaries. The majority of games were written for Windows and only available as Windows binaries. You could run some of them using Wine, but that had its limits and would usually not work for a lot of AAA (big budget) games.

That began to change when in 2013 Valve started the SteamOS project, originally planned as an OS (based on Debian) for hardware consoles. Valve committed to Linux as the future of gaming. The first Steam machines began shipping in November 2015.

They were not a great success for various reasons. But Valve stuck to its commitment and – after going back to the drawing board – released the Steam Deck (with the OS now based on Arch) as a handheld console in 2021 to great success. In the meantime, they had their Steam client working on Linux the whole time and also had started Proton, a Wine flavor focused on making Windows games run on Linux.

With the advent of the Steam Deck Valve made a lot of Windows games available through Proton and – over time – added solutions for copy protection mechanisms like EAC (Easy Anti-Cheat) that were a hard “no” until then.

Native

A few games exist that are native to Linux, but they are rather the exception than the rule. 

Wine

Wine is in active development since 1993 and getting better all the time. Valve is contributing a lot from their development for Proton.

Wine on Wayland

Since Wayland is bound to replace X11 in the long run, any progress for Wine on Wayland is good news.

Proton / Proton Hotfix / Proton Experimental

These are different flavors of Proton from Valve. In software terms Proton Experimental is ‘upstream’ of Proton.

GE

For advanced use cases, “Glorious Eggroll” provides specific Proton and Wine builds that contain the latest and/or experimental fixes for current games as well as improvements for older games.

Launchers

Most people will not run just a single game or a handful of games, but a multitude of games from different sources. At some point in time it looked as if there was only Steam bringing all these games under one roof, at a later point in time it looked as if every publisher wanted to have their own launcher, just to keep users inside their closed ecosystem.

While Steam from Valve is the most popular Game Launcher by far, other publishers have tried to establish their launchers as well. None of them are relevant for Linux, but there exist other, more specialized launchers for Linux. Let’s have look at what launchers are available:

Steam

If all your games are on Steam, this is the way to go. Proton, Valve’s game-focused Wine flavor is available in different sub-flavors: Proton, Proton Hotfix, Proton Experimental.

If you want to use Proton, go to “Steam -> Settings -> Compatibility” and enable it. You can choose to only run supported games with Proton or also other games that are not (yet) supported. 

Lutris

Lutris supports a number of native and non-native technologies that are provided through plugins, so it is able to run everything from Steam, Humble Bundle, Epic, GOG and a lot of retro game emulators. It even comes with its own set of Wine releases.

GameHub

GameHub supports native and non-native technologies, especially Wine/Proton, DOSBox, RetroArch, ScummVM. It can use Steam, GOG and Humble Bundle as sources.

Heroic Launcher

This launcher mainly is for your EPIC and GOG games. You also can add other, already installed games from e.g. Steam. You can customize the runtime options for Wine and native games.

Emulation Station Desktop Edition 2.0

This is the launcher to use when you primarily are running emulation software for older platforms aka Retro Gaming. It supports a variety of emulation platforms.

Notable mentions: Bottles (manages Wine prefixes), Minigalaxy (manages GOG games)

Tools

Feral Game Mode

GameMode will automagically optimize your system for Gaming, usually active whenever you start a game. This includes various kernel and power optimizations as well as switching off the screensaver; the previous state will be restored when the game exits. Lutris among others has built-in support for GameMode.

MangoHud

MangoHud is an overlay for Vulkan and OpenGL for monitoring various system parameters like temperature, FPS or CPU/GPU load.

Advanced use cases

Proton DB

Primarily targeted at Steam users on Linux, this database will show you user-driven feedback on how well a certain game will run on Steam / Proton.

ProtonUp-Qt

This utility will help you download current releases of e.g. GE Proton/Wine for Steam, Lutris or Heroic Launcher

Nobara

This is a full Linux distribution based on Fedora, converting it into something that contains everything that you need to properly game – including a modified kernel, Steam, Lutris, Mangohud, Gamescope, OBS Studio preinstalled among others.

PCem

Specifically targeted at older applications, this software will emulate specific hardware from even before the year 2000, allowing even the most peculiar piece of software to run successfully.

A few notable examples for the power of Open Source

Example #1: Taking Descent to the next level

As one of the prime examples for the power of Open Source, I will briefly follow the history of Descent. Descent is a 3D first person shooter released by Parallax in 1995, with two further  installments following in that series. In 1997/1998 Parallax released the source code for Descent 1 and Descent 2. The Descent community (DXX-Rebirth in this case) took the provided source and enhanced and modernized it in many ways by e.g. adding support for OpenGL and SDL – among others. And the story doesn’t end there, just recently Raytracing was added (see https://github.com/BredaUniversityGames/DXX-Raytracer based on https://github.com/CDarrow/DXX-Retro ). 

Example #2: Taking Doom everywhere

And now for the most prominent example – Doom. It is an immensely popular first-person shooter from 1993. The source code was first released in 1997 with a proprietary license and later in 1999 under GPL 2. Probably because of the big fanbase, Doom was ported to almost every device you can or cannot think of like ATMs, medical equipment, smartwatches, Commodore VC20 or Amiga.

Final thoughts

All the projects presented here are Open Source projects. Many people solving their respective problem resulted in technologies and tools that enable playing a very wide range of games on Linux.

My desktop has been Linux-only for the past couple of years and I will never look back. Emulators are available for older platforms and older games, current games run via Wine/Proton, the amazing work that goes into making older titles still playable really convinced me that there is no need anymore to “boot into Windows for Gaming”. 

For yourself, please feel free to explore the world of gaming on Linux – and maybe you will come to the same conclusions I have – or maybe you don’t. And that is fine in every way. Because Open Source is about freedom of choice.

Bottles – https://usebottles.com/

Doom – https://en.wikipedia.org/wiki/Doom_(franchise)

DXX-Rebirth – https://www.dxx-rebirth.com

EmulationStation Desktop Edition – https://es-de.org/

Heroic Launcher – https://flathub.org/apps/com.heroicgameslauncher.hgl

Lutris – https://lutris.net/

Minigalaxy – https://flathub.org/apps/io.github.sharkwouter.Minigalaxy

Nobara – https://nobaraproject.org/

Proton DB – https://www.protondb.com/

ProtonUp-Qt – https://davidotek.github.io/protonup-qt/

SteamOS – https://en.wikipedia.org/wiki/SteamOS

Wine – https://www.winehq.org/