This review is for the book 'XNA Game Studio 4.0 Programming – Developing for Windows Phone 7 and Xbox 360', and has been submitted by a member of the Windows Phone 7 User Group - a user group supported by SilverlightShow.
We support user groups with books, swag, events promotion, free event passes and others. Contact us to get support for your user group.
Introduction
The full title of the book is “XNA Game Studio 4.0 Programming – Developing for Windows Phone 7 and Xbox 360 (Developer’s Library)”. It’s quite a descriptive title in itself, pretty much summing up what to expect. The book is not designed specifically for Windows Phone 7 developers, since XNA can run on the Xbox and PC, but it does include Windows Phone 7 specifics (more on that later).
When it comes to technical books, much of its integrity can be obtained by looking at the authors’ achievements and relation to the subject at hand. With that in mind, XNA Game Studio 4.0 Programming has a solid foundation since the two authors, Tom Miller and Dean Johnson, are actually part of the XNA development team, which is a major advantage the book can boast.
Content
Being a “Developer’s Library”, this book is packed with content. Each topic is covered in enough depth to provide developers with enough information to find out how to implement features using good programming techniques. The structure of the book is discussed in the next section, but each chapter contains a decent step by step guide on implementing the topic at hand. It also provides background information on what’s happening as well as detailed code so that the reader can understand what the code does and adapt it to their projects. Being a reference book, the code isn’t overly verbose and so the reader can jump in to any chapter, find out how to code that specific feature and get back to their project without having to rely on any previous work. The quality of code is great and the custom Avatar animation chapter is certainly something that shines.
Structure
The subtitle of the book, “Developer’s Library”, should not be underestimated as this book really does serve a purpose and does it very well. Many XNA books I’ve encountered go down the path of working with the user to build a game from scratch. Starting from a new project, the author would explain to readers how to display sprites, and then move on to input, effects, audio and so forth. These types of books certainly have their place, but XNA Game Studio 4.0 Programming takes a different approach. Instead of guiding the user step by step through a game, most chapters are treated in isolation. That is, you end up creating new projects as you progress through the book, instead of continuing with one project and expanding on it. This is a great approach to take, especially for a book that’s designed to be a reference, since it means that the reader can jump to any topic and immediately be able to implement the relevant feature without having to code previous projects. It also means the user can jump from topic to topic if they are already experienced with XNA and want to simply learn more about specific features.
The downside to such an approach is that newcomers to XNA, or game programming in general, may not necessarily find it easy to create a complete game from scratch. Whilst they will learn a lot, certainly enough to create the components of great games, they may find it difficult connecting everything together into one game. However, this book does not claim to be for beginners and, as such, I do not hold this point against it. XNA Games Studio 4.0 Programming aims to be a reference book and it sticks to that philosophy very well.
I’d like to also give kudos to the authors for adding a chapter on 3D math basics. It’s a topic often left out of game development books despite math being fundamental to many games. If you’re proficient with vectors and matrices, it’s a chapter to skip, but it’s a great addition for those unfamiliar with it or need a quick refresher course.
Windows Phone 7
Although this book covers XNA in general, it does give specific information about Windows Phone 7. For example, it explains how to implement the various Windows Phone 7 specific features such as the accelerometer and location services. It also discusses how to implement the radio, Launchers and Choosers and tombstoning. The sections for each of these are succinct, but like the other topics in the book, they come with code to show you how to implement the features in XNA. As a side note, this book doesn’t discuss the Mango SDK features, presumably because the SDK was publicly released after the book has been completed.
Conclusion
XNA Game Studio 4.0 Programming is a very good reference book and provides a lot of code, as well as solid explanations, on pretty much all aspects of the XNA framework. With each chapter having a new project, it makes it very easy to just skip to your chapter of interest and be shown how to implement the feature from scratch. If you’re new to XNA, or game programming in general, I recommend you buy an introductory book to complement this one. Although this book has small projects that demonstrate the topic at hand, it may be a bit too disjointed for newcomers who want to create a game from scratch straight away. As a side note, this book assumes you’re familiar with C# as do many other XNA books.
However, as mentioned previously, this book is a “Developer’s Library” and not a beginner’s guide. I highly recommend it to anyone using XNA. Those who already have experience with XNA will find it a nice desktop reference to have for those moments where you don’t know, or have forgotten, how to do certain things. The book tries to cover all topics in reasonable depth and there are many small details that often don’t get mentioned in other books. If you’re new to XNA, you’ll find it a nice book to be able to jump to when you want to find out more about a specific topic.
There are many XNA tutorials on the web and, of course, the MSDN documentations. However, XNA Game Studio 4.0 Programming – Developing for Windows Phone 7 and Xbox 360 (Developer’s Library), centralizes all the key aspects of the XNA framework into one tidy book, which should be on the desk of any developer creating XNA projects.