John Carmack, the co-founder of id Software that's widely known through gaming circles due to his remarkable work on developing Doom and Quake and other titles, sparked some controversy earlier this week when he promoted Wine for Linux gaming
over native Linux game ports. He's now provided some additional clarification and thoughts.
As a comment on Reddit
, John Carmack himself responded to the discussion about his Wine Linux gaming statements.
Some of his key points from the rather lengthy post include:
- Carmack does wish Linux for its best, but it barely makes it as a top priority of his. He does use Linux at his aerospace company, but he isn't using Linux on any of his desktops.
- He's ported to port games to Linux for technical reasons so he can use Valgrind again and NVIDIA can do more experimental GPU driver work for R&D under Linux.
- "Working on open source Linux OpenGL drivers again would also be fun if I ever had the time."
- Unlike id Software before it was acquired, Zenimax doesn't have any policy for "unofficial binaries." id Software would formerly release their Linux game binaries without any official support, but there's no policy at Zenimax for being able to have an unofficial OS port.
- Carmack's forceful internal pushes towards his new handlers have been about continuing id Software open-source code releases for their old game engines. He feels this has broader benefits than unsupported Linux binaries.
- Zenimax doesn't even do Apple Mac OS X game ports themselves but hands it off to a separate publisher.
- It's hard to get a top ten publisher to take you seriously unless you have at least a six figure guarantee.
- About Wine / emulated gaming: "I truly do feel that emulation of some sort is a proper technical direction for gaming on Linux. 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."
- Specifically about Direct3D translating: "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."
- Ending comments about Wine for gaming: "Ideally, following a set of best practice guidelines could allow developers to get Linux versions with little more effort than supporting, say, Windows XP. Properly evangelized, with Steam as a monetized distribution platform, this is a plausible path forward."