How to Use Steam Proton & ProtonDB to Play Games on Linux

Steam, Proton, and Linux logos on a blue gradient background

Playing games on Linux has never been easier than it is now because of Steam Play support for Linux and tools like Steam Proton.

Previously there was no way for Linux users to play Windows games unless developers had developed a Linux native version. But, with Steam Proton, Linux users can download and play Windows games.

Some of these games will run natively and some will need minor tweaks to run on Linux based system. Steam Proton has an associated community website that displayed data collected from users about the compatibility status of different games with Proton. Users share exactly the system configurations they used to run a game so you can find out if you are in a position to try and run a game with tweaks or not.

In this tutorial, we are going to learn how to enable Steam Play and download Windows games for it. And how to use ProtonDB to check which Windows games will run smoothly on your specific system configuration.

Enable Steam Proton

Before enabling Steam Proton we need to download the Steam client for Linux. Steam offers a wide range of games native to Linux.

Download and Install Steam on Your Linux Distro

On Linux distros that have app stores, Steam can be downloaded through the distro’s software store app. But you can also install Steam using the command line.

We’ll cover how to install Steam on Ubuntu-based system using the multiverse repository, on Debian-based systems, and on RHEL based systems.

Install Steam on Ubuntu and Debian-based Distros

We can install Steam on Ubuntu and Debian in multiple ways. We’ll just focus on two of the main ways in this tutorial.

Method 1 – Install Steam Using the Official Steam Debian Package

Using this method we’ll use the Steam installer. You can find it here if you visit using a Linux machine https://store.steampowered.com/about/.

Screenshot of the Steam download page

We’ll download it using wget from the command-line:

wget https://cdn.akamai.steamstatic.com/client/installer/steam.deb

Next we’ll install Steam by running:

sudo dpkg --install steam.deb

Now you can run Steam from either the command-line by running steam or from the Application Menu, and Steam will guide you to installing some additional required packages.

Install Steam on Ubuntu and Debian-based Distros using APT

We can also install Steam via the APT package manager. To do this first run the following command to add the Steam repositories:

sudo tee /etc/apt/sources.list.d/steam.list <<'EOF'
deb [arch=amd64,i386] http://repo.steampowered.com/steam/ stable steam
deb-src [arch=amd64,i386] http://repo.steampowered.com/steam/ stable steam
EOF

If you’re running an amd64 (64-bit) system, you’ll need to enable Multi-Arch, to run software from i386 architecture.

sudo dpkg --add-architecture i386

Update your package index:

sudo apt update

Next install some required packages and Steam:

sudo apt-get install libgl1-mesa-dri:amd64 libgl1-mesa-dri:i386 libgl1-mesa-glx:amd64 libgl1-mesa-glx:i386 steam-launcher

Now you should be able to run Steam from the command-line by running steam or from the Application Menu.

Install Steam on RHEL-based Distros

There are multiple ways to do this using the command-line. In our example we’ll use Flatpak.

First install flatpak:

sudo dnf install flatpak

Next we’ll enable Flathub:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Now you should also be able to find Steam in your distro’s software center. We’ll continue and install it via the command-line:

sudo flatpak install flathub com.valvesoftware.Steam

Steam has been installed on your system. Run Steam and log in to it using your credentials to proceed further with this tutorial.

Activate Proton to run Windows games on Linux

Now that Steam has been installed, a huge catalog of games that have Linux support will be available for you to play. But what if you want to run a game that has no official Linux support?

This can be done using a Valve-supported tool known as Steam Proton.

Proton is a project of Valve that utilizes Wine and DXVK layers to translate Windows calls into Linux calls for software and graphics. Using Proton, Linux users install and play Windows games as Proton will auto-configure these games to run on Linux. But the extent to which a Windows game will run on Linux is different for each game.

We need to enable Steam Play through the Steam client in order to run Windows games on Linux. Steam Play utilizes Proton to run games.

First, we need to enable Beta Participation for Steam by following the below steps.

    1. Open the Steam client and click on Steam in the upper right corner of the client window.
    2. From the dropdown, click on settings.
    3. From the settings window that opens up, click on the Steam Play tab. In this tab you have to enable the three options listed below.
      1. Enable Steam Play for supported titles: to play Windows games that have officially been validated by Valve to run on Linux.
      2. Enable Steam Play for all titles: to install and launch Windows games on Linux. However, it is not guaranteed to run
    4. At the bottom of the Steam Play tab, click on Run other titles with and specify the Proton version that you want to use.
      1. Beta/Experimental versions are the ones that are still in development.
      2. All other versions are stable.

Screenshot of Steam Settings > Steam Play > Check both "Enable Steam Play for supported titles" and "Enable Steam Play for all other titles"

Restart Steam after applying these changes for them to take effect.

Play Games using Steam Proton and ProtonDB

After Steam restarts you will have Steam Play and Proton enabled on your system to install and launch any Windows game you desire.

Some of these games will launch and run smoothly but others might not. And Steam displays no information about whether a Windows game will run smoothly on Linux using Proton or not.

So how can you know which games will run and which ones will need tweaks in the system to run smoothly? We can assess the success level of a Windows game on Linux by using the ProtonDB website.

How to use ProtonDB?

You can visit the official ProtonDB website to see which Windows games run smoothly on Linux and which titles can be made to run with minor tweaks. You can search any game on the website and see how well it is running for other Linux users.

Information like Distro, Kernel, RAM, GPU, CPU, and Proton version will be displayed against each user’s review. You also have to option to filter for specific distros and hardware to narrow down results to systems similar to yours to check how well the game will run on your system specifications.

Moreover, ProtonDB uses a rating system to rate the level of success of running a Windows game on Linux. Games are rated from Platinum to Borked. Platinum means the game will run on Linux without any tweaks and Borked means that most users were not able to run this game on Linux. Native rating for games means that these titles will run on Linux without needing Proton.

You can learn more about the rating system of ProtonDB by visiting the official website.

You will need to apply tweaks to games with a rating of Gold or lower to run on Linux systems. This information, about which tweaks you need to apply to run games that need minor modifications, is also available on Proton DB.

If ProtonDB also specifies a specific Proton version required to run a Windows game, you can enable this game to run using that specified Proton version in spite of the version you selected while enabling Proton.

To do this:

  1. Right-click the game and open Properties.
  2. Click on the Compatibility tab.
  3. Enable the option: Force the Use of a Specific Steam Play Compatibility Tool.
    Screenshot after right clicking on a game in Steam, then on Properties, then Compatibility tab, and checking "Force the use of a specific Steam Play compatibility tool"

If you see any extra flags mentioned that are required to run a game you can go to the Set Launch Options tag and include extra flags.

To do this:

  1. Right-click the game and select Properties.
  2. Click on the General Tab
  3. Add any extra flags mentioned on ProtonDB in the Launch Options handle.

Play Games Using Steam Play

After confirming the status of a game from ProtonDB you can install the game from the Steam client. If you’ve followed this tutorial then all Windows games will be available to install in your Linux Steam Client.

Just download any game by clicking the Install button next to the game and specifying the download directory. Steam might also ask you to download additional tools like the Proton version etc. Accept their download.

Launch the game after installing it. Steam might take some time when launching a game for the first time as it is configuring the Windows-based game to run on Linux using Proton. After the first time, the game will run normally if you were able to configure it successfully.

Example Using Steam Proton & ProtonDB to Play Games on Linux

For this tutorial I tried out 3 games on my system – Septerra Core (a childhood favorite), Red Alert 3, and Journey.

Septerra Core is rated Silver, Red Alert 3 – Uprising is rated Gold, and Journey is rated Platinum.

Septerra Core didn’t work – it returned an error. After searching for the error online I found it’s not specific to Linux, and many other users have this error on Windows. That’s great to hear, in a way.

Septerra Core Error Screenshot

Red Alert 3 -Uprising also didn’t work – judging by what many others have reported on ProtonDB, I’m not the only one getting this error “Please install at least one language pack“. I didn’t try to troubleshoot and instead moved onto the next game for this tutorial.

Journey worked without any issues.

Conclusion

In this tutorial we learned how to use Steam Proton & ProtonDB to play games on Linux. We also learned that with games that aren’t rated Platinum, even if they are highly rated, you still may encounter errors that you’ll have to troubleshoot to get the game to work.

0 Shares:
Subscribe
Notify of
guest
Receive notifications when your comment receives a reply. (Optional)
Your username will link to your website. (Optional)

0 Comments
Inline Feedbacks
View all comments
You May Also Like
Usermod Command in Linux
Read More

Usermod Command in Linux

The usermod command allows us to modify an existing user account. With the usermod command, we can make…
Bash Wait Command
Read More

Bash Wait Command

The wait command in bash is a process management command that waits for the specified process running in…