Play video games natively on Linux
Gaming Your Way

© Lead Image © Jon Le-Bon, 123RF.com
Bazzite, an immutable Linux distro adapted for gaming, lets you play your favorite video games on your PC, handheld, or home theater PC.
Steam, the famous game store from Valve, released a Linux-based handheld computer known as Steam Deck in early 2022. This milestone demonstrated that commitment to use Linux as a top-tier video-game platform wasn't just a fad, but a means to make the industry less dependent on Microsoft and its ecosystem. Two things exist that make the Steam Deck viable as a product: an increasing catalog of Linux native games and the rise of compatibility layers capable of running Windows software on Linux.
Steam's solution for running Windows games on Linux is Proton, a partially proprietary compatibility layer based on Wine. Proton was developed by Valve with the cooperation of CodeWeavers, known for their proprietary version of Wine, CrossOver. Proton was created in order to integrate with the Steam Client and let Linux gamers buy and play non-native games. It was released in 2018, a sign that Valve had been planning to support Linux seriously for a long time.
While these developments were all carried out in order to strengthen Valve's video gaming empire, they are portable enough to be used in different environments than the ones initially intended. In other words, you can run the Steam client on Linux distributions not associated with Steam, and you can use Proton without Steam integration on your Linux flavor of choice. Better yet, custom distributions tailored specifically to offer a commercial gaming experience are now possible.
This article takes a look at Bazzite [1], a Linux distribution that leverages these modern advancements without depending too much on a proprietary ecosystem. Bazzite can be used on a regular PC, but it is also adaptable to handhelds (such as the Steam Deck). You can even use Bazzite to build a home theater personal computer (HTPC) or a gamepad-controlled makeshift console for couch gaming.
An Immutable Distribution
Built as a custom Fedora Atomic Desktop [2] image (an immutable Fedora variant) derived from Fedora Silverblue (Gnome variant) and Fedora Kinoite (KDE Plasma variant), Bazzite is a Universal Blue [3] Linux client built with cloud native technology.
The first thing that sets Bazzite apart from most Linux distributions is that it is immutable. Immutable distributions consist of a read-only core that provides an unwritable root filesystem. While regular Linux distributions are composed of a sum of packages, immutable distributions are distributed as a block. Additional software not provided by the core is provided via modules. This idea is not new (you can read about an early immutable model in an article I wrote about Tiny Core Linux [4]).
The advantages of this approach are simplified maintenance and reduced breakage probabilities. When the time comes to perform an upgrade, a whole image that has been already tested and verified by the developer is downloaded and deployed as a single unit. Bazzite also has the option of rolling back by booting into a previous version from the GRUB menu, which allows Bazzite to go back to a functional state if an update ever goes bad. The disadvantage is the system becomes less tinker-friendly because it is designed to be static. The goal is to sit back and relax while the developers do all the thinking.
Bazzite offers a number of installation images focused on different use cases. The website [1] has an interactive menu to help you find the image that meets your needs (Figure 1). There is extensive documentation for supported handhelds. You install Bazzite on laptops, HTPCs, or gaming rigs the same way you would install a regular distribution: The image is flashed to a pen drive using dd and the computer is booted from the drive. Bazzite uses the Anaconda installer, which will be familiar to veterans of the Red Hat ecosystem.
The system requirements for Bazzite are higher than for a general purpose distribution (Table 1), but Bazzite will still run on moderately old machines. In fact it is possible to run many retro and indie games from the bare minimum without issues, so recycling an old workstation for gaming is actually possible as long as you don't expect to run demanding games. Steam Gaming Mode, a forked version of ChimeraOS's gamescope-session, has even higher demands; it is not supported on NVIDIA GPUs and requires a modern graphic card. Steam Gaming Mode is intended to be used with handhelds, HTPCs, and couch gaming consoles, so this might not be a problem depending on your needs.
Table 1
Bazzite's Requirements
Firmware |
UEFI (legacy mode should be disabled) |
CPU |
2GH quad core (amd64 architecture) |
RAM |
4GB |
GPU |
Any Vulkan 1.3+ capable |
Storage |
64GB |
For testing, I put together a computer from obsolete parts. My system packs an Intel Core i3-4170 CPU, a Radeon R7 200 GPU, and 8GB of RAM. I installed a non-Steam Gaming Mode image, because Steam Gaming Mode won't run on such an old graphic card.
Steam First
Upon first boot, Bazzite launches a welcome wizard and automatically updates to the newest version of the Steam client (Figure 2). The Steam client needs your Steam account credentials in order to function and will let you register an account if you don't already have one. The welcome wizard then walks you through some standard configuration steps and asks if you want to install any extra software (Figure 3).

Bazzite is obviously built with the intention of playing Steam games first and foremost. The Steam client works as you might expect, and you can use it buy games from the store. You can also install existing games from your Steam library on your system. If you are new to Steam on Linux, it is worth checking the minimum prerequisites of any game you purchase or download. The Steam client will refuse to install any game from your library that is not available on the SteamOS + Linux platform. Keep in mind games listed as available on SteamOS + Linux are not necessarily native games; they will often be Windows games intended to be executed on Proton. If a game does not run on SteamOS + Linux, chances are it just isn't compatible with Proton.
Running a commercial video game on a compatibility layer is still tricky, even if the compatibility layer comes from a vendor who actively supports it. Some games might need fiddling. Also, some games will run on certain Proton versions but not on others. Fortunately, Steam lets you select which Proton version you want for each game (Figure 4). If you are not sure if a game will run properly on Proton, check ProtonDB [5].
Something to consider is that the Steam ecosystem is very bandwidth intensive, to the point that Bazzite suggests a stable Internet connection without data caps as an actual prerequisite to enjoy this distribution. Modern video games on the SteamOS + Linux Titles webpage [6] may weigh in at more than 40GB. In addition, every time you tweak some compatibility option, you may cause Steam to download extra software automatically. Triggering a download for one specific Proton version after another quickly adds up. This should not be a problem for users who reside in a city in a developed country, but you will feel the pain in a rural area with limited connectivity.
Beyond Steam
Not every game that you'll want to play will come from Steam. Bazzite includes the Lutris [7] game launcher by default and suggests using it for non-Steam games. Lutris integrates with a number of third-party video game stores, such as GOG, and offers the ability to install titles via community-provided installers. This approach is very flexible, because it lets you choose which compatibility layers you want to use for each game. The number of options extends well beyond the Wine/Proton sphere (Figure 5). For example, The Longest Journey can run on ScrummVM in addition to the "default" Steam deployment, which is a very good thing because playing this game on either Wine or Proton is an awful experience.

An issue I have with Lutris is that it might take some time to figure it out. For testing, I installed ScrummVM on Bazzite manually, using the Discover application manager included in the distribution. Lutris listed ScrummVM as an available platform, but it failed to run any game with it. I had to use Lutris to download an internal version of ScrummVM for The Longest Journey to launch. Still, I could not get the game to work in full-screen mode at all, most likely because of some integration problem of ScrummVM with Wayland.
If Lutris doesn't suit you, Bazzite recommends installing Heroic Games Launcher (Figure 6). In my opinion, this option is less cluttered, but it is also less flexible. Heroic Games Launcher integrates with GOG, the Epic Store, and Amazon Games. Just like the Steam client, Heroic Games Launcher allows you to select a Wine or Proton version to run your Windows games (Figure 7).

Heroic Games Launcher proved itself more reliable, clean, and responsive during testing, and most things worked as intended. I installed a Linux native game from my GOG library (BallisticNG) and also the popular Commandos for Windows. The only hiccup I encountered was that I had to disable Game Mode in Heroic Games Launcher for Commandos to work at all with my aging graphic card.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

News
-
Red Hat Releases RHEL 10 Early
Red Hat quietly rolled out the official release of RHEL 10.0 a bit early.
-
openSUSE Joins End of 10
openSUSE has decided to not only join the End of 10 movement but it also will no longer support the Deepin Desktop Environment.
-
New Version of Flatpak Released
Flatpak 1.16.1 is now available as the latest, stable version with various improvements.
-
IBM Announces Powerhouse Linux Server
IBM has unleashed a seriously powerful Linux server with the LinuxONE Emperor 5.
-
Plasma Ends LTS Releases
The KDE Plasma development team is doing away with the LTS releases for a good reason.
-
Arch Linux Available for Windows Subsystem for Linux
If you've ever wanted to use a rolling release distribution with WSL, now's your chance.
-
System76 Releases COSMIC Alpha 7
With scores of bug fixes and a really cool workspaces feature, COSMIC is looking to soon migrate from alpha to beta.
-
OpenMandriva Lx 6.0 Available for Installation
The latest release of OpenMandriva has arrived with a new kernel, an updated Plasma desktop, and a server edition.
-
TrueNAS 25.04 Arrives with Thousands of Changes
One of the most popular Linux-based NAS solutions has rolled out the latest edition, based on Ubuntu 25.04.
-
Fedora 42 Available with Two New Spins
The latest release from the Fedora Project includes the usual updates, a new kernel, an official KDE Plasma spin, and a new System76 spin.