Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I saw the articles that were going on about OpenGL being better than DirectX and that Microsoft are really just trying to get everyone to use DirectX even though it's inferior so that gaming is almost exclusively for Windows and XBox, but since the article was written in 2006 is it still relevant today?

Also I know plenty of games are written in DirectX but does anyone have any examples of popular games written in OpenGL?

Thanks

share|improve this question

closed as not constructive by Noctrine Jan 7 '11 at 15:30

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

1  
It's just no true. OpenGl and directx are equal in their capabilities and performance. Personally i like directx more, because for me it is not that "messy" as ogl. Directx also has its own gpgpu language which can be easily connected with graphic pipeline (which is pretty cool, i'm working with it just now). I know there is openCl ... but connection with graphic pipeline is torture :) –  Notabene Jan 7 '11 at 14:06
3  
It is true that DirectX only works for Microsoft platforms, while OpenGL is quite portable. An OpenGL game is much easier to release for Mac, Windows, and Linux. –  Gregory Avery-Weir Jan 7 '11 at 14:17
4  
-1, subjective. –  Tetrad Jan 7 '11 at 14:58
1  
Also, examples of OpenGL games: gamedev.stackexchange.com/questions/5544/aaa-games-and-opengl –  Tetrad Jan 7 '11 at 14:58
    
-1 since 'better' is not on topic. If it was 'What are the differences between DX and GL' it could be a good question. –  The Communist Duck Jan 15 '11 at 9:06
add comment

5 Answers 5

up vote 7 down vote accepted

"Better", in this case, is a relative term. The two (assuming, as mentioned, D3D) are very similar in what they do and how they do it; but there is a pivotal point in here:

While D3D has more tools available (jury is still out on "better"), and perhaps better support on the Windows platform, on other platforms support is pretty much non-existent.

In computers, both Mac OS X and Linux both support OpenGL, and in terms of consoles, at least the Wii has interfaces that are highly reminiscent of OpenGL. I can't speak to the PSP or handhelds, but if they don't have proprietary interfaces, they probably have OpenGL (which is pretty much true everywhere).

It all boils down to portability: If you are supporting one platform, and one platform only, for all of eternity; use whatever makes your job the easiest on that platform.

If you plan on ever possibly supporting other platforms, the OpenGL path is probably one of the more attractive ones open to you. The other option is doing a lot of abstraction, or an engine that can interface with several different GPU interfaces.

share|improve this answer
add comment

Assuming you mean Direct3D:

The difference is in interface mostly. They both talk to the same underlying hardware, and there might be minor differences in what they expose, but most skills you get in one can be used in the other.

That said, tool support is a lot better for D3D than for GL.

share|improve this answer
add comment

First off, the only time this question is applicable is for Windows-based PCs. Console, smartphones, and mac platforms all have a singular API (or a singular API and a "closer to the hardware" API), so your question doesn't apply to them.

"Better" is a terrible term anyway. Better for what? As far as I'm concerned, DirectX is better for Windows since OpenGL drivers are generally terrible. Or at least that's what the Unity guys discovered with their cross-platform engine. I really wish I had a link for that.

Maybe at some point in time API X has feature Y which is really attractive (and therefore might seem "better")... but you can't use it because nobody would have a video card to support that feature. And if you made a game that really needed that feature it would be much harder to port it to another platform that didn't use that API.

share|improve this answer
add comment

The situation about those two API is greatly dependent of the PC game market which is completely dominated by microsoft.

You also have to understand that as the graphic technologies has been very much influenced by the progress made in computer speed, and since graphic acceleration involves all aspects of a computer (the electronic architecture aspect, the OS aspect, the CPU aspect, the API compatibility aspect), it involves a very tight and dense engineering work, so you can easily understand that it requires enormous resources so those technologies can not only be released, but evolve and be "easy" enough to work with for game and/or 3D engines developers.

Microsoft has been tightly working with nVidia, and they are more able to throw money to be sure their technology is more advanced on such special hardware, something which can't be possible with an open source model, since there are much less developers ready to work for an open model which doesn't rewards them money directly.

Open standards are been efficient for a long time but as this quote says: "Walking on water and developing software from a specification are easy if both are frozen." Edward V Berard

The reason why it favors direct x is because shiny stuff sells more, and shiny stuff requires recent software AND hardware.

But you can still learn OpenGL, do something sufficient with it, and let the engines do the hard work, because graphic programming evolves a lot, and don't remember Direct X is not the only proprietary: Sony, Nintendo, and other Arcade or other systems, use proprietary APIs.

So my advice is this: learn OpenGL, because for the shiny stuff, you won't stay on OpenGL. You can also learn Direct X, but if you plan to work on consoles, you will have to learn again.

All that chit chat is not very interesting: just pick an engine like Ogre or Irrlicht or Panda3D and start coding.

And one thing: if you plan to learn either Direct X or OpenGL, be sure to learn everything you can about Matrix algebra, and some more which are specific to graphic programming.

The read will be long.

share|improve this answer
add comment

Popular games that use OpenGL: Quake 1, 2, 3 and 4 (maybe 4), Doom 3

share|improve this answer
1  
Starcraft2 uses openGL on mac OS and D3D10 on windows. –  dotminic Jan 7 '11 at 14:35
1  
en.wikipedia.org/wiki/List_of_OpenGL_programs lists a load more... –  sarahm Apr 20 '13 at 21:18
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.