By Michael Dawson
Published October 2010 List Price:$34.99, Your Amazon.com Price: $18.98
Amazon.com Sales Rank:46,555 Availability: Usually ships in 24 hours
Summary: BEGINNING C++ THROUGH GAME PROGRAMMING, THIRD EDITION approaches learning C++ from the unique and fun perspective of games. Written for the beginning game developer or programmer, the book assumes no previous programming experience and each new skill and concept is taught using simple language and step-by-step instructions. Readers will complete small projects in each chapter to reinforce what they've learned and a final project at the end combines all of the major topics covered in the book. Featuring twenty five percent new material, this third edition covers all the latest technology and advances.
GDNet Staff Review:
Well this is looking familiar. Beginning C++ Through Game Programming: Third Edition is the third iteration of Course Technology's no-nonsense ground-up tutorial on programming. The "third edition" part is really something more dictated by marketing than necessitated by the technology. The C++ standard is something that evolves at a glacial pace, and I do not think there is an example in this book that could not have been built when the STL standard was solidifying in the 1990's.
Beginning C++ Through Game Programming is, by necessity, deeper than similar books about game programming using dynamic languages like Python or ActionScript or Java. Those books can treat important subjects like memory management almost as an afterthought, relegated to the "optimizations" chapter as a discussion on how to do things so as not to invoke the garbage-collector. C++, with its "hands on" approach to memory management, needs to put pointers and references and memory management into the forefront. Thus, Beginning C++ Through Game Programming is not going to get as much done in the same space as a book written with a dynamic language in mind. While a book on ActionScript, for example, could have you making ten decent games in 400 pages, a C++ book will still have you overloading operators and deep-copying objects in that space. And this is because C++ is about the deepest and most complex language in wide use today. Making an object requires a bit more than just "speaking it into existence" like you can with most dynamic languages. And making that object go away requires more than just ignoring it for a short time.
And I fear that this fact is going to scare some users away. Beginning C++ Through Game Programming does not feature completed games of any complexity. You will be learning how to build command-line Tic-Tac-Toe and Hangman-style games. But (and this is important) they will be games that are built to follow a proper object-oriented design. And while such a thing may be overkill for a Hangman game, it will not be so much overkill for the games you build after you are finished with the book.
Yes you can build a Hangman game in a half-hour with about 100 lines of Python, but many of the techniques you learned building that quick Hangman game will not scale up well to a game of 100,000 lines. Or a million lines. The whole point of Beginning C++ Through Game Programming is not to build a Hangman game to show off that you are now a bona-fide game programmer, but to build designs that are scale-able and maintain-able. It is to learn techniques that will still be in use for larger projects.
And that is what makes Beginning C++ Through Game Programming frustrating for me. It is a book that will be useful to someone who wants to take the first step into larger projects. Problem is, that first step is not as fun to take here as with other books. You will not be finishing this book with games that will impress your friends. You might, though, leave this book with ideas as to how you will implement projects that actually are impressive.
My biggest problem with Beginning C++ Through Game Programming is the same as I have with other books of its type. It treats Macs and Linux as "this stuff will all work with them, but I will not be discussing it further". Given that the book devotes five pages to setting up Visual C++ Express and compiling a project, five pages on xCode and five pages on your Linux IDE of choice would have been well worth the time. If your book will easily work cross-platform, then make it so. You have little excuse not to.