Better Linux Gaming With Steam and Proton (2024)

If you're at all interested in gaming on PCs, you’ve probably come across Steam, Valve’s platform for distributing, updating and running games. Steam makes it possible to purchase a game, install it over the internet and then run it from the Steam interface. Ah, but that brings us back to the age-old Linux gaming conundrum of support, as not every PC game is designed to run on anything other than Microsoft Windows.

That said, there are plenty of Steam games that will run on Linux, and quite often, a Windows Steam game can be convinced to run on Linux even though some ‘fettling’ by the user may be required. This approach is officially supported by Steam using a system called Proton. Getting all of these things running, and then possibly optimising the results, is what we’ll be looking at in this tutorial.

Better Linux Gaming With Steam and Proton (1)

Steam itself is installed through a custom program called the Steam Installer. This makes sense, because Steam updates itself and the games you install with it, without relying on Linux’s own update systems. These days, the installer is in the official repositories of many Linux distributions such as Ubuntu and Fedora and their derivatives. As Steam is proprietary software you may have to enable a specific repository, such as ‘Multiverse’ for Ubuntu or ‘Nonfree’ on Fedora.

To install Steam on Ubuntu open a terminal and type

$ sudo apt install steam-installer .

If you’re running a DEB-based distribution, but you can’t find the Steam installer in the official repositories:

1. Download the the installer directly from the Steam website

2. Open a terminal.

Stay On the Cutting Edge: Get the Tom's Hardware Newsletter

Get Tom's Hardware's best news and in-depth reviews, straight to your inbox.

3. Install the downloaded file.

$ sudo dpkg -i [name of archive] as the super user.

The Steam application should now be available via your distros menu.

There is also another, unofficial, way of installing Steam that all Linux users might find interesting, and that is installation via the Flatpak system. This offers a few advantages of its own in terms of privacy and sandboxing, as Steam is a system unto itself once it’s on your system. Installation instructions can be found on the Flathub site.

Running Windows Games via Steam on Linux

Better Linux Gaming With Steam and Proton (2)

There are many great games that run via Steam on Linux, but what if you want to run a game that doesn’t offer a Linux version? In such cases, there is a good chance that it can be made to run using a system called Proton.

An official part of Steam on Linux, Proton makes use of both Wine and DXVK, layers that translate Windows software and graphics calls into native Linux ones. However, there are some caveats. Firstly, compared with how the game runs natively on Windows, performance and stability might be an issue. Secondly, it does raise some ethical questions as, arguably, running the Windows version under Linux might reduce pressure on the developers to make a Linux native version of a game.

Getting back to the first point, the best way to get answers about the viability of running a particular game is to search for it on the ProtonDB website to see what luck other Linux users had with it. The database itself is well organised and includes information about when the testing was carried out and what the specific hardware and software configuration used was. The level of success of running the game on Linux is rated from ‘Borked’ to ‘Platinum’. So, if you find a recent, highly-encouraging report about the game running well on a similar set-up to your own, the odds are good. In addition, ProtonDB reports contain information on tweaks you can use to make stubborn games run properly.

To run Windows versions of games on Linux:

1. Go to Steam > Settings > Steam Play.

2. To enable approved games select ‘Enable Steam Play for supported titles’. Or to enable all games, select ‘Enable Steam Play for other titles’. For the latter option check the game's ProtonDB entry for compatibility and issues.

Troubleshooting and Tweaking Steam on Linux

If you look through ProtonDB, you’ll notice quite a lot of references to Winetricks. So what is it? Winetricks is a helper script that installs various Windows components that are needed by games. The script pulls through the component and makes it visible to the Wine subsystem, and it’s worth knowing about, even if you’re using Wine outside of Steam.

To install Winetricks:

1. Open a terminal and change directory to Downloads.

$ cd "${HOME}/Downloads"

2. Download Winetricks.

$ wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

3. Change the file permissions to set Winetricks as an executable file.

$ chmod +x winetricks

4. Using Winetricks, install CoreFonts, used by Windows applications via Wine.

$ ./winetricks corefonts

Things can get complicated if you want to apply Winetricks fixes to a specific Proton game, but not by much. Thankfully, there is a helper script called Protontricks for just this purpose.

1. Install Protontricks. Open a terminal and use the Python packaging tool “pip” to install.

$ pip3 install prototricks

2. To apply Protontricks to a specific game, you need to discover the specific game ID of that game using Protontricks itself. For example typing protontricks -s fallout found Fallout and Fallout 4 installed on our Linux gaming machine.

$ protontricks -s <NAME OF GAME>

3. Visit the ProtonDB entry for that game. For example, we looked at the entry for Cyberpunk 2077 which has a gold rating, but requires a few tweaks in order to work.

4. Use the Winetricks commands that match the requirements for your game. Typically the syntax is.

$ protontricks [game ID] [Winetricks command]

5. Start your freshly-patched game via Steam.

Special Options for Steam on Linux Games

Some games may need special launch options to be added in order for them to run correctly. To do so:

1. Right click on the game name in your Steam Library and select General.

2. Type in the launch options from the ProtonDB entry. Typically these end with the string %command%.If there are multiple launch options, ensure that there is only one %command%

You may need to edit a game INI file.

1. Right click on the game name in your Steam Library, select Properties.

2. In the Local Files section click on Browse to locate the INI file.

This guide originally appeared in issue 281 of Linux Format magazine.

Better Linux Gaming With Steam and Proton (2024)

References

Top Articles
Latest Posts
Article information

Author: Jeremiah Abshire

Last Updated:

Views: 5632

Rating: 4.3 / 5 (74 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Jeremiah Abshire

Birthday: 1993-09-14

Address: Apt. 425 92748 Jannie Centers, Port Nikitaville, VT 82110

Phone: +8096210939894

Job: Lead Healthcare Manager

Hobby: Watching movies, Watching movies, Knapping, LARPing, Coffee roasting, Lacemaking, Gaming

Introduction: My name is Jeremiah Abshire, I am a outstanding, kind, clever, hilarious, curious, hilarious, outstanding person who loves writing and wants to share my knowledge and understanding with you.