-Open GL
I had pretty much decided on this one because I might not alwayse make games anyway, the only thing holding me back was the fear that it would be harder to get a job with open gl as apposed to direct x.
-Other tools such as blender, physics engine, etc...
Physics engine will probobly be Newton Game Dynamics physics SDK.
-Lua
I did not have another scripting language in mind and it sounds good :)
(Note: All things after this point will be learned only after I have achieved a high level of competency with all of the above, a long way away.)
-Python
I have heard good things said about it.
-C#, XNA
I just think it would be good to learn.
(note: I expect to finish this list no time soon so please don't assume I will be overwhelmed with this many things to learn at once ( it would be! ))
What do you think of the new list? Would anything be good to add or would a different order be more advisable?
You might also want to consider learning a little about 3d math and computer Artificial Intelligence for games.
Open GL
I had pretty much decided on this one because I might not alwayse make games anyway, the only thing holding me back was the fear that it would be harder to get a job with open gl as apposed to direct x.
You have about the same chance of getting a job with OpenGL, it simply depends on the company. If you want a great example of OpenGL in use, Blizzard uses OpenGL for its extremely successful World of Warcraft MMORPG. What you'll find is PC Game development companies often prefer OpenGL to Directx due to platform independence. Excellent learning plan!
Thanks for the advise, I believe that I get into some basic 3d math by the end of the year in my geometry class but I will look further into it and I have already found some good sites on the subject. Also, AI is one of the things that intrigues me the most about game programming so I will definitely research the logic behind it ( I was thinking about doing a science fair project on this very topic ). Thank you all again, I wish that I had made an account earlier as it would have been very helpful to be able to ask questions!
I think too much emphasis is being placed on engines and platforms here. The truth is, the fundamental skills required to create a complete game are independant of platforms and APIs.
The real hurdles you're going to face in creating a full fledged 3D game (even a simple one) will have nothing to do with your choice of development tools. The differences between OpenGL and DirectX are largely semantic. Once you have a solid understanding of one, learning the other will be far easier.
It's the same with game engines. Once you have a solid understanding of how all the discrete components of a game piece together, 'learning' a new engine will again be far easier.
The real challenges in developing a game are, in no specific order:
Understanding how 3D graphics rendering works at a fundamental level.
Understanding Collision detection.
Understanding Physics simulation.
Understanding Game AI (or just AI in general).
Understanding User Input (Many people think this is trivial, but solid, seemeless user input is anything but. Let's put it this way, games are still being released today, developed by professional game developers, with clunky user controls).
Understanding how all these components tie together and interact properly to create a playable game.
And that's still an incomplete list.
There is a LOT of math involved. At the very least you should have a solid understanding of trigonometry and matrix math. For physics simulation you'll also want a solid understanding of calculus as well.
So don't get caught up in APIs and platforms. That's not where the real challenges lie. Go ahead and run through the basic tutorials of OpenGL and DirectX and you'll see exactly how similar they are. Some of the advanced graphics APIs for those two platforms diverge a bit more, but the underlying rendering concepts are identical.