Looking to test the waters with Linux gaming and don't want to lose access to your favourite Windows games? Here's a simple no-nonsense guide to actually using Steam Play.
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, 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. You can also follow our Steam Play 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.
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.
To make viewing ratings 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?
Go into your Settings by clicking Steam in the top left of the Steam client, hitting Settings and then find Steam Play at the bottom of 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 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 Experimental is another version of Proton, which usually includes extra features and bug fixes that perhaps need some more testing. You can switch to it the same as you do for other versions of Proton in the Compatibility menu for each game.
What is Proton GE / GloriousEggroll
Proton GE is a community-built version of Proton. Since it's open source, anyone can build their own version. Proton GE is an effort to bring in specific fixes and enhancements as quickly as possible. Although it sees less testing, sometimes it's needed to get the latest Windows games running on Linux.
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. I personally use Lutris to get Wine + DXVK together to run Overwatch on Linux and it does work nicely.
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 on Steam, there is a way to force that. In the Steam Play settings, simply select Steam Linux Runtime, which is a container system for Linux native builds and so it makes it download that.
Just as a final note: Steam Play as a whole is still in Beta and not actually advertised anywhere on Steam. Don't expect perfection.
Quoting: BeamboomAre there ever any reason to run anything but the latest version of Steam Play on any game, ever?Plenty, there's often regressions. DXVK has had issues a few times, for example. Proton has also messed up multiplayer networking before and so on. Basically newer isn't always better right away.
Quoting: BeamboomAre there ever any reason to run anything but the latest version of Steam Play on any game, ever?
I think there's been the odd regression, but nothing major. The only real reason I could think of is that it'll guarantee that a whitelisted game will run "as intended".
Great 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!
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 always use shell commands when I want to help somebody, as it's the most reproducible way and the easiest to tell. It's great to have it visible though for cases where you know how it will look like - as in the Steam client.
Quoting: BrisseNice guide. Small nitpick: The definition of the gold rating is "runs perfectly after tweaks", so there is a good chance these require manual intervention as well.Sure, I've done a tiny adjustment to the wording based on my own experiences with gold titles and based on a bunch I looked up. A lot of the time, games are Gold due to old reports, not enough new reports, people using older drivers and so on.
Quoting: EikeQuoting: 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 always use shell commands when I want to help somebody, as it's the most reproducible way and the easiest to tell. It's great to have it visible though for cases where you know how it will look like - as in the Steam client.
While I agree that the shell is a phenomenal way to get things done, we still have to keep in mind that even the more savvy Windows user initially find it very off-putting. It's also not good practice to copy/paste random commands into a terminal before knowing what the commands actually do.
See more from me