How to use Steam Play / Proton
Published on Dec 30, 2020 by: Ahmed Elsayed
Updated on Jan 13, 2021
Steam Play is announced by Valve in 2010, and according to their announcement:
Steam Play: a way for Steam users to access Windows, Mac and Linux versions of Steam games with a single purchase. More than 3000 of the games that have been added to Steam after that point have included Linux support, with more titles being added every day. Since then, we've continued to look for ways to make more titles easily accessible to Linux users.
Steam Play uses Proton to run Windows games on Linux, so these names are connected together.
Proton is a compatibility layer sponsored by Valve that is capable of running Windows games on Linux. Proton is a combination of WINE, DXVK, and VKD3D.
WINE is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, macOS, and BSD. Instead of simulating internal Windows logic like a virtual machine or emulator, Wine translates Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods and allowing you to cleanly integrate Windows applications into your desktop (desktop shortcuts, menu entries, and open-with entries).
Wine recently added support for ChromeOS, and Android.
WineD3D is a compatibility layer capable of running Direct3d from version 1 to version 11 by translating Direct3d calls to OpenGL calls on-the-fly. WineD3D is a part of Wine.
Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render 3D graphics in applications where performance is important, such as games.
DXVK is a Vulkan-based translation layer for Direct3D 9/10/11 which allows running 3D applications on Linux using Wine. DXVK is not a part of Wine, it is a separated project founded by Philip Rebohle, and later Joshua Ashton joined him to offer support for Direct3d 9 which was not supported before by DXVK, and they are both are hired by Valve to work on Proton.
VKD3D is a Vulkan-based translation layer for Direct3D 12 which is used by default on WINE, and Proton. It is founded by Józef Kucia, WINE developer, who passed away in 2019 at the young age of 30 in an accident, then the development continued by Hans-Kristian Arntzen who later joined by Valve developers Philip Rebohle, and Joshua Ashton
Proton started with Proton 3.7 which is the same version of WINE that they used, then they updated it later to Proton 3.16 which is WINE 3.16 with additional patches that was not included in WINE, these pathes have not included yet like proton_fs_hack, and FS_bypass_compositor
proton_fs_hack: fullscreen patch that allows resolution changes for fullscreen games without changing desktop resolution.
FS_bypass_compositor: bypass compositor in fullscreen modes which helps to reduce stuttering, and improves performance.
Proton was later updated to Proton 4.2 Proton 4.11 Proton 5.0
The latest Proton version is 5.13 which has a few issues that need to be fixed. Check this link for more information before using it https://github.com/ValveSoftware/Proton/issues/4289
Proton is enabled only for supported titles which is a short list for officially supported games that are tested, and known to work without any issues, but you can enable Proton for all titles by going to Steam (menu) Settings Steam Play Enable Steam Play for all other titles
press ok to confirm, then RESTART STEAM
Now, you can install, and play any games that are available only for Windows.
Games (menu) Add a Non-Steam Game to My Library...
(1) Click BROWSE...
(2) Select the executable of the game
(3) From file types choose All Files
(4) Press OPEN
Click ADD SELECTED PROGRAMS
If the game has any spaces in the name of the folder of the game, you need to rename it, and replace the spaces with underscores.
(1) Choose COMPATIBILITY
(2) Tick Force the use of a specific Steam Play compatibility tool
(3) choose the latest Proton version
- Proton only work with Windows games, but if you want to run a native Linux game, choose Steam Linux Runtime from the list instead of Proton.
- There is also Proton Expermintal which contain expermintal version of Proton which can help with new games