Which is better to start off in DirectX or OpenGL
Which is better to start off in DirectX or OpenGL
Okay OpenGL is only graphics.
DirectX is Graphics, sound, input, you name it.
Sorry, you're gonna have to learn both.
If it's a question between OpenGL and Direct3D, choose OpenGL. Direct3D and DirectX in general is poorly documented.
But for input, sound, the works, you should include DirectX.
DirectX is a complete multi-media platform, containing libraries for sound (DirectSound), input (DirectInput), and graphics (Direct3D), and maybe more.. I dont know, I'm no M$ fan.
So your question would be Direct3D vs. OpenGL, and its a common and big question which you'd yield thousands of results if you searched google, and dozens if you searched this forum.
Essentially they are both great graphics libraries. OpenGL is just as complete as Direct3D, but supposedly OpenGL is easier to learn. OpenGL is multi-platform, so you can program it to work on Windows, Linux, and Mac OS, which is a very desirable trait. Direct3D is for Windows only, and the code is hardcoded into their dll and such, so the library is quite huge in size (not a big deal), hence not open source, and hence doesnt have the ability to form to new hardware developments until hardcoded into it by M$. Its possible in some situations you would get better renders using OpenGL (not a huge deal). Generally there would be more resources to work for Direct3D, but IMHO not a big deal. Direct3D is more commonly used in the game industry atm, however it seems OpenGL is starting to make its way into it, and will probably be right beside Direct3D in a few years, so thats not a big deal. OpenGL however has some other features like addons for better renders by the same company, but thats not so useful in the game field.
The only huge fault to consider before choosing which to learn is that 1) Direct3D isnt multi-platform, 2) Direct3D comes with partner libraries, so if you learn Direct3D it would be easier to learn DirectInput/Sound; however with OpenGL you are required to try other libraries to use with OpenGL, like SDL, or OpenAL, etc. Not all the "Open" titles are developed by the same group (I believe there are three different groups with "OpenXX" titles. Also consider you'll probably be forced to learn both in college or at the work place either way, eventually.
OpenGL wins.
Warning: Have doubt in anything I post.
GCC 4.5, Boost 1.40, Code::Blocks 8.02, Ubuntu 9.10 010001000110000101100101
>>Direct3D and DirectX in general is poorly documented.
Do you think so? It's not really that bad. If you can't read the docs you shouldn't be learning it.
Dae pretty much said it all except one big one.
DirectX is C++ oriented.
OpenGL is C oriented.
So if you are a C programmer, DirectX could be a little tricky.
Last edited by sand_man; 08-26-2005 at 05:28 AM.
nah, Direct-X has a ton of macro's for C and uses function pointers etc... so its really not that bad... well... what little i've used anyway...
also Direct-X also inculdes a network library called Direct Play i think?
ADVISORY: This users posts are rated CP-MA, for Mature Audiences only.
The documentation is fine IMO. It's their examples that are very hard to read and understand mainly because of all the extra MFC stuff.Direct3D and DirectX in general is poorly documented.
MagosX.com
Give a man a fish and you feed him for a day.
Teach a man to fish and you feed him for a lifetime.
If your just starting out,, and want to make a simple, 2D game, try googling for HGE. Its free for non comercial use, and is based on Direct X.