I recently posted about upgrading Windows 10 to 111 to continue receiving security updates. Even after such upgrade, there are numerous problems with Windows. It is not open source, it is full of spyware, it is burdened by unnecessary background processes, it is technically inferior to its competitors and it is controlled by Microsoft - a company convicted of anti-competitive anti-consumer practices.
I’ve been running Linux on the desktop and server for past 30 years and my remaining use case for Windows was to run games. This is no longer necessary - let me show you how!
How we got here
The company behind making gaming on Linux is Valve. For past 20 years, it built up the Steam Powered store, where PC games can be afford-ably purchased, installed and managed.
Steam started on Windows, but Valve invested in porting Steam to Linux to future-proof their platform. A few years ago they created a portable PC running Linux+Steam called Steam Deck which became the most powerful portable gaming platform.
In order to make Steam Deck viable, Valve invested in Proton which is a gaming optimized fork of Wine2. Proton includes ability to efficiently abstract DirectX 9-12 calls into Vulkan3 calls. Between Vulkan, efficiency of Linux, no heavy background processes and good Radeon graphics drivers, many Windows games run better on Linux than they do on Windows!!
Linux for gaming platform
To run games on Linux, following need to be met:
- A computer with Radeon graphics card or an AMD APU 4
- 16GiB ram
- SSD storage
- decent CPU
- A Linux distribution5 including software components necessary to run games
- Bazzite Linux is the top go-to distribution for gaming on Linux
- comes pre-configured with necessary graphics drivers
- comes with Steam, Proton and choice of Desktop Environment (I use KDE)
- it is based on a very popular variant of Red Hat Fedora, the Fedora Atomic Desktop
- many Linux distributions can meet this requirement, even GNU/Debian, but more effort is required
- Bazzite Linux is the top go-to distribution for gaming on Linux
- Steam Client
- which will provide games and run them appropriately using Proton
- with Bazzite Linux, Steam comes pre-installed
From Linux to Bazzite
I am fan of GNU/Debian Linux and have ran it on my daily driver machine and servers for almost two decades. While it is rock stable and very predictable, it doesn’t have most recent libraries, drivers and apps.
In the past I made use of other Linux distributions - notably of Red Hat Linux, a very popular enterprise distro. Red Hat created a branch called Fedora Linux which is known for catering to power users and being very leading edge but at the expense of stability.
To improve on the stability and ease of use for non-Linux users, Fedora project created Atomic Desktops which are based on immutable container images based on Fedora packages. The entire base-system is installed read-only as a pre-tested container. Upgrades involve getting a new version of this pre-tested container and running the new instance while keeping the previous version for rollback. Since users normally cannot modify this container, it is very resilient to accidental corruption or mis-configuration.
The user directory is writable and additional applications can be installed using a system called Flatpak which is independent of the base container. This allows installing additional applications not dissimilar to App Stores available on other platforms. Flatpak is predominantly open-source, but it also supports commercial software.
So what is Bazzite?
A: It is a Linux project that takes Fedora Atomic Desktop and provides container images with additional pre-configured drivers and software necessary to run preinstalled Valve’s Steam client. This new distro optimizing for gaming, but also very capable as a normal general purpose desktop, is Bazzite.
Experience of gaming on Bazzite
I installed the KDE desktop variant of Bazzite for AMD/Radeon graphics on my previously Windows gaming machine. Since Bazzite is immutable, one chooses the desktop and driver branch before installing. After installation, this will become the rolling immutable container image.
Bazzite feels just like most modern, polished Linux desktops. Most users from Windows will rely only on Flatpaks and Steam, while the immutable nature of Bazzite will prevent them from accidentally breaking their system. I am very impressed how well it is engineered.
As long as one uses Flatpak for additional software and Steam for games, it nearly manages itself. I use it as a gaming appliance, I don’t want to chase newest drivers and let Bazzite do it for me while using Steam for all games.
The game compatibility is very high. Some games require a different or experimental version of Proton which is configurable per-game in the Steam Client. There is protonDB web site where gamers collect compatibility information and Proton versions which work best for each game. Most single player games without Windows-kernel anti-cheat requirements work very well.
Appendix: Immutable distro for daily driver machine
A daily driver machine with Bazzite can offer power comparable to normal Fedora. One can layer additional Fedora packages into the container to allow similar flexibility. Due to container-ization, this involves building new container with changes and rebooting into it. The process is very simple and robust, but for a single machine, it is quite time consuming to install or remove just a few extra packages. An office or lab full of workstations that need to be supported and used by multiple users, is where immutable desktops really shine in my opinion.
-
Wine: a Windows emulation layer for Linux. ↩︎
-
Vulkan: a modern low-level 3D API which is well supported by Linux graphics card drivers. ↩︎
-
Radeon graphics card or an AMD APU: technically, a non-ATI/AMD graphics chips are supported, such as Nvidia, but their drivers are not as well engineered and not open-source. A $200 Radeon RX 6600 suffices for 1080p gaming. ↩︎
-
Linux Distribution: (distro): A specific approach and a project behind to prepackaging and managing Linux. All of them are capable of (eventually) running all the same software, but out-of-the box different distros optimize for different use cases. ↩︎