Proton - The Trojan Horse
Last month, Valve announced the Steam Deck, a new handheld gaming computer that is set to be released in December 2021.
The hardware itself has generated a lot of interest from the community, driven by the modern AMD Zen 2 / RDNA 2 architecture and the “open” nature of the platform, which is essentially a PC with an integrated controller.
I do not plan to cover the hardware specification in this article, which has been thoroughly covered by the usual suspects (IGN, Digital Foundry, etc.)
With that said, I would recommend watching the Linus Tech Tips video (embedded below), which is a fun “rapid-fire” hands-on of the hardware and software.
Although I am always excited about the release of new hardware, it is the software direction that has me most intrigued.
It is well known that Valve has a love/hate relationship with Microsoft. In 2012, Gabe Newell (Valve CEO) publically expresses his frustration and concern regarding the direction Microsoft was taking the Windows ecosystem, essentially creating a “walled garden”.
As a result, Valve has been slowly increasing its commitment to Linux, with the release of Steam Client for Linux, SteamOS (Linux-based), Steam Machines, etc. They have also contributed to several open-source projects focused on Linux software compatibility.
Although not restricted to a specific operating system, the Steam Deck will ship with a new version of SteamOS, which is a modified version of Arch Linux.
To ensure compatibility, Valve has made some bold claims regarding Proton, which is an open-source project developed by Valve and CodeWeavers that provides a Linux compatibility layer for Windows games.
Proton is a fork of the popular Wine compatibility layer, which was first introduced in 1993. The name Wine stands for “Wine Is Not an Emulator”, which is an important distinction, as it aims to translate (not emulate) Windows API calls into native POSIX calls. This approach eliminates the performance and memory penalties of methods such as emulation and virtualisation.
Proton focuses on graphics APIs, achieved via Direct3D-to-Vulkan translation layers, specifically DXVK for Direct3D 9, 10, 11 and VKD3D for Direct3D 12. The goal is to deliver compatibility and (where possible) native performance.
The video embedded below from Tom (GloriousEggroll) provides a great overview of how proton works, including the key components and game examples.
In 2018, Valve integrated Proton into the Steam client, known as “Steam Play”. The results are impressive, but not perfect. For example, many games run poorly or fail to run at all. The website ProtonDB tracks compatibility across 19,000+ games, with 15,000+ reported as working.
However, as part of the Steam Deck announcement, Valve has stated its intent to achieve 100% compatibility of the entire Steam Library ahead of the Steam Deck launch in December 2021.
This is a highly ambitious outcome, but not without precedent, knowing that Valve has been actively exploring this space since 2012.
Assuming success (or 90%+), Proton could help re-position Linux as a first-class operating system for gaming, with the Steam Deck acting as a trojan horse to showcase the possibilities.
The ramifications could be profound, further reducing the reliance on Microsoft Windows, which would be a win for hardware vendors and consumers, recognising the free and open-source nature of Linux, as well as the inherent privacy and security benefits.
In conclusion, I am eager to see the Steam Deck succeed, not because of the great hardware, but what it could mean for the software ecosystem. considering the history, it is also safe to assume that Valve has a similar ambition, providing unrestricted access to their Steam digital distribution service.