Emulation rather than native ports the ideal technical direction forward for the platform
There is no business case to be made for officially supporting Linux with mainstream games as things currently stand, John Carmack has said.
Speaking on Reddit, the id Software founder said that while he would be tempted to port to Linux for technical reasons, such as using Valgrind, working on open source Linux OpenGL drivers and running experimental GPU features, the platform barely made it into his top ten priorities.
He also stated that while he was happy that id Software’s last release Rage ran in Wine, an emulator designed to allow the use of Windows programs on Linux, there was no special effort made to support it.
Carmack added his studio had previously tested whether the conventional wisdom that native Linux games was not a good market with the release of Quake Arena and Quake live, with these preconceptions proven right both times. He said that although arguments could be made that neither release was an optimal case, they were “honest tries” at breaking the market.
“If you fervently believe that there is an actual business case to be made for Linux ports, you can make a business offer to a publisher – offer a guarantee and be willing to do the work and support,” said Carmack.
“This is what Aspyr does for the Mac, and what Loki did for Linux. However, you probably can’t even get an email returned if you are offering less than six figures to a top ten publisher. This may sound ridiculous – ‘Who would turn away $20,000?’ - but the reality is that many of the same legal, financial, executive, and support resources need to be brought to bear on every single deal, regardless of size, and taking time away from something that is in the tens of millions of dollars range is often not justifiable.”
The industry veteran went on to suggest that he felt emulation of some sort would be the ideal technical direction for gaming on Linux, rather than native ports.
If the platform could overcome its technical stigma through a set of best practice guidelines, and if developers can figure out “some form of ‘D3D interop’ extension’ for OpenGL to smooth out the porting process, Carmack said games could be released on Linux with little more effort than supporting Windows XP.
“I truly do feel that emulation of some sort is a proper technical direction for gaming on Linux," he said.
"It is obviously pragmatic in the range of possible support, but it shouldn’t have the technical stigma that it does. There really isn’t much of anything special that a native port does – we still make OpenGL calls, winsock is just BSD sockets, windows threads become pthreads, and the translation of input and audio interfaces don’t make much difference (XInput and Xaudio2 are good APIs!). A good shim layer should have far less impact on performance than the variability in driver quality.
"Translating from D3D to OpenGL would involve more inefficiencies, but figuring out exactly what the difficulties are and making some form of “D3D interop” extension for OpenGL to smooth it out is a lot easier than making dozens of completely refactored, high performance native ports."
He added: “Properly evangelised, with Steam as a monetised distribution platform, this is a plausible path forward.”