View Full Version : John Carmack admits Direct X > OpenGL

03-11-11, 04:45 PM
The DirectX graphics API created by Microsoft is used by nearly all PC game developers. The one big exception is id Software. Its main programmer John Carmack has used the OpenGL graphics API to help program all of id's 3D graphics engines including id Tech 5 which is the basis for id's upcoming shooter Rage.

While Carmack has been critical of DirectX in the past that has now changed. In an article at bit-tech.net (based on an interview Carmack gave to the Custom PC print mag) he states, "I actually think that Direct3D is a rather better API today." He added that while DirectX has improved over the years, OpenGL "has been held back by compatibility concerns."

So does that mean that Carmack will switch to DirectX? Maybe not. He states, "OpenGL still works fine 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 you look at the recent history of video games then you will notice one stand out fact. While many game engines and games have embraced Microsoft’s DirectX for PC games, id Software and John Carmack have stuck with OpenGL.

The reasons for this were explained by Carmack as far back as 1996 in one of his famous .plan updates. While Carmack saw DirectX, and in particular Direct 3D as having an edge in some respects, he dismissed it as as “horribly broken” API but admitted that it would “suck-less” with every new version.

That apparently turned out to be true and it seems as though John Carmack has now become a DirectX fan. The reason why is not down to Microsoft wooing Carmack in any way. No, the way to John Carmack’s heart is through technology and innovation, and that’s exactly what Microsoft has seemingly done.

OpenGL has had new versions released over the last few years, but where it has fallen behind is in innovation and features. Originally it set the bar, but DirectX caught up and then carried on innovating with every version. It has reached a point where OpenGL + extensions can still offer up a decent API, but DirectX is basically better.

If a number of respected figures in the games industry said this then it would probably pass under the radar of everyone except other developers. But when John Carmack talks about technology and preferences everyone listens because he has always been at the forefront of graphics technology. This is proven just by looking back at what Carmack and id have achieved with their own game engines and the forthcoming id Tech 5.

Microsoft shouldn’t start celebrating yet, though. Even though Carmack prefers DirectX he won’t be using it any time soon. Although he could easily port the final game executables of id titles over to the API, the engine and its tools are all using OpenGL and that’s not a code base Carmack wants to sit down and change over to DirectX just for the sake of it.

What this does suggest, however, is that id Tech 6 may be the first id Software DirectX-focused engine.

03-11-11, 04:51 PM
Interesting, but the problem for his is that DX is MS only. id develops for the Mac and Linux, as well as iPhone and that's all OpenGL.

03-11-11, 05:07 PM
But if Id switched to dx maybe the plastic looking skin would go away? Something about characters skin always looks just fake to me.

Love the games though.

EDIT: Don't even know if the API has anything to do with that, just hoping. :)

03-11-11, 05:14 PM
The API has nothing to do with it, grey_1.

03-11-11, 05:48 PM
OpenGL is still king on the 3D workstations and NVIDIA use OpenGL for their tech demos.

03-12-11, 03:38 AM
But if Id switched to dx maybe the plastic looking skin would go away? Something about characters skin always looks just fake to me.

Love the games though.

EDIT: Don't even know if the API has anything to do with that, just hoping. :)

Id just like making you play with dolls g_1.

03-12-11, 06:25 AM
The problem with OpenGL is it doesn't really have a well-structured API.

In DirectX, Microsoft extends the existing functions and structures with whatever they need, so for you to be able to tackle on some new functionality from card X it's just a matter of passing a value to a function, whereas in OpenGL you need for it to be present as an extension, which eliminates uniformity as some vendor may or may not implement it for a given piece of hardware.

What OpenGL brings is a well-defined set of standard functions and features as long as you code with the 'core'. Once you go for a specific feature, extensions strike back!

So... for scientific computing and general visualization? OpenGL FTW. For gaming, DirectX is the answer (although it's a pity because OpenGL it's a very good API, just... it's kinda screwed at the moment).

dairy hick
03-14-11, 02:01 PM
Fermi's openGL performance isn't all that good.

OTOH, I don't really think uniformity is all that good of an idea because with OpenGL vendors can get an edge over the other if they want to. Microsoft leveled the playing field with DX and its uniformity and I don't think ATi would still be around if we still used an API that wasn't uniform. Nvidia always had a superior feature set.

03-16-11, 05:37 AM
John Carmack is still relevant? Coulda fooled me.

03-16-11, 06:20 AM
John Carmack is still relevant? Coulda fooled me.

Not as much as in the past, but yes, he still have a couple of things to say in regards of 3D engines. You know, CryEngine or Frostbite aren't the only sounding engines out there (plus we still owe him many of nowadays techniques for engine optimization, like reverse calculus and some others) :p

03-16-11, 07:31 AM
John Carmack is still relevant? Coulda fooled me.

Tygerwoody vs John Carmack....


:cool: :lol: