DirectX vs OpenGL thread #241245152....help!

Started by
6 comments, last by RedRingRico 17 years, 9 months ago
I hate to bring this topic up yet again, but one site I am using as a directX reference has a page on industry "tips". The author states that he was a veteran in the games industry who has also been involved in hiring, so I'm giving his opinions a little extra credit. On the page he says that DirectX is useful to know, but NOT OpenGL. I found this statement to be pretty shocking, and a little upsetting since I just decided to go all out to learn OpenGL inside out after I finish my current DirectX demo. I thought OpenGL would provide a better background since it is the api they use at school and its available on all platforms PC/LINUX/MAC/PS2/GC/PS3/XBOX/XBOX360 etc etc (note: I think that the ps3 and gc use OpenGL|ES, but whatever :P). Am I wrong to choose to focus on OpenGL or is the website-guy right? if youre curious here is the page: the page ctrl+f for "For them DirectX is useful to know but not OpenGL" ps. Also so I dont waste this thread, if I should continue with the plan to focus on OpenGL, would it also be a good idea to strictly focus on the OpenGL shader language?
Advertisement
I know these threads tend to get closed very quickly because they start to resemble semi-religous flame-wars, but I'll put a quick reply to your question.

In that webpage, the author was talking about an interview with a particular game company. What he was stating was that for that particular company, knowledge of DirectX was more desirable for them than OpenGL, as that's most likely what they use. If the company was using OpenGL, then it would be the other way round. There are probably other companies that don't care as much for which language you know, because entry-level game programmers often don't work on the graphics engine to begin with anyway.

For learning, it really doesn't matter whether you learn DirectX or OpenGL, because once you know one it isn't that hard to learn the other. If your school is using OpenGL then that is a good reason to try and master it. I personally am learning OpenGL for the cross-platform issues and because it is the standard outside the game industry, which is important for me.

Can't help you on the shader language question though; I'm not an OpenGL expert.
A: Learn both, learn them well.
B: GLSL and HLSL are basically the same, there's a concensus that the languages shall be similar (identical?). Just don't waste your time with CG.
Quote:
Just don't waste your time with CG.


y?
Quote:Original post by fpsgamer
The author states that he was a veteran in the games industry who has also been involved in hiring, so I'm giving his opinions a little extra credit. On the page he says that DirectX is useful to know, but NOT OpenGL.


Remember to put this into context:
- what company was this guy talking about?
- what project was this guy talking about?
- what platform was he developing for?
- what development environment was he using?
- what programming language(s) does he prefer?
- what API does this guy prefer or have experience with?
- etc.
- all of the above will influence his opinion of which API is better.

Note: He didn't say "never use OpenGL for anything - use DirectX instead" or "don't bother ever learning OpenGL - just learn DirectX"; in fact...

Quote:For them DirectX is useful to know but not OpenGL
(emphasis mine)

It's the opinion of one guy at one game company, again influenced by some context. I suggest that you treat it as if he'd said:

Quote:In my opinion, for this particular job/project that I'm talking about, DirectX is useful to know but not OpenGL.


Quote:Original post by tok_junior
A: Learn both, learn them well.
B: GLSL and HLSL are basically the same, there's a concensus that the languages shall be similar (identical?). Just don't waste your time with CG.


IMHO, grasping the underlying principles is far more important than any given rendering API. I'd prefer to learn one API, but to understand what's going on at every level - from hardware interactions, through the standard and API, and up to higher level concepts such as shader frameworks (e.g. CgFx/HLSL/DXSAS). As rendering APIs are fairly similar, moving from one API to another isn't that big a jump any more.

I don't agree with your comment re. Cg though - I think CgFx is great! [grin]

Quote:Original post by fpsgamer
ps. Also so I dont waste this thread, if I should continue with the plan to focus on OpenGL, would it also be a good idea to strictly focus on the OpenGL shader language?


This depends on what your project requirements are. In my case, I already had OpenGL experience (I teach it at my university), but I wanted to use a higher level rendering concept, and I didn't want to write my own effect format or control system. In the end, I opted for OpenGL (rendering) + CgFx (materials and effects), which works well. If I had more time, I would have liked to learn DirectX + HLSL instead to get everything in one standard library and API.

My advice (i.e. my opinion): take a look at all available options and pick the one that sounds better to you. There are no generally better options - if you can learn how to do it using one API/library, then you can learn how to do it in another; the important part is to select an API that you understand and can learn more quickly and completely.

Hope this helps. [smile]
thanks for all the replies, thanks dudes. :)
I just wanted to second this particular comment:
Quote:Original post by ajones
IMHO, grasping the underlying principles is far more important than any given rendering API. I'd prefer to learn one API, but to understand what's going on at every level - from hardware interactions, through the standard and API, and up to higher level concepts such as shader frameworks (e.g. CgFx/HLSL/DXSAS). As rendering APIs are fairly similar, moving from one API to another isn't that big a jump any more.
I've been using DX/D3D for 6-7 years now and a couple of years back I was forced to use OpenGL for a project - never used it before then - and it was surprisingly easy to get something at least functional up and running in no time [smile]

The point being that building up the knowledge/theory/experience behind writing graphics applications is often transferable - much in the same way that building general software in one language should set you up nicely to use other API's/OS's/languages in the future...

Jack

<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ | MVP Profile | Developer Journal ]</small>

Quote:I thought OpenGL would provide a better background since it is the api they use at school and its available on all platforms PC/LINUX/MAC/PS2/GC/PS3/XBOX/XBOX360 etc etc (note: I think that the ps3 and gc use OpenGL|ES, but whatever :P).


I thought the XBOX and 360 used DX.

This topic is closed to new replies.

Advertisement