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: BeamboomAre there ever any reason to run anything but the latest version of Steam Play on any game, ever?
there have been regressions in wine, too.
So yes, it could occur that a game that used to run perfectly with an older version of wine/proton starts acting up in a newer version.
Last time i had this issue was with Star Citizen, that wouldn't install/update with wine > 3.19 (iirc) but ran fine (even better) with newer versions once it was installed ^^
If you don't check "Enable Steam Play for all other titles" then you can't play F2P Windows-only games.
They will be noted as added to your library but will never actually show up in the library. They only show up if you check this option. You can then install it, uncheck the option and the game will stay visible in the library.
Also, changing this option also means you have to restart the client, every time. Ugh.
Quoting: BrisseDefine "good practice". There is a risk in doing so, yes, but it's usually OK. And if you're looking at relative costs, those costs mainly come down to costs of time. It would take me far less time to restore my system from scratch after something I copy/pasted borked it up, than to learn what all the stuff means. And I'd only have to restore my system from scratch if the thing I copy/pasted actually borked up my system, which it generally doesn't, whereas I'd have to learn what all the stuff means every time I copy/pasted something (as long as it was about a different sort of problem each time, which is likely).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.
So blind copy/pasting of stuff from reasonably reputable forums is almost certainly less costly on average than learning what the stuff means first every time.
QuoteCan 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.
Simply add a game installed outside as Steam (let's say a Windows game from GOG), add it to your Steam library:
However, this might need an extra step due to a bug in the Steam client. When you pick a non-Steam game on Linux, it often cuts off the full path to it so it won't launch. It's easy enough to fix, but you do need to know where it was installed, this follows directly after the step above was done:
This Step never worked for me.
The only point that I don't agree is about the rating in Protondb, a lot of Platinum ratings have a lot of workarounds, so I don't think that if X game has platinum rating is good to go. I suggest to study about every game that you want to play, if someone can run, so try it by yourself
https://openuserjs.org/scripts/DanMan/Steam_Play_Community_Rating_Notice
https://github.com/dreamer/steam-dos
Quoting: randomgamerguy1997If only more games I play were compatible with proton... and Mod Organizer 2... and UGX map manager... and Origin... and probably other stuff I can't list off the top of my head
UE4 runs beautifully in proton. I guess a lot of the compat probably comes down to copy protection and anti cheat (if games have any :)
Example, i'm not sure EAC will work (might of been fixed by now :)
See more from me