Play video games natively on Linux

Gaming Your Way

© Lead Image © Jon Le-Bon, 123RF.com

© Lead Image © Jon Le-Bon, 123RF.com

Article from Issue 293/2025
Author(s):

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.

Figure 1: Bazzite's website helps you select the right image for your needs.

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).

Figure 2: When you boot up for the first time, Bazzite updates the Steam client.
Figure 3: The welcome wizard lets you run through basic configuration and install extra software if desired. You can select either whole categories or individual applications for download.

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].

Figure 4: You can select a Proton version for each specific game you intend to run on Bazzite.

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.

Figure 5: Lutris can install The Longest Journey from GOG, Steam, and even the CD and DVD retail versions.

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).

Figure 6: Heroic Games Launcher is a clean, user-friendly alternative to Lutris, but it is less flexible.
Figure 7: Heroic Games Launcher lets you select a Wine or Proton version for each Windows game.

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

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Steam Proton

    The Proton runtime environment, which is based on Wine, brings a new crop of Steam-powered games to Linux.

  • Proton 9.0-1 Released to Improve Gaming with Steam

    The latest release of Proton 9 adds several improvements and fixes an issue that has been problematic for Linux users.

  • Lutris

    If you frequently play games on Linux, you are accustomed to dealing with many different installers and configurations. Lutris can help simplify the process of setting up all your games.

  • GameHub

    If you regularly buy games through Steam, GOG, and Humble Bundle, GameHub can help you keep them organized by bringing them all together into a single library.

  • Steam Deck Desktop mode

    The Steam Deck game console runs on SteamOS, a variant of Arch Linux. While you typically use the Steam Deck like any other dedicated game machine, you can freely drop into a Linux Desktop mode of surprising and powerful potential.

comments powered by Disqus
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.

Learn More

News