Proton: The Native Port Killer?

By

The thrill surrounding the announcement of Street Fighter V coming to Linux was real. It was a few years after SteamOS was announced. After years of silence, fans started to doubt that this was becoming a reality. It wasn’t until two years after the initial release of Proton that Valve started to work with Capcom to try and make the Windows version compatible with Linux. Some people are still salty that it took this long to get here, and even more upset that this isn’t a native port. On the other hand, fans like myself are pleased that Valve/Capcom held to their word, even though they may have compromised a bit by making it Proton-compatible.

The same goes for Rocket League. End-users like myself naturally get upset when delays happen, even though we don’t understand what it’s like to be on the developer’s side. Several months came and went after the original announcement, and finally the Mac and Linux versions of the game went live on Steam. Fast forward a few years later, and Psyonix decides to drop the ball for said versions, leaving it up to Proton to pick up the slack on Linux and bootcamp for Mac OS. Don’t even get me started on the fact that they basically abandoned support on Steam altogether in favor of the Epic Crap Store.

One last example. Take Supraland, a 3D RPG that combines elements from Zelda, Metroid, and Portal. There were Windows, Mac, and Linux versions available at one point. Then a Linux user ran into a crash when trying to run the game. The developer is quoted as saying:

I know nothing about linux, I only know that everyone says it works perfect with Proton and also runs much smoother.

He further goes on to say, after receiving a second crash report:

I have no idea what to do with that and I couldn’t change anything about it. I just click “package for linux” and the engine [Unreal] does its thing. Maybe I should not release for Linux at all, if the windows version works better under Linux anyway. And it’s less work.

And sure enough, shortly thereafter Linux support gets dropped, although it’s still technically there on the testing branch for legacy support. The game seems to work better on Proton.

Many of us, to this day, are amazed at the work Valve and its partners have done to make Proton work so seamlessly on Steam during the two years it’s been around. Who would’ve thought you could download, install, and run a Windows-only game on a Linux machine just like you were running the game on Windows, without any extra steps or software to download? To be able to play Windows games without having to resort to Windows itself? Many titles work out of the box, with little or no configuration needed. Other games may need a couple of launch parameters, renaming some of the video files so they don’t play and break Proton, need a specific fork of Proton like Proton GE, or need Protontricks to get audio working. But those steps are fairly straightforward, and some may even find it a joy to figure out why their game isn’t working and what they can do to fix it.

Really, the only obstacles that hinder Proton from being able to play a game, as far as I’m aware, is:

  • Epic’s EasyAntiCheat (EAC) service, which, unfortunately, a lot of popular online multiplayer games use, including Fall Guys
  • Certain games that use DirectX12. GRID (2019) was unplayable prior to Proton 5.13-1 unless the user forced the game to use DX11. Now that Proton 5.13 has baked in the latest version of vkd3d-proton, DX12 support has now been added, and for all I know, that could mean most DX12 games work now
  • Games that play video files. Again, Proton 5.13 comes to the rescue by adding initial support for these files, although other titles still cannot be played, such as Her Story

For now, this where a native title would come in handy. Other than that, once Proton gets the necessary updates, I really don’t see any benefit of playing a native game versus a game run through Proton.

We’ve seen EAC temporarily see the light of day; Fortnite itself was playable for a short time. However, an update to EAC broke Proton compatibility once more. Though, we’ve seen a few games that offer the ability to disable EAC, such as Halo: The Master Chief Collection.

With the advent of Proton, I’m no longer begging the developer of a game to add support for penguins. Of course, we would all prefer to have a native version to be able to play, but playing a game through Proton provides the same experience. I really don’t mind the fact that I’m playing a game through a compatibility layer. Heck, a lot of the time the game simply runs faster, more smoothly, on Proton versus a native Linux experience. Hell, in some instances games run just a wee bit faster on Proton than on Windows itself!

Some folks still prefer the “No Tux, no Bux” approach. I can only feel sorry for them; as Proton is on the rise, the number of native titles seem to decrease, as shown in the chart below. I would cringe if I had only a few games in my Steam library available to play, which was why I was using Windows/Switch for a while until Proton came around. Two or three people boycotting Windows games, I tell you, is very much going to hurt developers (sarcasm intended).

Data courtesy of Nik Davis

As you can see here, the peak number of native titles for Linux on Steam was in late 2017. This number seems to have decreased a few months prior to the initial release of Proton, and that number only continued to decrease after that release. Bear in mind, too, that this only goes partway to 2019. I wouldn’t be surprised if there were even less native titles today.

So it seems like a win-win situation. As end users, we’re satisfied (most of us, anyway) because we don’t have to wait a year or two for the promised Linux version of a crowdfunded game to show up after the Windows release; for the most part we can start playing the game on Linux right away thanks to Proton. And for game developers, Proton has allowed their lives to be easier, since if they don’t want to include native Linux support, they can usually rely on Proton to get things done. It’s one less port that they have to worry about and have support for. Often times too, the developer doesn’t know much about how Linux works anyway – as demonstrated by the developer of Supraland – as Linux on the desktop is still very niche, and porting would likely require a significant amount of education (and money!) as to how Linux works (unless they’re using an engine that offers one-click support for different operating systems). And still, after all that, because we represent less than 1% of the market, sales would be insignificant. In the end I can understand why a developer would not want to take the time to port their game to Linux.

Store Fronts Galore

It seems like a lot of game store fronts for the desktop have popped up in the last couple of years: the Epic Games Store, Battle.NET, Bethesda, Uplay, Origin, etc. (some of these have been around for a while, but you get what I mean). This isn’t just a headache for us Linux users: Windows users have it bad too, because they have to launch a separate launcher to launch their game. At any rate, none of the launchers other than Steam have Linux functionality. This is where something like Lutris comes in; a launcher for your launcher to launch your game (have I given you a headache yet?). And Lutris uses the power of Wine/Proton to get those launchers to work. Obviously, if the launchers don’t support Linux, neither will any of the games they host. So again, this is where Proton and Lutris comes in handy. Who would’ve thought you could play Overwatch on Linux?

Understandably, however, these store clients may suddenly get an update that breaks Proton compatibility. In the end, though, Wine/Proton is pretty much the only thing we can rely on, as I doubt any of the developers of these clients will consider supporting something other than Windows. GOG announced six years ago that they were planning on bringing their Galaxy client to Linux. Nothing has showed up since then, and we have had to rely on unofficial, third-party resources like Minigalaxy to manage our DRM-free games in an organized fashion, or run Galaxy via Lutris.

It’s All Good, Right?

There’s always two sides of the coin. Proton has left developers who were once actively porting to Linux in the dark. A good example of this is the interview we had with Ethan Lee back in May. Author of the FNA project and the man behind quite a few Linux ports, including Transistor and Fez, he’s got a lot to say about how much Proton has affected his porting career:

It’s deeply troubling. Any developer who says otherwise knows they’re full of it and they’re just not ready to admit it yet. The short version: Watching the “this is fine” comic happen in real time with so many people has just been exhausting.

I encourage you to read the entire interview to get a better perspective of his situation. But essentially, because of Proton, he is no longer hired as frequently as he once was to help bring games natively to our platform. Now he has to look elsewhere, like porting games to the Nintendo Switch and to Google Stadia, to take care of himself.

When was the last time we heard from Feral Interactive, who many of us refer to as the “big daddy” of the Linux frontier? I haven’t heard anything from them in a while, at least on the Linux front. They’re still around porting titles to the Switch, iOS, Android, and to Mac OS, but, last time I checked, their last Linux port was Shadow of the Tomb Raider back in 2018. And with Apple moving their desktop lineup to the ARM architecture in a few years, I seriously wonder if they’ll even bother converting their algorithm or whatever program they use to convert games into an ARM format. (Will we even see Steam for ARM on Mac?)

Well, actually if we go to their “upcoming” radar, it seems Total War Saga: TROY seems to have a spot in the “Quite soon” category. But that seems to be about it for now. If anything, they certainly have a lot less porting tasks for Linux since Proton has been around. Whether that has financially hurt them or not, that obviously we don’t know, but I imagine it has to be a bit worrying.

So what’s the takeaway here? Proton has definitely been a blessing for us; there’s so many games out there that now work on Linux that would have taken so much more time, effort, and money if they had been ported manually. And a nice bonus is that, in many cases, running the game through Proton results in better performance in contrast to a native port – which, for all we know, might not even be native; it could be using a wrapper for example. But because of this, Linux developers have been forced to move away and focus on other platforms. If this bothers you, support the developers by other means. Think of Ethan Lee, Cheese, Virtual Programming, Aspyr. If you’re buying a game that has been ported from Feral, buy the game from their website rather than on Steam itself. If the game you buy isn’t available on Linux, buy it on Linux anyway. That way, the developers can get a glimpse at where their sales are coming from. It’s not likely that the sale numbers will cause them to add support for the penguins, but a nice bonus you’ll get is the game will work on Proton in most cases.