You think we were done writing about Steam Play? Wrong. Here's what Godot Engine's Rémi Verschelde and Marc Di Luzio (previously Feral Interactive, now at Unity) think about it.
First up, a few reminders on things we've already covered: our interview with the creator of DXVK, one of the projects that makes up Steam Play; our little chat with Linux game porter Ethan Lee; what Subset Games thought about it and my own personal thoughts can be found here.
For those really not up to speed: Steam Play's "Proton" (a modified version of Wine) allows you to play Windows games on Linux directly through the Steam client. See Valve's original announcement for more details.
When thinking about Steam Play and Proton, it's important not to end up stuck in the box speaking to the same types of developers. I wanted to ensure we got a broad range of thoughts here, since it will affect game engine developers, as well as developers of the actual games.
With that in mind, here's what Rémi Verschelde, the Project Manager of the impressive open source game engine Godot Engine had to say.
RV: “Linux as first class citizen in game engines
First point, the risk to see less native Linux ports if Proton is a no/low-cost option for decent Linux support. I do think there is a risk, and one way to reduce it is for game engines to really make Linux support a first class citizen.
That's what we do in Godot, where a high proportion of engine devs work from Linux directly (probably a comfortable majority, though I don't have stats), and we have a very high proportion of Linux users (download stats for 2018 so far are roughly 65% Windows, 23% Linux, 8% macOS and 4% miscellaneous).
First class support means that the engine should behave the same on all desktop platforms (at least as close as possible), so that devs can develop their game on their favourite platform, and then export it to all supported platforms with little to no platform-specific changes needed. That impacts the kind of graphics API that can be used (OpenGL, Vulkan), the platform-specific APIs that can be exposed or not, workaround case insensitivity on Windows, etc.
As Godot cares about all this and makes it relatively painless, I'm often surprised to see devs publish Godot games only on Windows. I also asked Twitter a while ago why developers using Unity or Unreal did not bother with Linux, and got quite interesting answers. The main reason beyond "market too tiny/don't care" is the cost of support for such a tiny market. Even if the engine supports easy export to Linux, but then your game has Linux-specific bugs, you may incur significant support costs that may outweigh the Linux sales.
That's where Proton offers a great alternative to such developers, as Valve basically takes the support upon themselves. So if you're lucky and the game works "out of the box" on Proton, you get (part of) the Linux market with little to no specific costs (according to Valve - time will tell if that's true).
That's why I think that for native games to stay competitive, we need game engine developers (looking at you Epic and Unity Technologies) to make it painless and low-risk to ship games on Linux (and macOS). For Godot games, if you have your QA done on Windows, and then have 3 persons to test the game successfully on different Linux distros, you should be good to ship basically. That's not the case yet with other big engines where Linux is an afterthought (editor support on Linux is yet another topic - but that's also important to ensure good export quality).
Proton's positive impact on FOSS and cross-platform tech
Valve's involvement in FOSS and cross-platform tech has been impressive recently, and the Proton announcement gave it all a lot of sense. Of course the advances in WINE and related technologies like DXVK are huge and benefit the Linux ecosystem as a whole. From Godot's perspective, they're not the most interesting though.
What's great for Godot is Valve's involvement in drivers and graphics APIs, which benefit cross-platform game engines directly. Their contributions to MESA mean that we get better compatibility and performance out of Intel and AMD GPUs on Linux. Their help with FAudio means that a great cross-platform audio library is becoming available also for engines like Godot to use (there are no plans/need for it right now, but it could be interesting to assess).
And most importantly in my opinion is Valve's involvement in the Vulkan stack (again, probably all done to prepare Proton's release). As seen on GitHub, Proton includes MoltenVK, the compatibility layer to run Vulkan code on Metal, and thus Vulkan applications on macOS. SteamPlay doesn't include Proton for macOS yet, but we see that it might be planned. And Valve had a direct role in getting MoltenVK open sourced, which led us to change our roadmap to focus on Vulkan support as soon as Godot 3.1 will be released.
This is *huge* for us, as it means that we can implement a Vulkan renderer and use it not only for Linux, Windows and Android, but also macOS and iOS! So there is little reason to keep our OpenGL 3.3/OpenGL ES 3.0 backend which causes so much pain on Android (terrible GPUs), Windows (terrible OpenGL 3 drivers on Intel IGPs) and macOS (terrible OpenGL 3 drivers for any GPU...).
Valve is also involved with Khronos in shaping Vulkan, and their Proton announcement specifically encourages developers to focus on Vulkan, as it's what will provide the best Proton compatibility. More Vulkan games and industry support will mean better Vulkan drivers, and should really help establish it as *the* cross-platform graphics API to rule them all. With compatibility layers like MoltenVK, gfx-rs, DXVK, etc., we can really focus on building outstanding cross-platform rendering technology based on Vulkan alone. For Godot, that's a dream come true.”
Has your coffee gone cold yet? Well, we also have some thoughts from Marc Di Luzio who previously worked to port games to Linux at Feral Interactive and has since moved to Unity. To be clear though, this is their personal thoughts. You can see Marc's full thoughts in this article on Medium, I will only quote (with permission) some truly relevant parts.
MD: "One thing that’s always struck me as curious in this community is that big-old Wine debate. Many of us are willing to throw Wine gaming under the bus, or embrace it outright, and duel with word-swords on the internet about whether to use Wine or not, but I’ve rarely seen someone get to the real meat of it — the question few seem willing to ask:
“What are you willing to sacrifice to get more games, and more people, on Linux?”
Would you sacrifice the overall quality of your games? Would you sacrifice your rights as a consumer for direct customer support on your platform? Would you sacrifice the safety of not getting banned by anti-cheat? Would you sacrifice the number of native Linux games and developers?
The way I see it, that’s been the truth of the matter for a while now. Something was always going to be sacrificed, it was simple physics, Newton’s first law. I think Valve has now brought us to that sacrificial altar and made the choices for us, but to be honest, that was always going to happen one way or another. To me, however, it seems that Proton is the lesser of a bunch of evils we could have faced. It’s minimised those sacrifices, and that’s all we could have hoped for, really."
Marc also made this sweet video to showcase some native Linux games.
I'm still waiting to hear back from Valve, Canonical and plenty of others so more on this may be a little while away. If you're a developer and you want to chat on or off the record about Steam Play, do get in touch any time.