Steam Play: Valve Over-Delivers!


WOW! As per my previous post, I was convinced Valve was on to something with the Steam Play leaks, but I was far from expecting such a quick rollout. Just a few hours ago Pierre-Loup Griffais from Valve wrote a post on the Steam Community Forums explaining the whole work behind the new Steam Play. And this is very, very big. Probably the most important news for Linux gamers in this year. Check the whole announcement!

This is the real thing: you can from now on play (a selected few) Windows games in Steam through a WINE-based solution called Proton, directly integrated in the Steam for Linux client. But let’s go through the most important points together:

Valve: So, two years ago, we started an effort to improve the quality and performance of Windows compatibility solutions for Steam games. A lot of our work has been in the form of supporting Wine[] and other existing compatibility projects.

This is the first piece of news. Until now, I must admit I had no idea that Valve has been working on this project for so long, and especially that they were directly working on WINE.

Valve: Our goal for this work is to let Linux Steam users enjoy easy access to a larger back catalog. We think it will also allow future developers to easily leverage their work from other platforms to target Linux. This would give them the option of focusing on areas that would make a meaningful experience difference for all users instead, such as supporting Vulkan.

Note that they mention “back catalog” as the main focus. I think it will go beyond that, since future games could also be made to work with Linux without much porting effort - note that the fact that they are pushing for Vulkan is great, since it should make the performance loss much less noticeable if any. For developers, they have this message as well:

Valve: We recommend you target Vulkan natively in order to offer the best possible performance on all platforms, or at least offer it as an option if possible. It’s also a good idea to avoid any invasive third-party DRM middleware, as they sometimes prevent compatibility features from working as intended.”

Yay for avoiding invasive DRMs! This kind of things made Doom 2016 unplayable in the first few months of its release.

Valve: DirectX 11 and 12 implementations are now based on Vulkan, resulting in improved game compatibility and reduced performance impact.

I was aware of DXVK’s support of DX11, but I was not expecting DX12 anytime soon. Impressive that both are in the scope of this work.

Valve: Fullscreen support has been improved: fullscreen games will be seamlessly stretched to the desired display without interfering with the native monitor resolution or requiring the use of a virtual desktop.

This is absolute great news. There are a number of games that work well through WINE but require such virtual desktops to work properly. Not having to deal with such inconsistencies is a huge relief.

Valve: Improved game controller support: games will automatically recognize all controllers supported by Steam. Expect more out-of-the-box controller compatibility than even the original version of the game.

Another kick-ass news. This means that you will now be able to enjoy playing games with your Steam Controller even for emulated Windows games. This was something that was not really possible until now with WINE, unless you used the non-Steam driver for that gamepad. The beta covers the following games for now:

  • Beat Saber
  • Bejeweled 2 Deluxe
  • Doki Doki Literature Club!
  • DOOM
  • DOOM II: Hell on Earth
  • Fallout Shelter
  • FATE
  • Geometry Dash
  • Google Earth VR
  • Into The Breach Magic: The Gathering - Duels of the Planeswalkers 2012
  • Magic: The Gathering - Duels of the Planeswalkers 2013
  • Mount & Blade
  • Mount & Blade: With Fire & Sword
  • NieR: Automata
  • PAYDAY: The Heist
  • S.T.A.L.K.E.R.: Shadow of Chernobyl
  • Star Wars: Battlefront 2
  • Tekken 7
  • The Last Remnant
  • Tropico 4
  • Ultimate Doom
  • Warhammer® 40,000: Dawn of War® - Dark Crusade
  • Warhammer® 40,000: Dawn of War® - Soulstorm

First, I have to say it. “Nier Automata” on day 1. Wow. WOW. This is a dream come true. Of course, STALKER is another big one, and Tekken 7 is huge as in it is the first serious AAA fighting game we can now play on Linux. Warhammer 40k Dawn of War is such a nice gift as well for us who enjoy the series.

Note there are also a couple of VR titles such as Google Earth VR and DOOM VFR: this means that going forward, we can expect a lot more VR support this way rather than begging for native Linux clients (that are very few to come by right now for VR games or titles).

And this list is supposed to keep on growing with time, of course:

Valve: We will be enabling more titles in the near future as testing results and development efforts progress; in the meantime, enthusiast users are also able to try playing non-whitelisted games using an override switch in the Steam client. Going forward, users can vote for their favorite games to be considered for Steam Play using platform wishlisting. […] New games will be added to the system without requiring a Steam Client update.

Valve is pushing all the right buttons here: Testing games before making them available to all Linux users. Letting users who want to experiment do it by themselves at their own risk. And relying on voting systems to put priority on which titles to focus on next. However, note that during the Beta period of Steam Play, you will not be able to purchase the supported titles as “Linux titles” from the Store:

Valve: Steam Play whitelisted games will not be offered for purchase or marked as supported on Linux on the Store during the initial Beta period.

They continue with the reveal of Proton, a custom version of WINE with added libraries, all open-source on Github:

Valve: Proton, the tool that Steam Play uses to provide Windows compatibility, contains a custom version of Wine as well as additional libraries developed alongside it. It’s fully open-source and available right now on GitHub”. 

Valve has been working with Codeweavers on this - this is something I suspected (there were several hints of this back in 2017 when i was in touch with Codeweavers) but it is nice to see a final confirmation. Proton contains the following features:

  • vkd3d[], the Direct3D 12 implementation based on Vulkan
  • The OpenVR and Steamworks native API bridges
  • Many wined3d performance and functionality fixes for Direct3D 9 and Direct3D 11
  • Overhauled fullscreen and gamepad support
  • The “esync[]” patchset, for multi-threaded performance improvements.

Apparently a lot of the improvements on WINE have been making it to the upstream project as well, so Valve is acting is a good open-source contributor. We also get the confirmation that Valve has been supporting the work of Doitsujin on DXVK since February this year. It was clearly expected (since Doitsujin refused any threads related to compensation), but it goes beyond that since they are also networking with the folks working on Mesa and the AMD/Intel and Nvidia driver developers****:

Valve: Employing the DXVK developer in our open-source graphics group since February 2018, and Providing direct support from our open-source graphics group to fix Mesa driver issues affecting DXVK, and provide prototype implementations of brand new Vulkan features to improve DXVK functionality Working with our partners over at Khronos, NVIDIA, Intel and AMD to coordinate Vulkan feature and driver support

To try things out, note that you need to opt in the Steam Client Beta in order to try out these changes, and ensure you have recent drivers.

Of course, I will be duly testing some of the games they have whitelisted very soon… Stay tuned for some more opinions on what they have done.

All in all, a great piece of news. This is probably the second most important announcement since the Steam for Linux initiative when all things started.

I am now expecting something related to a Steam Machines revival pretty soon (or maybe 2018?), because that would be the most logical conclusion of all such efforts.