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

Posted on 2003-11-11
Last Modified: 2013-12-04
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
Question by:tuxedo_in
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
LVL 11

Accepted Solution

bcladd earned 50 total points
ID: 9721964
(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 ( 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.

Expert Comment

ID: 9727113

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. ( My own site with some source codes of 3d games:) ).




Expert Comment

ID: 9743235
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.
LVL 11

Expert Comment

ID: 10120482
Biased but I think my answer addressed the original poster's question and was, well, first.
Points to me.


Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Artificial Intelligence comes in many forms, and for game developers, Path-Finding is an important ability for making an NPC (Non-Playable Character) maneuver through terrain.  A* is a particularly easy way to approach it.  I’ll start with the algor…
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below.…
Are you ready to implement Active Directory best practices without reading 300+ pages? You're in luck. In this webinar hosted by Skyport Systems, you gain insight into Microsoft's latest comprehensive guide, with tips on the best and easiest way…

696 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question