I am a self-taught high school programmer (have an internship at local university), and understand the fundamentals of C++ and other related languages. I am looking to expand into game development, and have found a good DirectX book from which I will study. However, what are some good resources (online tutorials/books/etc) for C++ game programming which are tailored towards someone who is already experienced with C++? Most of the resources I have found attempt to teach basic programming, then get into game development.


closed as not constructive by Josh, MichaelHouse, Nicol Bolas, doppelgreener, Tetrad Jun 12 '12 at 5:45

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ Game design is the non-technical side of game development - is that really what you mean to ask about? Or are you asking about game-specific programming tasks? \$\endgroup\$ – Kylotan Jun 11 '12 at 22:54
  • \$\begingroup\$ Sorry, I meant game programming. Thanks for correcting me. \$\endgroup\$ – Shivam Sarodia Jun 11 '12 at 23:48
  • 2
    \$\begingroup\$ Where to get started questions are off topic. See the FAQ about what kind of questions to ask here. \$\endgroup\$ – MichaelHouse Jun 12 '12 at 0:24

There is a clear distinction between design and development. A game designer may have no programming skills, even though it would definitely be helpful.

Concerning game development, which I presume you're interested in, unfortunately there is no silver bullet. It's an issue that has been bothering me for a lot of time. It definitely depends on what you need to do, what you like and how much time you're prepared to invest in gamedev.

What I know is that the best way to learn how to code games is to actually code! There are two wonderful ways to achieve this:

  • Start small, and try to build even simple types of games. Brickout and Pacman may sound trivial but they are an awful lot of work!
  • Participate in a Libre/FOSS game project. Start studying the code, use paper to write down the basic architecture, and then delve in whatever part interests you most!

In addition, try not to re-invent the wheel and use popular/easy tools and algorithms, don't build everything from scratch, don't over-engineer, don't focus on performance or optimal design.

I'm sure you can find a lot of useful books here in Gamedev.SE and you can easily find interesting resources online.

You must also decide if you want to start with 2D or 3D game development. Of course, you can focus on tools or other parts of the game so graphics won't be an issue.

If you want to try something practical really fast, take a peek here: http://www.lazyfoo.net/SDL_tutorials/

Why don't you check some projects here?

  • freegamer.blogspot.com
  • planetrev.freegamedev.net

Fit in a big community in order to learn by studying and improving GOOD, WORKING CODE. Simply studying resources and algorithms won't get you too far, as you will soon lose interest.


For game design, i recommend one of my favourite books: The Art of Game Design: A book of lenses, a extremely enjoable reading.

For game programming i have spent some time with Game Coding Complete, Fourth Edition, and i think it is worth reading because t explores all the major subsystems of modern game engines.


I found Game Programming AI by Example to be a great reference for fundamental game development concepts. It covers game math, flocking, state machines, lua scripting, advanced data structures, and path finding.

  • \$\begingroup\$ I have this book and have not yet gotten around going through most of it. Glad to see someone else liked it! \$\endgroup\$ – SpartanDonut Jun 12 '12 at 12:05

Not the answer you're looking for? Browse other questions tagged or ask your own question.