Almost every single book out there aimed at beginners teaches very little, and is cashing in on tricking people into thinking they can program the next Half Life 2. They do not teach *why* things work, but only that they do. And that is where this book comes in.
Andre LaMothe begins this book with a fully working game called FreakOut, which, it turns out, is only a taster of what is to come. He moves on to teaching you about Windows programming, then onto GDI graphics, and then onto DirectDraw7. Throughout the book, he first teaches you understandable concepts at the lowest level, always giving working examples, and then introduces a DirectX function that simplifies the given matter for you. This ensures that you understand what DirectX is doing for you, and puts you way ahead of people who have read another 'beginners' book. Everything is always easily understandable from his explanations and comments.
After graphics, he thoroughly covers input and sound, before giving a substantial chapter on algorithms, data structures and multi-threading - not at all as dry as it sounds, as it turns out.
After this, LaMothe gives two excellent chapters on AI and physics, before wrapping the book up with a complete space game which is a charm to play!
Despite the 'beginners' orientation of this book, it swiftly covers increasingly advanced topics, especially the physics section, whilst still keeping everything very understandable. LaMothe ends up covering Intermediate and even Advanced level concepts, whilst still managing to clearly explain them to you.
Finally, the two CD-ROMs are also top-notch, and this is where the author gives coverage of 3D graphics theory and development - it obviously wouldn't fit into the book! All of the source code, along with executables of demos and some trial programs are also included. The demo code runs excellently.
To use this book, you need a working knowledge of the C language. LaMothe utilises a few OOP concepts, all of which can be picked up from the Primer included with the book. If you already know C++ thats a bonus.
I really cannot recommend this book enough to you, I couldn't find one problem with it. The sheer depth of information goes way beyond any other beginners book, and leaves you with an excellent understanding of everything that is covered. Learn from the books the pro's learnt from - 5 stars!