opengl or directx for learning about making games and getting a job

Started by
7 comments, last by Buster2000 16 years, 3 months ago
I WANT TO BE CLEAR: this thread is NOT about opengl "vs." directx. so go somewhere else, troll! I am a big gamer and finally want to get into game development. Now the question of choosing opengl or directx is based on, as I see it, 3 points. #1. Longevity: Which one is going to be used the most for game development in 4 years? This seems to go to Directx considering how hard microsoft is pushing vista on new computers and whatnot. Unless vista magically falls apart entirely Directx is more or less guaranteed to be #1 in this category. #2. Easy to transfer knowledge: As in which one of these could I learn that would make it easier to learn the other down the road? For this I believe opengl would be easier, simply because it will force me to learn the inner details about how certain portions of the graphic code works, compared to directx which has a lot of very nice features which automate the process. #3. Which one is used most by commercial game developers? This overwhelmingly still seems to be Directx. This actually does have some support because if any game is looked up on wikipedia, it seems that they only have directx requirements. In fact it seems to me that the only plausible reason for learning opengl (as a game developer at least) would be if I were going to develop for the ps3 and its esoteric requirements (opengl only, no shader model 3.0 support and other stuff). At least according to my logic, it doesnt seem like there is any real reason to learn opengl (again as a game developer). Can you guys think of any reason? Again, I am not trying to start a flame war. Just want some peoples opinions.
Advertisement
Quote:Original post by lycaonos

At least according to my logic, it doesnt seem like there is any real reason to learn opengl (again as a game developer). Can you guys think of any reason?


Opengl runs on many things, many of which are not IBM compatible machines.

(I haven't coded in OpenGL in years so my answer may be a little astray)

Personally DirectX was definitely a LOT harder to learn and get an understanding of over OpenGL. When I first started with OpenGL I was about 13 or 14 years old and I thought it was quite easy to learn and offered a lot for beginners and even a lot of advanced techniques. The main reason why people choose OpenGL is because of the cross platform compatibility. DirectX runs on Windows, and sometimes on a good day Wine on *nix. OpenGL on the other hand can run on just about any operating system. I would say if you can understand DirectX then you should stick with it, but know that games are one of the, if not the hardest, software to program. Good luck in whatever you choose :)
__________________________________________
Eugene Alfonso
GTP | Twitter | SFML | OS-Dev
I initially started with OpenGL and later tried D3D9, and found the latter to much more beginner-friendly. This was mainly due to the samples that come with the SDK and the D3DX support library. Being able to reference working source code was very useful for learning the basics and more advanced techniques, and also helped me learn my way around the API. D3DX was great, because it meant I didn't have to worry about texture loading or making classes for manipulating vectors and matrices when learning how to draw a simple mesh.

However either way, it's important to realize in the long run the 3D API you use really isn't all that important. They have some key differences, but by and large you use the same fundamental math and trickery to accomplish your goals. Once you're fairly experienced with graphics, you should be able to come up with higher-level ideas first and then translate them to whichever API you're currently using.
Quote:Original post by MJP
I initially started with OpenGL and later tried D3D9, and found the latter to much more beginner-friendly. This was mainly due to the samples that come with the SDK and the D3DX support library. Being able to reference working source code was very useful for learning the basics and more advanced techniques, and also helped me learn my way around the API. D3DX was great, because it meant I didn't have to worry about texture loading or making classes for manipulating vectors and matrices when learning how to draw a simple mesh.


Microsoft is good at producing developer-friendly and user-friendly product, althought theirs are not the best. See Windows OS.
I think this answer this question:
Quote:
#1. Longevity: Which one is going to be used the most for game development in 4 years?
This seems to go to Directx considering how hard microsoft is pushing vista on new computers and whatnot. Unless vista magically falls apart entirely Directx is more or less guaranteed to be #1 in this category.



Unless you have a burning desire to write low-level engine code you're unlikely to use either directly as a game developer. So from that point of view, pick whichever you like.
Really? What do you mean that this is important only if I do low level game development? What the hell does that mean? I mean I dont want to sound rude and I know your not trying to sound rude, but exactly what levels are you talking about? I mean all games deal with the movement of a variety of a graphical objects. What higher level is there?

Again, I am honestly not trying to sound angry/sarcastic. I am honestly confused by your post.
In general, low-level means dealing with vertices, triangles, normals, render states, etc. Working at a higher level means working with abstractions - terrain, models, particle system, animations, levels, etc.
At the end of the day it's not going to matter. They're both just APIs and as games programmer you'd be expected to deal with whatever the current project is using. Just pick which ever one you want (If this is proving a problem write a pseudo random number generator and let it pick for you) and the just create stuff with it.

This topic is closed to new replies.

Advertisement