Carmack: Direct3D is now better than OpenGL

John Carmack, co-founder of id Software says 'inertia' is the main reason why id has stuck by OpenGL.

First person shooter godfather John Carmack has revealed that he now prefers DirectX to OpenGL, saying that 'inertia' is the main reason why id Software has stuck by the cross-platform 3D graphics API for years.

Speaking to bit-tech for a forthcoming Custom PC feature about the future of OpenGL in PC gaming, Carmack said 'I actually think that Direct3D is a rather better API today.' He also added that 'Microsoft had the courage to continue making significant incompatible changes to improve the API, while OpenGL has been held back by compatibility concerns. Direct3D handles multi-threading better, and newer versions manage state better.'

In case you're unfamiliar with the mighty Carmack, he co-founded id Software in 1990, and had a large part in programming Wolfenstein 3D and the original Doom and Quake games. Since then, id has rigidly stuck by OpenGL for both Doom III and Quake 4, while many other cutting-edge PC game developers have moved entirely over to Direct3D.

Some games, such as the Call of Duty series, which are based on id's engine, still use OpenGL, but there's little denying that OpenGL appears to have fallen out of favour lately with top-end PC game developers, even if it's still popular with mobile developers and 3D professionals.

While newer versions of OpenGL have kept up-to-date with some of the features found in DirectX, including DirectX 10's geometry shader, they usually have to be implemented via extensions, rather than the main API. Not only that, but Microsoft has now assumed the role of primary innovator in 3D PC gaming graphics, when it historically played a game of catch-up.

'The actual innovation in graphics has definitely been driven by Microsoft in the last ten years or so,' explained AMD's GPU worldwide developer relations manager, Richard Huddy. 'OpenGL has largely been tracking that, rather than coming up with new methods. The geometry shader, for example, which came in with Vista and DirectX 10, is wholly Microsoft's invention in the first place.'

'It is really just inertia that keeps us on OpenGL at this point,' Carmack told us. He also explained that the developer has no plans to move over to Direct3D, despite its advantages.

'OpenGL still works fine,' said Carmack, 'and we wouldn’t get any huge benefits by making the switch, so I can’t work up much enthusiasm for cleaning it out of our codebase. If it was just a matter of the game code, we could quite quickly produce a DirectX PC executable, but all of our tool code has to share resources with the game renderer, and I wouldn’t care to go over all of that for a dubious win.'

Look out for a full feature about the future of OpenGL in PC gaming in Issue 93 of Custom PC, on sale 14 April, 2011.

Just to kill this incorrect rumor now... No, it has not. They've used ID Tech for as long as I can remember. CoD 3 for sure and all the Modern Warfare games for sure use ID Tech and therefore use OpenGL.

Though having switched recently from OGL to D3D I must say 10 & 11 are far superior to 9 and OpenGL. Though sadly I have to support both 9 & 11 since we want XP users to buy our games too. Its just that much more work sadly.

Originally Posted by mike2343Just to kill this incorrect rumor now... No, it has not. They've used ID Tech for as long as I can remember. CoD 3 for sure and all the Modern Warfare games for sure use ID Tech and therefore use OpenGL.

Though having switched recently from OGL to D3D I must say 10 & 11 are far superior to 9 and OpenGL. Though sadly I have to support both 9 & 11 since we want XP users to buy our games too. Its just that much more work sadly.

You've incorrectly assumed that all games based on iD Tech use OpenGL. Valve uses iD tech (GoldSrc was built from Q1) yet its games are quite clearly built on DirectX (the back of my Left 4 Dead 2 packet for example specifically says that DirectX 9 is required).

Whilst CoD1 used OpenGL instead of DirectX, by CoD2 IW had improved the graphics engine beyond iD's work and a system requirement was 'full DirectX 9.0c compatible video card'. This is a slight misnomer, since CoD2 could be run in 'DX7 mode' - and even has such an option in the settings menu.

My CoD6 install even has a DirectX dll in the root directory - and Steam installs execute the Dx installer runtime.

Whilst it's great to make assumptions, a lot of times doing so is inaccurate.

Don't try to kill 'rumours' unless you know they are in fact not true.

Having said that, the Playstation version could well use OpenGL. I don't know much at all about that platform.

Originally Posted by mike2343...Though sadly I have to support both 9 & 11 since we want XP users to buy our games too. Its just that much more work sadly.

Why not switch back to OpenGL then? Not only will you have games that work on every version of Windows but you make it easier for OSX or GNU/Linux ports.

As regards comparing DirectX with OpenGL, of course Microsoft can push things further when they have (largely) total control. The downside is that they can also withhold features when it suits them (like restricting DirectX10 to Vista onwards, when DirectX9 could run on systems from Win98 to WinXP).

If John says DirectX is (probably, under certain circumstances, maybe, POSSIBLY...) better than OpenGL I am very much inclined to believe the man.
So while not being a perfect environment it is still quite far ahead of OpenGL, it seems. Of course this development was helped by the fact Microsoft can push their technology simply by being the mammoth they are. But, nonetheless, they are in the position they're in for a reason, right? And as much as I love the old games I grew up with, DirectX helped a LOT to get us to the level of graphic awesomeness we're at right now.
Sure, OpenGL could probably have lead us to that level as well but somehow I doubt it.