For a staggering 23 years, the developers at Codeweavers have undertaken the gargantuan task of enabling Windows software to run on Mac and Linux operating systems. Among other accomplishments, the company’s collective work and collaboration with Valve resulted in a massive leap forward in Linux gaming with Steam Proton. I recently sat down with Codeweavers CEO and Wine developer Andrew Eikum for an illuminating conversation about the challenges they face, working with Valve, and the future of gaming and software on Linux.
You may know Codeweavers best for its CrossOver products; the company’s core focus is making it easier for Windows developers to port their software to Mac and Linux and for end-users to run them. Pretty much of all their work revolves around the Wine Project, a compatibility layer that lets Windows app run on other operating systems (2/3 of Codeweaver’s employees are actually Wine developers).
Given its lengthy history and resurgence of exposure from its partnership with Valve, there was no shortage of insightful observations and advice for developers, Linux distributions and the Linux community in general.
Here are some notable highlights from the entire interview.
On Fighting Windows DRM And Anti-Cheat Software
“We’re rewriting the Windows operating system from scratch,” says Andrew Eikum. “So you need to implement each of those features that Windows provides, and Windows is a very big operating system.”
CEO Jeremy White adds “We have fairly limited resources and effectively an infinite supply of work to do. Picking how your prioritize is a challenge. One of the joys of Proton is we’ve been authorized to work on some of those harder tasks.”
Harder tasks like what? Well, this won’t surprise some of you:
“You do get the lovely anti-cheat software stacks which are designed to not run on certain environments, and those are very difficult to support,” says Eikum.
He’s referring to BattlEye, Easy Anti-Cheat (present on Gears 5, Fortnite and Halo: The Master Chief Collection among several other games) and various DRM layers that present a real challenge to Linux gamers and Codeweavers itself.
“The way that those work is digging into how those modules are implemented on Windows,” says Eikum. “By definition we’re different from that. So when the software goes in and makes sure Microsoft has signed it, or that the image on disk matches certain features it expects it to have, it’ll quit and say ‘this isn’t a legit copy of Windows.’ Because they’re right, it isn’t!”
That seems like a nightmare scenario. Surely the only way to hurdle this kind of obstacle is having direct cooperation from the developers of this software?
“That’s one option,” answers Eikum. “There’s a lot we can do without the assistance of the developers. For various technical reasons the dll files on the disk don’t match the libraries that we load and run in Wine. So we’ve put a bunch of work into this the past year, to make it so the files on disk actually match what we’re running in memory. And that’s to help a lot of the DRM and anti-cheat stuff.”
It’s not an overnight solution, but Codeweavers is laying the foundations necessary to reach that solution.
I got the distinct impression from our chat that Codeweavers feels confident about the future of, in particular, running Windows games on Linux. But will “everything” be able to run on Linux at some point?
“I think saying everything would be too optimistic,” White says. “But saying just about everything – especially if you give us 3, 4, 5 years – feels like a plausible path for us. And that’s certainly the goal we aspire to.”
“All the major problems we know about are, in theory, solvable,” adds Eikum. “You get into some issues if the Windows Store were to take off, but in terms of Windows applications running in Wine nothing is technically impossible. It’s just how much work and how much time and resources it takes to get there.”
On Working With Valve And Developing Proton
Resources are something Codeweavers have a much healthier supply of these days. That’s because from the very beginning of the Proton project (Codeweavers was initially approached and contracted to work on it in 2016), Valve gave the company a clear direction.
“Valve’s marching orders were basically to get every game to run on Linux, and get it running ‘at speed,’” says White. “Valve has always mandated that they just want someone to come home, pick up a controller, and ‘just play.’ And we have a fanatical devotion to that. One of our critical goals is that when a game comes out on launch day, it just works. We’re not hitting that every time, but that’s a very exciting road to be on. ”
One of several recent examples is RAGE 2, which didn’t even run on Linux when it was first released. So on launch day, Eikum sat down with the game and discovered it was missing a function in the VisualStudio library. One afternoon of work enabled a fairly large AAA title to work right out of the box. And this is the type of work Codeweavers is doing constantly.
Something else that sets Proton apart from the standard Wine experience is the various manual tweaks, WineTricks changes and various “recipes” that are now automatically implemented inside the Steam client.
“One of my favorite parts about working with Valve on Proton is they’ve given us the freedom to fix the hard problems and do it correctly.”
Codeweavers’ Advice To Linux Distribution Maintainers & Game Developers
“If a game developer hasn’t started writing a line of code, if you use Unity you’re likely to get a better cross-platform result,” encourages White.
Indeed, my recent interview with indie developer Bearded Giant Games backs up this statement, and his sales data is a testament to the fact that bringing games to Linux is not a waste of time.
“The world I’d love to live in is all developers testing on Wine during the development process. A universe I want to see is every game running on Windows 10 and on Linux via Proton,” White says.
Fortunately, we do live in a world where thousands of Windows-only games are now playable inside of the Steam for Linux client, largely because of a decades-long investment into Wine. That means gaming is getting much more attention on Linux distributions.
On that front, Codeweavers offers some advice for the folks developing and maintaining Linux distributions:
“Pick a good window manager!” exclaims Eikum. “Beyond that, keep your drivers and software up to date. If you fall behind on those then you’re missing features and it’s hard for us to support. If we find a bug in a window manager, and it takes a year to ship that update in your distro, we have to work around that or users just have to deal with that for a year.”
Listen To The Full Interview
Jeremy White and Andrew Eikum also speak about the early history of Codeweavers, the potential for Proton on macOS, and go into detail about the company’s work alongside Valve in the following interview:
>> Source Link