How-To Geek: “Why You Should Use Proton Instead of the Steam Linux Runtime”

You should really just go play Escape Goat 2

The situation with Windows “API Compatibility” or emulation, however you call it, came to an inflection point when Valve started pushing or reassuring developers that they don’t need to port their games to Linux for them to work well on the Steam Deck. Jordan Gloor at How-To Geek has this article titled “Why You Should Use Proton Instead of the Steam Linux Runtime”:

When you use Steam’s compatibility features to run games on a Linux PC, you may have the option to run it with one of two utilities: Proton and Steam Linux Runtime. Between the two, you should probably choose Proton. Here’s why.

Gloor goes through a few reasons that it might be preferable for Linux gamers to use Proton instead of a native Linux port. Gloor says that the smaller size of the Linux game-playing audience means that the game developer may have spent fewer resources on making the port function well versus the Windows version of their game.

I don’t think Gloor is a bad person, but this is bad advice for both game players and Linux as a whole. Articles like this are disappointing, but they are the natural consequence of what Valve is doing by pushing their Windows API compatibility emulation layer over native Linux ports. It would be interesting if game developers have the option to disable Proton for their games because, and I cannot stress this enough, Windows emulation or compatibility layers truly are a coincidence when they work. Especially with games from smaller developers who do not have fantastic commercial success, I would not expect Proton to be the correct choice or to be surprised when Proton doesn’t work. Valve will most likely not take the time to make sure that, for example, Escape Goat 2 works in Proton. Yes, Escape Goat 2 is a real and very good puzzle game with a native Linux port. There are tens of thousands of games on Steam, it is impossible that these games will all work well in Proton. Linux users should absolutely go with the native port first, when they have the option.

Frozenbyte Developer Says Proton Better Than Older Linux Ports, Native Ports Not Worth Doing Yet

In a few threads on the Steam forums for an upcoming game called Starbase from Frozenbyte, the developer have spelled out that they believe Valve’s Proton Windows emulation compatibility layer is better than the older ports their games (Trine, Shadowgrounds) had:

Currently it’s probably a better idea to play the Windows versions of our old games via Proton, than trying to get the native versions running.

The majority of Frozenbyte’s games were brought to Linux, but they say it’s unlikely for Starbase unless the Linux audience increases in size:

If Linux gaming takes off (for example, because Steam Deck becomes a huge success), then we’ll have a reason to consider not-so-low-on-resources port, which may (and probably does) change the picture somewhat.

…and they say that another reason to do the port might be if people who play Starbase using Proton report issues:

I recommend using Proton, because it usually just works. If a user reports that Proton no longer works, we would pay attention, but can’t promise anything is done very fast.

These are just comments from an engine developer (Jukka Larja) at Frozenbyte on their game’s forums, so I wouldn’t consider them to be the final word in what gets done, but it seems likely that the statements are accurate and Frozenbyte won’t support Linux in the future if Proton is effective at running their games.

The Torvalds Situation

This is old news to some, but it’s still something I wanted to write about. Linus Torvalds, the Linux kernel creator and project manager, has stepped aside (temporarily) to work on his attitude, which is acerbic and awful. Spewing expletives and insults at anyone who dares to work on the kernel. At first, it wasn’t understood why Torvalds chose this moment to take a break.

Noam Cohen has the scoop for The New Yorker:

Torvalds’s decision to step aside came after The New Yorker asked him a series of questions about his conduct for a story on complaints about his abusive behavior discouraging women from working as Linux-kernel programmers. In a response to The New Yorker, Torvalds said, “I am very proud of the Linux code that I invented and the impact it has had on the world. I am not, however, always proud of my inability to communicate well with others—this is a lifelong struggle for me. To anyone whose feelings I have hurt, I am deeply sorry.”

It shouldn’t take a journalist looking into your attitude for some self-reflection to happen, but I’m pretty happy that this acknowledgement is happening at all.

Torvalds’ shitty attitude of non-conformity to being a good person was infectious, it helped encourage a younger Jack Slater to be a bad leader for the ioquake3 project in the IRC channel and on the mailing list. I thought this attitude made for a good leader, it had the opposite effect. Being an asshole only brought in other assholes and a few extremely great people who helped me change as a leader.

Other “open source” leaders like Eric S. Raymond have already been found to be complete shitbergs blocking the flow of progress, at least Torvalds had enough sense to step aside and try to change.

It is decades past time for better leadership in open source and free software. Bring out the open-source 3D printed ultra mega guillotine for the leaders who refuse to step-aside or change.

Cheese’s Thoughts on Steam Play (Proton)

Josh “Cheese” has a ton of thoughts on the latest developments with Valve’s Proton Windows pretendulation software for Linux gaming through Steam. Cheese is always good reading, but he provides some especially useful historical context for this conversation.

I am still extremely concerned for where Linux gaming is going with Valve-controlled pretendulation as the default mode for new and old games, instead of native ports. It isn’t something many people playing those games will care about, if the pretendulation is good enough for them.

Windows Pretendulation Is Bad Even When Valve Does It

Valve’s Pierre-Loup A. Griffais announced that they’re including their brand new fork of the WINE Windows pretendulator in a new beta product for Steam. They call it Proton. WINE is an open-source Windows API emulation layer that lets Linux users play Windows games without rebooting into Windows. I call this process “pretendulation” because it isn’t emulating the entire operating system, but it is still far from native.

That sounds good, more games for Linux, right?

Well, when I started writing about Linux gaming 18 years ago there was a commercial, closed-source, fork of WINE called WineX. WineX had a lot of fans, it was developed by people who had been working on Wine, which was a more generalized product for Windows software, to target game software. These developers of WineX (later called Cedega) did a good job at writing the software, but it had a number of issues.

One of those WineX issues was that Windows compatibility is a moving target. Any progress the WineX developers made to support new versions of Microsoft’s DirectX game software programming interface were usually still years behind where modern games were. If the latest Battlefield game came out and it only worked with DirectX 8 and WineX was still on 6 or 7, it was going to be a while until they could support that new game.

Even though new DirectX versions are less of a headlining feature in Windows these days, compatibility with a wide range of games is going to be a problem for Valve’s Proton as well. 

Any emulation, or translation, layer, is also going to introduce some amount of performance overhead. You can’t emulate a PlayStation 3 or Dreamcast at full speed on a lot of expensive computers today, but you can buy the original console for $50 that plays those games perfectly. The same issue happens with emulating Windows APIs under Linux. Some games will only have a very small hit to performance, but others might be more of a problem and you won’t get the same framerate that you do under Windows.

So there are compatibility and performance issues, that’s it, right? Nope, there’s one more technical hurdle. When something breaks, you’re not going to know if it’s the game or the emulation layer. I imagine this will infuriate some developers.

Valve claims that games they’ve tested and whitelisted in this beta have an almost identical gameplay experience to Windows, and they acknowledge the performance overhead. Valve doesn’t acknowledge the negative effect this will have on real native ports of games. Back in those WineX days there were some developers and publishers who cancelled their plans for native Linux ports because Windows pretendulation was “good enough” for them, even when Wine or WineX didn’t provide a great experience for players.

“Good enough” Windows API emulation eventually turned into developers porting their games with Wine wrapped up into a library, giving Linux players some of the half-assed ports they have today.

One additional issue that wasn’t a problem with WineX, these improvements to Wine are only designed to work with games on Steam. You won’t be playing Battlefield  5 with Proton. Although Valve’s fork of Wine is open-source, unlike the old WineX fork which had its source closed behind an agreement that the executives at Transgaming later deleted and refused to acknowledge.

Proton is an interesting technology, but a bad thing for anyone who loves Linux gaming and wants native ports of games brought to Linux.