29
\$\begingroup\$

I am an normal programmer with about 3 years of experience, who is interested in getting into game development. The problem that I face is that when I look at these "beginner" books, most of them teach basic programming skills, and I don't have the patience to sit through it or find them worthwhile. But, when I look at more advanced books, they're over my head, and once again, fruitless to me. What I'm looking for, are books that explain the nitty-gritty internals of games, but at a more reasonable level.

For example, I'm very familiar with all kinds of data structure (hashes, trees, linked lists), and with many common algorithms (sorting, searching), but I wouldn't know how to, say, implement collision detection effectively. I also have experience using foreign libraries, so I know how to use documentation to learn an API, so I don't need a "Learn to use X" book either.

Personally, I don't care what platforms/languages/libraries are used in the books, since I'm comfortable in many languages, but the game I'm looking at making would use Javascript and the HTML5 canvas.

Any suggestions? Any that are free?

P.S. I should note that my level of mathematics and physics is relatively low, and a book that gently integrated those things would be a plus.

EDIT: I should mention that I'm interested in 2D programming, and at this point I don't really care for 3D yet.

\$\endgroup\$
1
  • 1
    \$\begingroup\$ Have you tried skimming/flipping past the pages with things you already know? \$\endgroup\$
    – Ricket
    Commented May 5, 2011 at 13:36

6 Answers 6

11
\$\begingroup\$

Have you looked at Game Programming Gems series? It might give you the specifics you seem to be asking for. There are not many books out on HTML5/canvas as it is quite new, especially ones talking about game programming.

\$\endgroup\$
9
\$\begingroup\$

What aspect of game programming are you curious about? There's quite a few books that discuss specific aspects of game programming. Getting a game up and running is not difficult, and any game logic is just like how you'd manage data for any other application, perhaps a little more concerned with speed of execution. Getting into stuff like graphics programming though, can be something else entirely. Start with a basic framework of a game, then focus on one area you're interested in, like designing a robust combat system, or synchronizing animation, or shaders.

General-info type books that I've found useful:

You're probably at the stage where you'll get the most information by looking at various tutorial postings for specific engines online. There's also a decent enough number of open source games you can check out.

One interesting thing to study might be the Monocle Engine.


Edit:

With regards to math, I'm also a little shaky on my foundations. A good resource for these general subject areas is Khan Academy.

For other free stuff, just browse GameDev.net, and possibly the MSDN articles for XNA.

\$\endgroup\$
6
\$\begingroup\$

If you're confident with object-oriented programming, you should make sure you pick up something which covers component-oriented design. It's a programming approach within OOP that is very powerful in games development and has become a standard approach within the last decade.

Two resources that contributed massively to my understanding of COD:

There is an answer on Stack Overflow that contains an incredible list of resources: Component-based software engineering in game literature.

Note: COD isn't used solely in games development. You may find resources that explain COD in completely different contexts, which won't necessarily be helpful at all for understanding the role it plays in games (YMMV).

\$\endgroup\$
6
\$\begingroup\$

I'll add to the deluge of titles here:

Game Engine Architecture by Jason Gregory (Naughty Dog) for general game engine overview at a reasonably detailed level.

Real-time Collision Detection by Christer Ericson (God of War) for an in-depth and comprehensive overview of collision detection systems.

Real-time Rendering by Tomas Moller and Eric Haines for a similarly in-depth treatment of rendering.

\$\endgroup\$
5
\$\begingroup\$

I recommend Introduction to Game Programming with DirectX 9.0c: A Shader Approach by Frank Luna. It's also available for D3D10 if you're curious. The book assumes basic C++ knowledge but nothing game-specific and no COM, and begins with various mathematical foundations like vectors and matrices, and fairly gently guides the user through setting up games from basic to the intermediate. What's notable of course is that as time goes on, then things change- for example, he doesn't teach hardware instancing or other optimizations that are relatively new.

\$\endgroup\$
1
  • \$\begingroup\$ Though given the significant changes between 9 and 10, I would go with the version for DirectX 10 now. \$\endgroup\$ Commented Jun 7, 2011 at 17:19
1
\$\begingroup\$

I just found a publisher with what seems to be a great list of possible books: http://www.courseptr.com/Courses.aspx?MenuId=8&MenuSubId=0 - they're the publishers of the Game Programming Gems series.

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged .