Skip to main content

In general, Linux gaming used to be limited to the few FOSS games available for the operating system, but this is no longer the case, and it has seen steady growth over the past few years. With major companies like Valve providing Steam for Linux, Proton, the development of DXVK, the continuous work put into Wine by its developers, and Indie game developers creating games with Linux support out-of-the-box, the amount of fun for Linux continues to expand.

This post will be pt. 1.

Difficulty: ★☆☆☆☆

📜 Table of Contents

  1. Native
    1. AppImageHub.com/NX Software Center
    2. PortableLinuxGames
  2. Native and Non-Native
    1. Stean
    2. Heroic Games Launcher
    3. Bottles
    4. itch.io Store
  3. Middleware used to run non-native games on Linux
    1. Proton/DXVK
      1. Proton-GE
    2. Emulators

Native

Native games refer to games that specifically target Linux, and these games do not require any form of emulation or Middleware to run.

Not all games native to Linux are FOSS (free, as in freedom, open-source software) or free (as in gratis).

With that said, how can users obtain these native Linux games?

AppImageHub.com/NX Software Center

The first source is AppImageHub.com, which offers games (among other applications) packaged as AppImage. Users can download content from AppImageHub.com using the NX Software Center.

AppImageHub.com offers users a vast catalog of AppImage applications.

To explore the games listed at AppImageHub.com, you can use the NX Software Center or the Station.

Games category in the NX Software Center.

PortableLinuxGames

Likewise, PortableLinuxGames offers game packages such as AppImage. “PortableLinuxGames packs and distributes great Linux games as portable, self-contained packages that will (or should) run on any Linux system. It uses the AppImage package format and some script magic.”

  • 🔰 Information: We recommend downloading the files from PortableLinuxGames to ~/Applications for more effortless organization.

PortableLinuxGames packs and distributes great Linux games as portable, self-contained packages (AppImage).

Native and Non-Native

Non-native games don’t specifically target Linux, but they do require a form of emulation or “Middleware” to run.

Steam

Steam is the most popular source for non-native games on Linux. Steam is a top-rated digital game store that offers Linux games (including free-of-cost games). Steam has both ported and native Linux games and offers Steam Play for selected Windows games to be playable in Linux; see Middleware used to run non-native games on Linux.

  • The Steam client doesn’t use the AppImage format; Steam stores the game in the user’s home folder instead of the root directory.
    • 🔰 Information: We include a shortcut to install the Steam client for Linux in the application menu, but it is not included by default.

Steam (Flatpak) client for Linux.

Heroic Games Launcher

Heroic Games Launcher is a popular option for accessing other stores, such as Epic Store, GOG, and Amazon. Heroic (for short) describes itself as “an Open Source Game Launcher for Linux, Windows and macOS.

  • Heroic doesn’t use the AppImage format; Heroic stores the game in the user’s home folder instead of the root directory, like a Debian package.
    • 🔰 Information: We include a shortcut to install Heroic Games Launcher in the application menu, but it is not included by default.

Heroic is an open-source game launcher for Linux, Windows, and macOS.

Like Steam, Heroic allows users to use multiple Proton and (vanilla) Wine versions.

Heroic allows users to select which version of Wine or Proton to use.

Bottles

Bottles is an application allowing users to run Windows software like Heroic Games Launcher and Steam. However, unlike these applications, Bottles uses separate environments (or Bottles, hence the name), allowing users to have different settings for each program. Additionally, Bottles handles many things necessary to run software like .NET installers, VC redistributable packages, etc., which is done via its integrated dependency manager. Additionally, Bottles has a feature called Installers, which allows users to install many store launchers or select applications easily; check this link for a list.

  • Bottles don’t use the AppImage format; Bottles stores the game in the user’s home folder instead of the root directory, like a Debian package.
    • 🔰 Information: We include a shortcut to install the Bottles in the application menu; we do not include it by default.

Run Windows in a Bottle.

Bottles also allow users to adjust which Proton, DXVK, and VK3D versions to use.

Customize your Windows environment with ease.

itch.io Store

A third source for games is itch.io. itch.io is “an open marketplace for independent digital creators focusing on independent video games. It’s a platform that enables anyone to sell the content they’ve created.”

  • The itch.io client doesn’t use the AppImage format; itch.io stores the game in the user’s home folder instead of the root directory, like a Debian package.
    • 🔰 Information: We include a shortcut to install the itch.io client for Linux in the application menu; we do not include it by default.
    • 🔰 Information: Please refer to their troubleshooting guide for support with itch.io.
      • If users have problems launching the itch.io application after installation, do the following.
        1. Open the applications menu, right-click the desktop launcher, and select Edit application.
        2. Click on the tab Application and the Chromium option –no-sandbox to the field Arguments.
          • The itch.io Store is not an AppImage. However, it’s an Electron application, so the same arguments apply.
          • If there are other arguments in the desktop launcher, remove them.
          • Click the Accept button and launch the application.
    • ⚠️ Important: The itch.io Store does not work correctly on a virtual machine.

itch.io native client for Linux.

Middleware used to run non-native games on Linux

Proton/DXVK

First, let’s answer the question, “What is DXVK“?. DXVK is a set of replacement DLL files that translate from DirectX to Vulkan.

To run Windows games, Steam utilizes a version of Wine called “Proton,” which is optimized to run various games that do not have Linux support through Steam. Users can select from bundled versions of Proton with Steam, besides adding customized versions of Proton created by third parties such as Proton-GE.

  • 🔰 Information: Proton-GE is also available as an add-on for Heroic Games Launcher and Bottles.
  • 🔰 Information: By default, Steam will use Proton as developed and distributed by Valve and does not support adding other flavors or releases of Proton through the GUI. To use different flavors of Proton, users have to add them to Steam manually; see Proton-GE.

Steam allows users to enable its compatibility tool “Steam Play,” which uses Proton.

Proton-GE

Proton-GE is a custom flavor of Proton created by GloriousEggroll (hence the GE); it includes customizations that Valve’s Proton does not, such as the following.

  • Additional media foundation patches for better video playback support
  • AMD FSR patches added directly to fullscreen hack that can be toggled with WINE_FULLSCREEN_FSR=1
  • FSR Fake resolution patch details here
  • Nvidia CUDA support for PhysX and NVAPI
  • Raw input mouse support
  • The ‘proton fixes’ system is automated and applies per-game fixes (such as winetricks, envvars, EAC workarounds, overrides, etc.).
  • Various upstream WINE patches backported
  • Various wine-staging patches are applied as they become needed

To use Proton-GE, follow the steps below.

  • Users can download Proton-GE from its repository.
    • Download the latest release from Releases.
    • Extract the TAR archive and move the uncompressed directory to the following path.
      • 🔰 Information: We can manually use the directory below to add different Proton versions to Steam.
$HOME/.var/app/com.valvesoftware.Steam/.local/share/Steam/compatibilitytools.d
  • 🔰 Information: Some programs like Bottles or Heroic Games Launcher can use Steam’s same directory to find Proton or a custom directory for their Proton installations. These programs also set custom paths for other tools like DXVK or VK3D.
  • 🔰 Information: Users can manually add or update Proton (Proton-GE or other flavors of Proton), DXVK, VK3D, etc., or use each program’s settings to manage and update these installations. Since Steam does not have this ability, users must update Proton-GE manually.

Below, we list the paths that applications like Heroic Games Launcher and Bottles use when they install Wine/Proton, DXVK, VK3D, etc.,

$HOME/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools
$HOME/.var/app/com.usebottles.bottles/data/bottles

Alternatively, download ProtonUp-Qt to do the above but using a GUI.

ProtonUp-Qt allows managing releases of Proton.

Disclaimer: We do not develop Proton or Proton-GE. Please create an issue at their respective bug tracker to report problems with this software.

Emulators

Emulation is a software compatibility layer that emulates hardware components of game consoles, instruction sets, and related APIs. In actual game consoles, emulation software can emulate CPUs, GPUs, audio hardware, and other physical components.

🔰 Information: The following list only accounts for some popular emulators available as AppImages either officially or by third parties and some Flatpak recommendations.


Check Pt. 2 of this tutorial series, where we will examine what extra tools we can use to improve our gaming experience.