Gaming on Linux

Yes, you can game on Linux. And it's way better than you think.

The state of Linux gaming

Let's get the big question out of the way: most games work on Linux now. Not "a few indie titles" -- we're talking thousands of AAA and popular games, including many that were never officially released for Linux.

The magic behind this is a tool called Proton, built by Valve (the company behind Steam). Thanks to Proton, the majority of games on Steam work on Linux with zero configuration. You just click "Play" and it works.

There are still a few gaps -- some multiplayer games with aggressive anti-cheat won't work (more on that below) -- but for most people, Linux gaming is absolutely viable as a daily driver.

The Steam Deck runs Linux! Valve's handheld gaming device uses a custom Linux distro called SteamOS. Every game that works on the Steam Deck works on any Linux desktop with the same setup. If the Deck can do it, your PC can too.

Steam and Proton: the easiest way to game

Steam has a native Linux app. You install it, log into your account, and your entire library is right there. For games that have a native Linux version, they just work. For Windows-only games, that's where Proton comes in.

What is Proton?

Proton is a translation layer. Think of it like a real-time interpreter: your game speaks "Windows," and Proton translates that into "Linux" on the fly. The game doesn't know it's not running on Windows. It's built on top of a long-running open-source project called Wine (more on that below), but Valve has added a ton of gaming-specific improvements.

You don't need to understand how it works. You just need to turn it on.

How to enable Proton

  1. Open Steam
  2. Go to Steam > Settings (top-left menu)
  3. Click Compatibility in the sidebar
  4. Check "Enable Steam Play for all other titles"
  5. Set the Proton version to the latest one (e.g., Proton Experimental or the highest numbered version)
  6. Restart Steam when prompted

That's it. Now every game in your library has a "Play" button, even Windows-only titles. Steam handles the rest automatically.

Proton Experimental vs. numbered versions: "Proton Experimental" gets the newest fixes fastest. Numbered versions (like Proton 9.0) are more stable. If a game doesn't work with one, try the other. You can set a specific Proton version per game by right-clicking the game, going to Properties > Compatibility.

ProtonDB: check if your game works

Before you buy a game (or if something isn't working), check ProtonDB. It's a community-driven site where Linux gamers report how well each game runs.

Games are rated with simple labels:

Most popular single-player games are Platinum or Gold. Just search for your game and see what other players report.

Non-Steam games: Lutris and Heroic

Steam isn't the only game store, and not every game is on Steam. For everything else, you have two great options.

Lutris

Lutris is an open-source game manager that handles games from pretty much anywhere -- GOG, Epic Games, Ubisoft, old CD-ROM games, emulated console games, and more.

The best part: Lutris has community install scripts. You search for a game on the Lutris website, click "Install," and it automatically sets up everything the game needs -- the right Wine version, dependencies, settings, all of it.

Install Lutris from your distro's package manager or from lutris.net.

Heroic Games Launcher

Heroic Games Launcher is purpose-built for Epic Games Store and GOG games. If you have a library on either platform, Heroic is the simplest way to play those games on Linux.

You can install Heroic as a Flatpak, AppImage, or .deb/.rpm package from their website.

Native Linux games

Plenty of games run natively on Linux -- no Proton or Wine needed. These tend to run the best since they were built specifically for Linux. Some notable examples:

On Steam, you can filter your library to show only Linux-compatible games. Look for the little Steam (penguin) icon on store pages.

GPU drivers: this matters

Your graphics card driver can make or break your gaming experience. Here's the short version:

AMD GPUs

AMD just works. The drivers are built right into Linux (they're open source). You install your distro, and your AMD graphics card is ready to go. No extra steps. This is one of the reasons AMD is the most recommended GPU brand for Linux gaming.

NVIDIA GPUs

NVIDIA requires extra setup. NVIDIA's drivers are proprietary (closed source), so they don't come pre-installed on most distros. You'll need to install them manually.

The good news: most gaming-focused distros (like Pop!_OS and Nobara) handle NVIDIA drivers for you during installation. If your distro doesn't, check our NVIDIA driver guide.

Buying a GPU for Linux? AMD is the easier choice. Everything works out of the box with open-source drivers. NVIDIA works too -- it just takes a bit more effort to set up, and you may occasionally hit driver quirks.

Intel GPUs

Intel integrated graphics and Intel Arc GPUs work out of the box with open-source drivers. They're fine for lighter games and older titles, but not ideal for demanding AAA games.

Controllers

Good news: most controllers work on Linux with little or no setup.

Xbox controllers

Xbox One and Xbox Series controllers work out of the box. Plug in via USB or connect via Bluetooth and they're recognized immediately. Steam's controller support handles the rest.

For wireless via the Xbox Wireless Adapter (the USB dongle), you may need the xone driver. Most distros don't include it by default, but it's easy to install from GitHub.

PlayStation controllers (DualShock 4, DualSense)

PS4 and PS5 controllers work over both USB and Bluetooth. Linux has built-in support through the hid-playstation driver. Steam also recognizes them natively and lets you configure them in Big Picture Mode.

Features like the touchpad, motion controls, and adaptive triggers (PS5) are supported to varying degrees depending on the game and driver version.

Other controllers

Nintendo Switch Pro controllers, 8BitDo controllers, and most generic USB gamepads work without issues. Steam's built-in controller configurator supports remapping for almost any controller.

Pro tip: Enable Steam Input in Steam's controller settings. It gives you a universal controller configurator that works across all games, regardless of their native controller support.

Anti-cheat: the one problem area

This is the honest part. Some multiplayer games use anti-cheat software (like Easy Anti-Cheat or BattlEye) that doesn't work on Linux. This is the main reason some online games are rated "Borked" on ProtonDB.

Here's where things stand:

If a specific multiplayer game is critical for you, check ProtonDB before making the switch to Linux. For single-player games, anti-cheat is almost never an issue.

Best distros for gaming

Any Linux distro can be a gaming machine, but some make it easier than others. Here are the top picks:

If you're brand new to Linux and want to game, Pop!_OS or Nobara are your safest bets. They require the least tinkering.

Performance tips: GameMode and MangoHud

GameMode

GameMode is a tool by Feral Interactive that automatically optimizes your system when a game is running. It adjusts CPU governor settings, I/O priority, and GPU performance to squeeze out extra frames.

Install it from your distro's package manager:

# Ubuntu/Mint/Pop!_OS
sudo apt install gamemode

# Fedora/Nobara
sudo dnf install gamemode

# Arch/Manjaro
sudo pacman -S gamemode

To use it, launch games with gamemoderun %command% in Steam (right-click game > Properties > Launch Options). Many games on Lutris and Heroic also let you enable GameMode in their settings.

MangoHud

MangoHud is a performance overlay (like MSI Afterburner on Windows). It shows your FPS, CPU/GPU temps, RAM usage, and frame timing right on screen while you play.

Install it from your package manager:

# Ubuntu/Mint/Pop!_OS
sudo apt install mangohud

# Fedora/Nobara
sudo dnf install mangohud

# Arch/Manjaro
sudo pacman -S mangohud

To use it in Steam, add mangohud %command% to your launch options. You can combine both: gamemoderun mangohud %command%.

Press R_Shift + F12 during gameplay to toggle the overlay on and off.

What is Wine?

Wine stands for "Wine Is Not an Emulator" (yes, it's a recursive acronym). It's an open-source project that lets you run Windows applications on Linux. It's been around since 1993 -- way before Proton existed.

Wine works by translating Windows system calls into Linux system calls in real time. It doesn't emulate a whole Windows computer -- it just translates the "language" that Windows programs speak into something Linux understands. That's why it's fast: there's no virtual machine slowing things down.

Proton is built on top of Wine. Valve took Wine, added gaming-specific improvements (like better DirectX support through DXVK and VKD3D, plus Vulkan optimizations), and packaged it into Steam. So when you use Proton, you're using an enhanced version of Wine behind the scenes.

You can also use Wine directly (outside of Steam/Proton) to run Windows software, but for gaming, Proton and Lutris handle Wine configuration for you so you don't have to think about it.

Emulation on Linux

Linux is a fantastic platform for emulation. Most popular emulators have native Linux versions:

  • RetroArch -- Multi-system emulator frontend. NES, SNES, Game Boy, PS1, N64, and dozens more.
  • Dolphin -- GameCube and Wii
  • PCSX2 -- PlayStation 2
  • RPCS3 -- PlayStation 3
  • Yuzu / Ryujinx -- Nintendo Switch
  • PPSSPP -- PlayStation Portable
  • Cemu -- Wii U

All of these can be installed from Flatpak, your distro's package manager, or their official websites. Lutris can also manage emulated games.

Troubleshooting: game won't launch?

If a game won't start or crashes, try these steps in order:

  1. Try a different Proton version. Right-click the game in Steam > Properties > Compatibility > Force a specific Proton version. Try Proton Experimental, or Proton GE (a community-enhanced version).
  2. Check ProtonDB. Other users often post the exact fix you need. Look for comments mentioning launch options or specific Proton versions.
  3. Install Proton-GE. This is a community version of Proton with extra patches and fixes. Install it with ProtonUp-Qt, a simple graphical tool for managing Proton versions.
  4. Check your GPU drivers. Make sure you have the latest drivers installed, especially on NVIDIA.
  5. Check Steam's launch options. Some games need specific environment variables. ProtonDB comments usually list these.
  6. Verify game files. Right-click the game > Properties > Installed Files > Verify integrity of game files.