Looking to test the waters with Linux gaming and don't want to lose access to your favourite Windows games? Need to know how games actually run on Steam Deck? Here's a simple no-nonsense guide to actually using Steam Play Proton.
First of all, what is Steam Play?
In simple terms: it's a feature that allows you to run compatibility layers in the Linux version of the Steam client announced by Valve (here) back in August 2018. Proton is one such compatibility layer, the one people usually talk about, allowing Windows games to be played on Linux. Proton bundles together other projects like Wine, DXVK and more under one roof so there's no fussing around. So we're clear: Steam Play is the feature, Proton is the software you run.
Some games are flawless, some have major issues. Thousands of games are currently reported to work!
How can I check compatibility with my Windows games?
Take a look on ProtonDB. Enter the game you wish to see and it will give it a rating from Platinum down to Gold, Silver, Bronze and Borked. If a game is rated Platinum from the user reports, you're good to go. If it's rated Gold, a lot of the time it will still work without issues but it may need some tweaks. Anything below Gold, is likely to require some manual effort.
You can also follow our Proton tag for major developments and be sure to check out our dedicated Steam Play section.
For the Steam Deck specifically, Valve has their own rating system with Deck Verified. Currently you can see what titles are Verified on SteamDB or on Steam Store pages like this when you scroll down on the right side of the store page:
The Steam Deck rating likely only shows up if you're in a supported region. Otherwise, ProtonDB will also show it.
To make viewing the crowd-sourced ratings from ProtonDB a little easier, you can try the plugin "ProtonDB for Steam" (Firefox, Chrome) which adds the rating to store pages like this one for DOOM:
There's also the Augmented Steam plugin, which supports Firefox and Chrome (a continuation of Enhanced Steam, no longer maintained) which adds a ProtonDB link to store pages and tons of other things. Doesn't show the rating though yet.
How do I enable Steam Play?
If you're on Steam Deck, it's enabled out of the box. If you're on Linux desktop: go into your Settings by clicking Steam in the top left of the Steam client, hitting Settings and then find Compatibility in the list as seen below:
What does each checkbox actually do?
- The first tickbox originally enabled Steam Play only for those titles that Valve have added to their whitelist (see the whitelist on SteamDB here). This is a list of titles picked by Valve, that should "just work" with a version of Steam Play Valve picks for you. Valve don't actually do this any more, so now it's just to turn Steam Play on.
- The second tickbox, enables Steam Play to be used on all of your games in your Steam library.
However, you can actually force a specific version of Proton (the name of the Steam Play tool) on any item in your Steam library. By doing this:
This is handy for two reasons:
- If you don't tick the second box in the Steam Play settings, your Linux supported games and Windows games remain in separated lists. This allows you to pick individual games to try.
- If a game on the whitelist runs better in a newer version of Proton, you can pick it yourself.
What else do I need?
Up to date graphics drivers are essential! If you're on Ubuntu or an Ubuntu-based distribution like Linux Mint, elementary OS and others Valve's own guide is your best bet.
How to check if Proton installed?
It should be done automatically by Steam. If you search for "proton" in your Steam Library, it should show a list of the currently available official versions of Proton.
You should also check you have the "Steam Linux Runtime" and "Steam Linux Runtime - Soldier" installed. Search for them in your Steam Library and ensure they are installed.
How do I update Proton?
It's automatic like other games and applications on Steam. It will show up in your Steam Downloads.
Sounds good, what are the drawbacks?
For a number of online-only competitive games, anti-cheat systems often prevent the Windows game working with Proton. Easy Anti-Cheat and BattlEye enabled games are ones to especially avoid right now. Easy Anti-Cheat has announced it now works with Proton (and later it became even easier) but developers need to enable it. BattlEye also announced support but again developers need to enable it. It may be a long time before developers do it.
Those are just two very well-known examples, there's a lot of different systems out there. As always, check first on ProtonDB like mentioned above. However, games that use Denuvo should be fine.
Don't use the NTFS (Windows default) file system for your Windows games, using a Linux filesystem like Ext4 will prevent some odd issues. It's always best to have a normal Linux filesystem for storing games that are run on Linux. Sharing a drive with Windows is messy.
Additionally, you're likely to get less performance than you would on Windows. Although, there are cases where the game will perform just as well. If you see Steam saying it's compiling shaders when trying to launch a game, let it do it, otherwise performance will be lower and you'll see lots more stuttering.
What are DXVK and VKD3D-Proton?
- DXVK - this translates Direct3D 8, 9, 10 and 11 into Vulkan.
- VKD3D-Proton - this translates Direct3D 12 into Vulkan.
Why does Direct3D / DirectX need to be translated? They're proprietary tech from Microsoft and only available on Microsoft platforms like Windows. While Vulkan is cross-platform open standard available across many platforms.
What do I do if I have issues?
You can ask for help in our Forum, we have a dedicated channel for it in our Discord and there's also Valve's bug tracker on GitHub.
Do Windows games purchased and played in Steam Play Proton count as Linux sales?
Yes they do. Providing the majority of your time playing it was on Linux. More info on our Steam Tracker.
Can Steam Play be forced onto native Linux games?
Yes! Simply follow the same method above to force it.
Why would you want to do that? The Linux version might be outdated, perform badly, broken on a brand new distribution or any number of reasons. Steam Play at least gives you a possible backup option when things like that happen.
Can Steam Play be used for games not on Steam?
Yes! On Steam, you can add non-Steam games and also force Steam Play on them using the same method as shown above. Be sure you actually have Proton and "Steam Linux Runtime - Soldier" installed, otherwise you may have issues (bug report) with external games as they don't pull them in automatically like Steam games do.
Simply add a game installed outside of Steam (let's say a Windows game from itch.io or GOG), add it to your Steam library. In this example, I am using Syberia II. Do note the extra step that's often required, as Steam likes to cut off the path name to a Windows executable if there's a space in a folder name. It's easy enough to fix, as the rest of it is usually hidden in the "Set launch options..." button so you can copy and paste it. Here's how to do it all:
What is Proton Experimental, Proton Hotfix, Proton Next?
There's a few version of the official Proton now so here's a brief explanation:
- Proton Experimental - Gets regular updates, with features and fixes not ready for everyone and can include some breaking changes that need new driver versions.
- Proton Next - The upcoming new stable version of Proton that needs testing (not always available).
- Proton Hotfix - A few extra fixes for specific games.
Then there's the numbered versions, which make up the "stable" releases, which is what most people would be using. Usually the latest release will replace the one before:
- Proton 9.0-x - The latest in the stable series. Released May, 2024.
- Proton 8.0-x - The previous stable version. Released April, 2023.
- There's also the Proton 7.0, Proton 6.3 series, Proton 5.0 series, Proton 4.2 and so on - these are all older stable versions left up in case specific games need them.
What is GE-Proton / GloriousEggroll
GE-Proton (formerly Proton-GE) is a community-built version of Proton. Since it's open source, anyone can build their own version. GE-Proton is an effort to bring in specific fixes and enhancements as quickly as possible. Although it sees less testing and can come with other issues, sometimes it's needed to get the latest Windows games running on Linux before Valve has time to fix them in the official Proton releases.
What about Proton outside of Steam?
Proton (the software) is open source and available on GitHub. However, using it outside of Steam is not recommended and can cause issues, especially as newer versions of Proton are built against the latest Steam Linux Runtime. Instead, you can go for Wine directly (remember, Proton is Wine + extras). To ease the process the game launcher Lutris can make it a lot friendlier, you can also try the Bottles app and even the Heroic Games Launcher.
How do you force Steam to download a Native Linux game?
If, for whatever reason, you wish to ensure Steam downloads a Native Linux build of a game (if one exists), there is a way to force that. In the Properties -> Compatibility menu, simply select "Steam Linux Runtime", which is a container system for Linux Native builds and so it makes it download that. If that option doesn't appear, it likely doesn't have a Linux build.
Finally here's a video quickly going over some points:
Direct Link
Quoting: scaineGreat guide though. Thanks for this - the gifs tell the story better than words ever can. It's nice to have a guide on a Linux technology that doesn't need you to open a bash shell!
I have honestly never understood why the bash shell is such a huge problem for people. I mean, a lot of stuff is easier, faster and more precise to do via a shell command than in the GUI. Especially when people have different desktop environments.
For example, installing programs. I only use synaptic when I don't actually know the package name... or I want to install a large list of programs.
sudo apt-get install firefox
is much faster and easier than going through the GUI. (Using Firefox as an example)
That said, I think that articles and posts that give people commands to run could do a better job of explaining those commands.
Quoting: AussieEeveeQuoting: scaineGreat guide though. Thanks for this - the gifs tell the story better than words ever can. It's nice to have a guide on a Linux technology that doesn't need you to open a bash shell!
I have honestly never understood why the bash shell is such a huge problem for people. I mean, a lot of stuff is easier, faster and more precise to do via a shell command than in the GUI. Especially when people have different desktop environments.
For example, installing programs. I only use synaptic when I don't actually know the package name... or I want to install a large list of programs.
sudo apt-get install firefox
is much faster and easier than going through the GUI. (Using Firefox as an example)
That said, I think that articles and posts that give people commands to run could do a better job of explaining those commands.
The shell IS a problem for regular Windows users testing the Linux waters...
Steamplay is supposed to be a click'n play experience.
And if You are 40+ years old like me, the bash shell will remind you so much MS-DOS...
I used console commands 24 years ago...No, Thanks!
Is the developer's duty to make a proper click'n play Linux experience for the users... (especially, the Windows users, if the migration is the target)
Remember that all these Linux experiments by Valve are part of a plan B in case of Microsoft closing the garden with a pay wall.
Quoting: AussieEeveeWell, everyone works differently. Some people are heavily visual learners, command line tutorials do not help them in any way.Quoting: scaineGreat guide though. Thanks for this - the gifs tell the story better than words ever can. It's nice to have a guide on a Linux technology that doesn't need you to open a bash shell!
I have honestly never understood why the bash shell is such a huge problem for people. I mean, a lot of stuff is easier, faster and more precise to do via a shell command than in the GUI. Especially when people have different desktop environments.
For example, installing programs. I only use synaptic when I don't actually know the package name... or I want to install a large list of programs.
sudo apt-get install firefox
is much faster and easier than going through the GUI. (Using Firefox as an example)
That said, I think that articles and posts that give people commands to run could do a better job of explaining those commands.
It's also the perceived difficulty. A quick few buttons to press, compared with typing out or copy/pasting commands (which if done incorrectly, can at times break an entire install) is going to be much more inviting to Windows dual booters and converts.
There's many guides out there for the command line for people to go and find if they want them, I aim to make things simpler for the average and below average users.
Quoting: Liam DaweI'm somewhere in between. I understand why people are intimidated by the command line thing. It looks intimidating and it's, how to put it, obvious that you don't understand what it's doing. I mean let's face it, when you click a button on a GUI you don't understand what that does either, but it has a simple word or image on it that gives you the impression that you understand. So you don't feel intimidated.Quoting: AussieEeveeWell, everyone works differently. Some people are heavily visual learners, command line tutorials do not help them in any way.Quoting: scaineGreat guide though. Thanks for this - the gifs tell the story better than words ever can. It's nice to have a guide on a Linux technology that doesn't need you to open a bash shell!
I have honestly never understood why the bash shell is such a huge problem for people. I mean, a lot of stuff is easier, faster and more precise to do via a shell command than in the GUI. Especially when people have different desktop environments.
For example, installing programs. I only use synaptic when I don't actually know the package name... or I want to install a large list of programs.
sudo apt-get install firefox
is much faster and easier than going through the GUI. (Using Firefox as an example)
That said, I think that articles and posts that give people commands to run could do a better job of explaining those commands.
It's also the perceived difficulty. A quick few buttons to press, compared with typing out or copy/pasting commands (which if done incorrectly, can at times break an entire install) is going to be much more inviting to Windows dual booters and converts.
There's many guides out there for the command line for people to go and find if they want them, I aim to make things simpler for the average and below average users.
But when it comes to troubleshooting, copy-pasting some instruction into the command line is in actual fact often easier to do, significantly less dependent on specifics of version and distro and such, and will work for a much broader range of problems. After all, often something goes wrong and there isn't actually a thing to click on a GUI, however deeply nested into the depths of settings you go. In Windows there will be a tendency to give up at that point; on Linux there will be somebody somewhere who can figure out what you need to copy and paste into a command line.
So while I understand why people are intimidated by the command line, and I'm pleased that there are more GUI things to use for many things on Linux than there used to be, I still think it's good for people to get over the idea that the command line is to be avoided at all costs.
See more from me