what should i do to start in games programming...

hi all,

i am a graphic developer(area of work include 3d studio max, adobe photoshop, flash etc). i

have good knowledge of java programming as well.  

with this background in mind where should i start go my way in to (3d) games programming

thanks in advance

happy gaming
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

(1) It is hard to get a job in the industry. Fangirls and fanboys do not have an easier time of it. Really.

(2) The above disclaimer out of the way, a good games programmer is a good programmer. If you want to do graphics programming it means you need to understand computer graphics. I would suggest

     Hearn and Baker _Computer Graphics_ is an introductory though deep textbook on computer graphics. It covers enough geometry and matrix arithmetic to keep you going but it is focused on computer representations of the things it is describing.

    Foley, van Damm, et. al. _Computer Graphics: Principles and Practice_ is an alternative to the above that is sometimes recommended in its place. It depends on which one you read first, I think, which one seems "clearer".

    Lengyel, _Mathematics for 3D Game Programming and Computer Graphics_ - I have looked at it in the bookstore but haven't sprung for it yet. Some geometry, lots of matrices.

     Akenine-Moller and Haines _Real-time Rendering_ - Advanced but important material

The idea of 2500 pages of technical reading should make you shiver with excitement rather than shudder with dread; being a programmer means constantly working to improve what you know (you are only selling what you know).

These books all expect that you know C++. I would suggest that you get a free compiler and learn it. Koenig and Moo's _Accelerated C++_ is a realy readable book that I thoroughly enjoyed reading. After working your way through that you can find a book that takes you further (I think programming books are a very personal choice as to how each individual learns).

Why am I pushing you toward book leaning. You should be DOING! That is the road to success. You are, of course, right. Using Java or the free C++ compiler you get, find some game tutorials (www.gamedev.net has some and there are others all around) and implement them. At first you'll just be typing what the other person wrote. Then, over time, you'll start wondering what happens if you change 0xFF to 0xAA (only half as many bits set) and then, finally, you'll be able to predict what happens.

Various people will come on here and say you should know DX9 or OpenGL and failure to learn one or the other will result in your failure as a graphics programmer. It is true that you'll need to know something about them both to do a job you get and, more importantly, to make the tutorials work. Don't sweat it as you'll probably figure out what you need to know as you go along.

(3) You might want to try your hand at modifying an existing game. Quake n, Unreal/UT n, and HalfLife all have active mode communities. If you are into 3d  modeling you might be able to make interesting new levels or new game types using existing engines.

More than you ever wanted to hear I am sure but I hope it helps.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial

You have good skill sets for a head start in game programming. If you would like to start programming the hard way and would like to start on your own, learn C++ quickly. It just is as easier as Java.

OpenGL is supposed to be an easier API which has excellent functions to manipulate 3D Data. But Direct X has a lot more features.

If you like to have cross platform compatibility go for Open GL. To learn 3D programming, start from the basics, program as much 2d games as possible as 3D is something similar to 2D with an extra axis. Normally programming 2d games is a very good foundation to start programming in 3D.

Let me provide you a web site where you can learn OpenGL from the ground up:


You dont have to go deeper learning the 3D as both these APIs have well defined functions for your convenience.

www28.brinkster.com/svenkatesh ( My own site with some source codes of 3d games:) ).



Personally, I think books are the way to go, especially when you're just starting out. I hope it's safe to assume you haven't done much programming, so I'd say get a good book on C/C++.

Java is a great start, but if you want to do any serious game development (especially 3D, *eventually*), you should learn to love C (and it's flavours.. C++, C# etc.). 90% of commercial games are developed in some form of C (and yes, I made that figure up.. but it's probably close to the truth). There's simply more resources for C/C++ game dev than for any other language.

The reason I emphasized *eventually* is because you won't be able to jump right into 3D. It's a vast evolving subject that requires a good base knowledge of 2D graphic knowledge. Simply put, start with 2D.  Once you've made a few small games, and you're comfortable with C/C++, graphics and whatnot, try your hand at learning a 3D API. I'm not going to state preference over which one, since they all do basically the same thing... but most people gravitate towards OpenGL for learning, since it's based on C, and seemingly less confusing than APIs like Direct3D (I learned DirectDraw first, and then moved to Direct3D without any serious issues). There are a plethora of other lesser-known/used APIs out there as well, but stick with one of the two big ones and you'll have an easier time finding help and documentation.

Finally, I must re-iterate the importance of BOOKS. Don't get me wrong, online tutorials are great, and free, but you'll spend countless hours reading poorly written tutorials, or having to peice together knowledge from multiple tutorials. Of course later, once you have the basics down, tutorials are great for updating your knowledge.

Remember, always be resourceful! Seek and ye shall find.
Biased but I think my answer addressed the original poster's question and was, well, first.
Points to me.

It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Game Programming

From novice to tech pro — start learning today.