Mostly we code...sometimes we write. Every once in a while, we podcast.

A year since Proton's launch

It's been an exciting twelve months here at CodeWeavers. One year ago, Valve publicly announced and launched the product we had been developing together privately for over two years. This is Proton, an enhancement to their Steam Play initiative. Proton's slot in Steam Play is to allow Linux gamers to play Windows-exclusive games, using the Wine technology that we've spent decades developing.

Proton's launch day was exciting. The launch window that Valve set was after our Minnesota-based office closed, but we stayed after hours. We spun up a chat room with our contacts at Valve, ordered some pizzas to the office for dinner, loaded up all sorts of Steam-related news sites, web forums, and chat rooms, and waited for Valve to push the button. We were excited to see the reaction, yes, but we were also ready to react immediately to any emergency issues that users found as our work made its way into the real world.

But to our relief, the launch went incredibly smoothly. Nothing caught fire. Proton worked for most users. We feared we would hear, "everything is broken!" but instead we heard, "wow, this works really well!". One of my favorite reactions to the announcement came from Liam over at GamingOnLinux.com:

“Holy #@%$. Please excuse the language, but honestly, I'm physically shaking right now. I don't quite know how to process this.”
—GamingOnLinux.com - Valve officially confirm a new version of 'Steam Play' which includes a modified version of Wine

Since then we've gone on to make a ton of improvements to Proton. Here's some of the highlights from the past year that stand out to me.

  • Four major Wine version upgrades.
  • Extensive improvements to window management quirks, including contributing fixes and bug reports to the window managers themselves. Think alt-tab, window movement, fullscreen switching, mouse and keyboard focus, and so on.
  • A ton of work on improving gamepad support, including input mappings and rumble support.
  • Continued tracking the latest Steamworks and OpenVR SDK releases.
  • Implemented a VM-based build system to allow users to make custom Proton builds more easily.
  • Supported the development of and integrated FAudio, an open-source XAudio2 implementation, to improve our audio support for newer games.
  • Began shipping wine-mono, our open-source replacement for Microsoft .NET, and have continued to make improvements to it.
  • Tons of work to support non-English locales and languages.

Of course there are a ton of other improvements I didn't list here. Things that allow individual games to start working, small improvements for certain Linux distros, quality of life tweaks for users and developers, and some heavy lifting projects that have yet to pay off. And the sub-projects we depend on, like DXVK and SDL, have seen their own massive improvements over the past year.

Beyond our own work, we have also seen an amazing community spring up around Proton and Steam Play. There are a number of chat rooms dedicated to Proton, and Proton is now a fixture in Reddit r/linux_gaming discussions. One of the shining jewels of the community is the ProtonDB, where users can report their own experiences with running games in Proton.

The amount of effort and excitement around Steam Play over the past year really reflects how much energy we have on tap in the Linux gaming community. Steam Play allows Linux gamers to play tons of games with no extra effort. And it allows developers who may not have planned to develop for Linux to gain sales and an audience in the Linux market. Proton is one piece in the much larger picture of allowing the Linux platform to be competitive with, and even surpass, other platforms.

What's in store for Proton in the near future? I don't want to make any radical promises, so I will keep this realistic. On the short term roadmap, we're integrating vkd3d to support Direct3D 12 applications; we have some exciting improvements for controller support coming down the pipe; we are taking a serious look at performance and considering our options for making improvements without breaking everything that is already working; and we have some major plans for wine-mono. There's more going on, of course, but the timelines on those features are more nebulous.

Finally I'll close out this blog post with some stats. Everybody likes stats.

There have been 409 changes to the Proton project itself since release, not including any of the sub-projects. That's more than one change per day, on average.1

Between Wine 3.7, which the first release of Proton was based on, and Wine 4.11, which the latest release of Proton is based on, there have been 7,998 changes to Wine.2

The number of Proton-specific changes has been fairly stable. Proton 3.7 had 295 changes to Wine; Proton 3.16 had 391; Proton 4.2 had 374; and so far Proton 4.11 has 321. This means most of our improvements are going upstream to the Wine project, so all Wine users can benefit.3,4,5,6

According to an analysis of user-submitted ProtonDB reports by BoilingSteam.com, reports of Very Good game quality from the original Proton release has improved from about 30% to over 50%.

Thanks for reading, and thanks for playing.


1 proton.git$ git log --pretty=oneline proton-3.7-20180821..proton-4.11-2 | wc -l

2 wine.git$ git log --pretty=oneline wine-3.7..wine-4.11 | wc -l

3 wine.git$ git log --pretty=oneline wine-3.7..origin/proton_3.7 | wc -l

4 wine.git$ git log --pretty=oneline wine-3.16..origin/proton_3.16 | wc -l

5 wine.git$ git log --pretty=oneline wine-4.2..origin/proton_4.2 | wc -l

4 wine.git$ git log --pretty=oneline wine-4.11..origin/proton_4.11 | wc -l

About Andrew Eikum
Andrew was a former Wine developer at CodeWeavers from 2009 to 2022. He worked on all parts of Wine, but specifically supported Wine's audio. He was also a developer on many of CodeWeavers's PortJumps.

The following comments are owned by whoever posted them. We are not responsible for them in any way.

"Four major Wine version upgrades."

There are 4 Proton branches of Wine. 4 major Wine version upgrades would imply that there are 5. This might be an off by one error.

Congrats, Proton is amazing. :)

What are your plans for integrating all these goodies into the CrossOver product? I'm a happy paying customer, but often feel that CrossOver is many months behind the curve. Are we going to see more frequent releases?

Thank you so much, guys and gals, for your efforts to make this possible. I have run Linux full-time, both at home and at work, for many years now, and gaming is IMO the only area where the Linux experience has not been better than Windows. It will take time for the inertia of game-developers/studios to shift. Hoping Stadia (Linux/Vulcan) will help with that too. But Proton makes it possible for more people to switch to Linux and that can only be a good thing. There are other things than games that are currently Windows-only, but I think that if we could achieve parity with, or even surpass, Windows with respect to gaming, it could start a avalanche of people switching over. That, in turn, would make it more attractive to develop for Linux natively and create a feedback effect. Glad I decided to take out a life-time Cross-Over membership some years back. Money well spent.
Keep up the good work.

Just here to say thank you for doing this! I'm hoping VR on Linux will remain part of the Proton future.

Seriously, codeWeavers, Valve and all the other unnamed developers involved have made history and changed gaming in Linux forever. I hope I speak on behalf of all Linux gamers to congratulate you for your hard work and thank you for the joy it has brought to so many Linux gamers. Developers don't really get a lot of thanks, as they are normally swimming in bug reports. But I'd just like to say a BIG thank you.

Thank you so much!

When I first read about Proton on Reddit/Linux_Gaming I thought "oh no, there goes all of our Steam guides"
Because we have been publishing step-by-steps guides for Windows games in PlayOnLinux and going strong 7 years: http://www.gamersonlinux.com
It was a mix of emotions because now all of those Steam guides could be eliminated if the game runs fine in Proton.
So kinda disappointed but also excited!
This is what Linux gaming and developer need!

I know developing your game to run in Wine is frowned-upon, but its better than not playing it at all.
Specially thousands of old titles that will never get a Linux port!

So Now I'm excited because I have been testing several games in Proton and even play Elder Scrolls Online with my daughter... never would be able to play otherwise.
There are still a few Steam games that won't run in Proton due to DRM, dotnet, vcrun or other issues, but I've seen some cool hacks to allow games to run with some Launch Options.

With Linux, there is always a way!

Keep up the hard work Codeweavers & Valve! Thank you for supporting my favorite operating system and making my gaming dreams come true!

CodeWeavers or its third-party tools process personal data (e.g. browsing data or IP addresses) and use cookies or other identifiers, which are necessary for its functioning and required to achieve the purposes illustrated in our Privacy Policy. You accept the use of cookies or other identifiers by clicking the Acknowledge button.
Please Wait...
eyJjb3VudHJ5IjoiVVMiLCJsYW5nIjoiZW4iLCJjYXJ0IjowLCJ0enMiOi02LCJjZG4iOiJodHRwczpcL1wvbWVkaWEuY29kZXdlYXZlcnMuY29tXC9wdWJcL2Nyb3Nzb3Zlclwvd2Vic2l0ZSIsImNkbnRzIjoxNzMzNzU5ODAxLCJjc3JmX3Rva2VuIjoicTgzNnRNNEFnU2hLYlZCeSIsImdkcHIiOjB9