You haven't experienced the full potential of Xbox 360 or Windows until you've created your own homebrewed games for these innovative systems. With Microsoft's new XNA Framework, the only thing limiting you is your imagination. Now professional game developer and Microsoft DirectX MVP Benjamin Nitschke shows you how to take advantage of the XNA Game Studio Express tools and libraries in order to build cutting-edge games. Whether you want to explore new worlds or speed down a city block in a souped up dragster, this book will get you up and running quickly. You'll learn how to implement 3D models, generate huge landscapes, map cool-looking shaders to your 3D objects, and much more. Nitschke also steps you through the development of your first fully functional racing game. You'll then be able to apply this information as you write your own XNA cross-platform games. What you will learn from this book Who this book is for This book is for anyone who wants to write their own games for the Xbox 360 or Windows platforms. You should have some experience coding with C# or a similar .NET language. Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.
Benjamin Nitschke, Professional XNA Game Programming (Wrox, 2007)
I'm going to start this review with a quibble. It's a small quibble, but it's something that gets under my skin. I didn't take a lot off for it, but it stayed in the back of my mind, like the hum you get after eating a handful of gingersnaps. It has do do with authors for whom English is not a first language writing books in it. And my quibble has absolutely nothing to do with the authors of such books; it has to do with their publishers. Doesn't it make sense to have a native speaker (say, the book's editor—isn't that his job?) go over it and smooth over any odd constructions, fumbled grammar, etc.? I do understand that computer books are not New York Times bestsellers, and the market for them is probably not going to be, in the main, bibliophiles, but in my eyes that doesn't excuse letting some of the things in this book slip through. I was going to choose an example, but there were other things the editor let slip that have nothing to do with the author's being (I assume) German, such as this gem on page 322: “Instead of doing light effects just get smaller at the end of their.” Yes, there's a period at the end. That sentence would actually make sense with a few added words, and I have to assume they were in the original manuscript...
But, as I said, this is vertical-market publishing, and I'm sure the publisher here assumes that most readers won't be as nitpicky about the grammar as I am. Truth be told, so do I, so I try to keep my rating changes to a minimum for such things and focus on the book's intention. And while the title gives you an overview of what Nitschke will be covering in the book—XNA game programming—there's a lot more to this than going through the basics. For one thing, Nitschke assumes the reader is relatively familiar with C# programming, so he doesn't really get into the basics. This is a two-edged sword. On the one hand, it allows him to forge deeper into places where books of this type don't normally go (more on that later). On the other hand, it leads to a lot of “the code can be downloaded form the Wrox website, so follow along.” While I understand the intention here (the book's probably only half as long as it would be otherwise), that does get annoying for those who are reading the book without being close to a computer. I'd have been more than willing to pay extra for a larger book that included more of the code, as always.
On the other side of the coin, Nitschke goes into some design concepts that are quite unexpected in a book like this, most notably test-driven design. Nitschke is obviously a huge fan of TDD, and the way he talks about it, I can understand why. I wouldn't call it proselytization, but it does get close now and again. If you don't know anything about the concept, or have only heard it discussed (like me), Professional XNA Game Programming serves as a solid introduction to the topic; by the time you've finished, you'll have a good idea of the basics of how to go about implementing TDD. Because of his affection for the subject, though, Nitschke doesn't address any of the dark sides of TDD (the spiraling, out-of-control tests that can stall, or even kill, a project). While it's an exciting idea, be aware that it's not the be-all and end-all Nitschke makes it out to be if you don't section your tasks down fine enough to make unit testing a manageable idea.
The book does what it sets out to do, and does it in a way you may not have thought about if your experience with game design and programming is limited to following Internet tutorials. Worth a look if you're interested in the subject matter. *** ½