Let’s just get something out of the way – Valve controls nearly the entire market for online game purchases on PC. They’re easily over 80%. Whatever they end up doing impacts the entire game industry, and this includes anything that affects them in reverse. If Valve does something, there’s a big push for the rest of the industry to follow especially if it’s a popular undertaking. Valve now wants people to be able to play games no matter which platform they choose, and Steam Play will be the vehicle to make this possible. Steam Play got its long-awaited overhaul today, and by god it is the most excited I’ve ever been.
I have to stress that as a fan of Linux for many years, and as someone who tried their best to play games on Linux for the longest time, and as someone who’s recently ditched Windows 10 entirely, I am in shock. Shock because Valve Time seemingly never affected this project. Shock that I don’t have to think about ever going back to Windows for anything, ever. At the start of this week everyone thought that the Steam Play leak was going to precede another year of waiting for the project to be complete. Everyone knew about the conspiracy theories surrounding DXVK and how absurdly fast it went from only having Nier: Automata working to more than a thousand DirectX 11 titles working out of the box.
In a blog post on the Steam News page, Valve announced the new initiative and outlined their intentions with it. According to the company, “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”.
This is a big change from the status quo. Game publishers on Steam were always able to see how many people on Linux machines would wishlist their games, but purchasing and playtime wasn’t properly exposed. Valve knew all along how many people were running Steam through a Wine layer to play their games, but they didn’t expose this properly either. With Steam Play, that now changes. Developers can not only see how many people are buying and playing their games on different platforms, they can also monitor in real-time how many people are playing their game on Linux or macOS using Steam Play, what kind of experience they may be having through some basic telemetry, and they’ll be able to receive feedback from gamers on their experiences as well as performance issues. This gives developers the tools to accurately gauge how many Linux gamers are actually interested in their product.
How do I get this?
It’s pretty simple. All you have to do is be on Linux or macOS High Sierra and download and install Steam. In the settings menu, switch to the beta stream by choosing the beta option under the Account menu, and allow Steam to restart itself. If you’re on Linux, you’ll need to set up things so that you’re on the latest supported software for your graphics card. That’s it. Now you can start downloading and installing games to test. There’s a growing list of games being tested by the community available via this link.
At launch, Steam Play will support the following games and applications:
Bejeweled 2 Deluxe
Doki Doki Literature Club!
DOOM II: Hell on Earth
FINAL FANTASY VI
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
PAYDAY: The Heist
S.T.A.L.K.E.R.: Shadow of Chernobyl
Star Wars: Battlefront 2
The Last Remnant
Warhammer 40,000: Dawn of War – Dark Crusade
Warhammer 40,000: Dawn of War – Soulstorm
You’ll notice that there are two VR titles here. Valve is making Steam Play possible by running a customised version of Wine, developed in close collaboration with the Wine development team and Codeweavers, to make Wine not just compatible with multiple games, but also multiple different kinds of hardware. The custom Wine project is called Proton, and it includes the ability to use the Steam API to support peripherals such as VR headsets, different controllers, racing wheels, flight sticks, and a host of other hardware. This is just as well, because Valve recently managed to land support for the Steam controller into the Linux kernel, so it is natively supported no matter what you’re doing.
Valve is developing Proton as an open-source project which invites any and all contributions to the code from the community, and the source is available for anyone to scrutinise and improve. Proton also includes other technologies that allow this to work, namely:
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
And the benefits are quite substantial. By supporting an existing project like Wine, Valve is ensuring that not only do they benefit from the decades of code support that they can lean on, but the rest of the Wine project benefits from their contributions upstream to the main project run by Codeweavers, who owns the Wine project. There’s a lot of positive changes to the gaming experience on Linux, including:
Windows games with no Linux version currently available can now be installed and run directly from the Linux Steam client, complete with native Steamworks and OpenVR support.
DirectX 11 and 12 implementations are now based on Vulkan, resulting in improved game compatibility and reduced performance impact.
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.
Improved game controller support: games will automatically recognise all controllers supported by Steam. Expect more out-of-the-box controller compatibility than even the original version of the game.
Performance for multi-threaded games has been greatly improved compared to vanilla Wine.
This… this is something big. Community efforts like Lutris have made incredible strides to turn gaming on Linux into a one-click effort, and those projects will still carry on supporting gaming through Wine and managing other platforms like Uplay and EA Origin. But what Valve has done here is made the ability to switch to Linux that much easier. It’s not native gaming, and native ports are still years away for several games, but they’ve managed to make switching to Linux that much simpler for anyone who has an existing library on Steam.
When I made the move, a third of my library had native ports available. Of the rest of the games I owned, half reportedly worked through Wine without trouble, and the other half either didn’t work or needed some fiddling to work. Nothing’s really changed, except for the fact that Valve does all the fiddling on my behalf now.