Ethan Lee: Troubling Times for Porters in a Proton World


It has been a while we did not get in touch with Ethan Lee directly, also know as ‘flibitjibibo’ on the interwebs. The man needs no introduction as he is behind the ports of numerous games on Linux (including Transistor pictured above), and the author of FNA, an multiplatform FOSS framework made to be compatible with the now-abandoned XNA from Microsoft. We had a long conversation back with him in the days (check out our podcast from that time). We thought it’s a good time to check with him what is going on now that Proton has been out for quite a while and we now have sufficient perspective on how it impacted the market of porting games on Linux.

BoilingSteam: I think late 2018, after Proton was released, I messaged you and your overall tone was that “I’ll be OK” in terms of your personal situation regarding porting. Can you update us on what are you activities like, now, in 2020?

Ethan Lee: It’s going well enough, though my schedule leaves a lot to be desired. At the moment I’m working on 1 Switch game, 1 Linux game, 1 Stadia game (I had a couple others but they ended up getting cancelled because trails off), and FNA3D (which is funded entirely by my GitHub Sponsors page right now). This sounds like a lot, but it isn’t what I’m used to… back in the day I was working on close to 10 projects at once! I spent a bit of time early in the year getting in touch with developers and publishers, but that’s been pretty mixed. I’m used to publishers being a major blocker, but I’m surprised that developers aren’t as easy to get in touch with as they used to be. As a result, I’ve been burning some extra cycles on volunteer projects, like the Linux versions of Super Bernie World and Planetfriend. A common thread I’ve found with all my work lately is that my name is now recognized frequently, but it either does nothing for the pitch or actively makes it worse - for small devs they’re terrified that my invoices are going to bankrupt them because I’ve worked on such big projects (if you’re a small dev reading this, I promise this won’t happen), and for big devs it’s me having conversations like this, which I swear to god I’m not making up: “Hey, you have lots of games that could be ported, I can do a batch of them together and they could be done quickly and inexpensively!” “Wow, we’ve heard of you! We’re big fans of your work, etc etc” “… Sooo, does this mean I can do a free assessment to see what it’d take?” “No. Click” I dunno what I’m going to do about that…

BoilingSteam: You are directly involved in Proton with FAudio, do you contribute to Proton in other ways too at this moment?

Ethan Lee: Right now I’m not contributing to Proton. I review patches for FAudio and FNA, and someone does send some bugs my way when they’re tagged with XAudio2 and XNA, but that’s about it right now. My CodeWeavers contract was essentially to get those two integrated into Wine, so now that it’s done there’s just the occasional maintenance work (which there hasn’t been much of, luckily).

BoilingSteam: What is the current status of your work on FNA?

Ethan Lee: After FNA 18.10 my intention was to cut back on my hours for it, but funnily enough Proton ended up pushing those hours back up for a while. After the integration was done it went back down for a bit, and now it’s back up again for FNA3D. FNA3D’s really interesting in that it’s the first FNA project since SDL2# where I’m not working alone on it - FAudio did have a couple bounty hunters for a few features, but FNA3D is being worked on by 4-5 people right now, and I’m probably doing the least work out of everyone. Caleb Cornett just got done with our new D3D11 support (he also maintains the Metal backend), and thatcosmonaut is leading the charge on Vulkan support (they just got SpriteBatch working recently, which is a huge milestone). I was hammering out a lot of work when getting FNA3D back up to feature parity with FNA’s master branch, but now that that’s done I’ve mostly been an observer rather than an active participant. In a way this is a bit of a trial run for letting someone other than me manage the project and preventing myself from taking total control of everything, a first in FNA’s 7+ years of development. It’s definitely overdue and I hope it works out, because I’d rather my work not immediately get abandoned by everyone if I get hit by a bus or something.

BoilingSteam: From you side do you still get a lot of business from XNA/FNA related ports (whether for Linux or other platforms)?

Ethan Lee: Right now I have to be honest, the answer is “no”. I want to pretend that it’s because developers are handling Linux versions internally, because technically that is true, but taking a look at the big picture, it turns out those developers who were eager to make their own Linux builds weren’t overlapping much with XNA developers looking to get Linux versions. Just about every single newcomer to FNA’s community does multiplat builds right away, which I think is a major accomplishment for us relative to other multiplatform middlewares (while the raw number of games shipped is laughably smaller, compare the ratio of FNA games with Linux versions to Unity games with Linux versions, for example), but there are still lots of big, established developers that are dragging their feet on this. That’s who I’m more worried about right now, and unfortunately nothing has changed there in a long while. I was doing pretty well getting the attention of that first 90% of XNA refugees, it’s the other 90% that’s been a bit of a hassle. Of course, I’m capable of working on non-XNA things too, so it’s not totally hopeless on my end.

BoilingSteam: It seems like Proton has had a negative effect on the quantity of “native” Linux ports (it was fairly predictable), how do you view it on your end as a Linux user and gamer?

Ethan Lee: 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. The long version: I see this from a number of perspectives:

1: As a full-time independent developer, I’m reasonably confident that my work will hold up vs alternative runtimes. I know my current work can and should provide a superior experience, as it involves much less software which does not move as rapidly, and thus should provide fewer potential points of failure and should last for a long time. Most importantly, it is also comprised of a good percentage of Free Software since 100% of the code I own goes on GitHub, so users hacking the builds can do so with the native version instead of only having the option of saying “screw it” and cobbling together a half-working Proton build. The main difference between myself and many other developers as of writing is that I still maintain games I’ve already shipped, which brings me to another perspective…

2: As a developer on the inside, I’m fucking terrified that A: Developers who complain all the time about Valve having too much control and asking for too much are conveniently making this one tiny exception to hand complete control of an entire platform to them on a silver platter, and B: I’m the only one who seems to care at all about their own back catalog. If you had this whole catalog of stuff, and users found out that there was this thing that either visibly makes you obsolete, or is just as good as your best work anyway but with more control available to them, and your response is to just not do anything about it, they’re going to start asking why they’re giving you money in the first place. And that’s where my last perspective is:

3: As a user, I’m pretty disappointed in the way everybody is playing their part in building the platform. There isn’t a single person I can look at right now and go “yeah, what you’re doing seems like a good idea,” and the worst thing about it is that I can’t even say any of it is intentional. It’s just a laundry list of totally divided subgroups with no kind of singular goal or concern about any kind of long-term consequences in mind:

  • Linux specialists (myself included) aren’t putting in enough work to show that they’re still an essential part of the ecosystem- Valve haven’t communicated that Wine is a preservation project for old games with no developer behind them anymore and not an alternative to porting new games, and have let customers’ insatiable craving for the latest fad force them into unintentionally becoming a direct competitor with Linux specialists (and if a publisher that may very well not even be 100% tech literate was given the choice between some random Linux specialist with no corporate endorsements and Valve wielding a fake magic wand, who do you think is going to get their attention?)- Customers, without that communication, have in some cases started telling developers to stop trying (?!) and are not differentiating developers that care and developers that don’t- Developers actually took the advice from randos and have stopped trying even when they might have cared (?!?!)- The press have not effectively differentiated native and non-native games and are risking non-native games getting equal (or more?!) coverage than native

But no, yeah, everything’s fine. Insert bright sparkly message about the future here. This probably sounds insanely negative compared to everything else you’ve been hearing, but frankly we’ve spent enough time congratulating ourselves for stuff we’ve already done and not enough time looking at the systemic, non-technical problems we still have and making direct actions to address them.

BoilingSteam: The hopes of Proton “unlocking” the share of Linux as a gaming platform have now been clearly shattered, did you expect otherwise? What do you think is the next step for Linux gaming, what do you expect will change and what do you expect to be the same?

Ethan Lee: I expected an increase in users, which does appear to have happened, but I wasn’t expecting a revolution here. I was expecting a lot of Windows users, Windows 7 users in particular, to be able to say “hey, this old game that’s long dead finally has a streamlined path to running on a Linux system, I can run away screaming from Windows 10 now!” In my head I was envisioning an ecosystem where current Linux games were doing well, Proton was solving what I called the Back Catalog Problem (I even presented it this way at MAGFest 2019), and improvements were going to continue for future games as they had been up to that point, with Proton being the newest contributor (out of many others) to those improvements. When I saw Proton for the first time it didn’t feel like a threat, it felt like an opportunity, even as a Linux-native specialist. The opportunity to have FAudio and FNA help preserve so many old games while making both libraries more robust for native games was immediately clear to me. In my opinion, that part did end up working out (and I still greatly value my relationship with CodeWeavers, they’re absolutely wonderful people and I put 0.00% blame on them for anything I’ve brought up here, unlike everybody else), but virtually nothing else in that vision has really happened so far. Without a significant course correction, most likely from some kind of centralized leadership, we might be in a lot trouble going forward. The implication of “centralized leadership” makes me shiver, but with everyone running around like headless chickens I don’t have any better ideas here.

I have personally never believed that Windows 10 would drive people to Linux (no matter how much I despise Win10 as an OS). People complaining about any kind of change is the norm, not an indication of a drastic will to throw everything away. The Windows 7 -> 10 transition is mostly complete by now and I can’t find anyone in the Windows community bitching all the time about Windows 10 anymore. The Linux equivalent would be people *bitching about **systemd *back when it was a thing while it’s now a de facto standard in most major distros, and the complaints are gone, baby gone. People bitch about bullshit, then swallow it and move on with their lives.

Back on topic, Valve has some serious leverage in the Linux gaming community (they almost created it - of course there were other games on Linux before Steam, but let’s face it, it brought Linux as a market to a completely different level) and the release of Proton changed everything by making running Windows games something annoying to a one-click solution. What may have started as a “product to run older Windows games” ended up actually good enough to run even recent titles, from indie games to some full fledged AAA productions. This may have been collateral damage but the genie is out of the bottle now, and it’s very hard to imagine for one second that Proton will disappear or stop being a major element of Linux gaming even years from now.

But what’s next and what is Valve trying to achieve? What is the role of Proton for most games going forward? What about native ports such as what they released with Half Life Alyx in VR?

I still think that Valve is yet to play the Linux card sooner or later, to leverage something (probably hardware-based) that they can really own and shape the way they want.

Why? Because such long term investments in a platform which is absolutely tiny in terms of market share have to happen for strategic reasons.

Such plans may depend on numerous and wide-ranging environmental variables, and who knows when, how and if they will ever materialize.

In the meantime, the lack of visibility, the lack of an expressed direction is certainly a source of concern for developers and porters whose long term prospects are at stake, and make for a bittersweet situation to be in.