Author: Tom Miller & Dean Johnson
Publisher: Addison Wesley, 2011
Aimed at: C# programmers
Pros: Good introduction to 3D XNA
Cons: Not particularly about programming games
Reviewed by: Mike James
Since Windows Phone 7 appeared on the scene XNA game development has become much more important. Now you can target the PC, the XBox and WP7 using the same software. Of course if you want to run your programs on the XBox or WP7 you will have to pay Microsoft $99 to join the club.
This book has the subtitle Developing for Windows Phone 7 and Xbox 360 initially at least its a fairly standard tutorial on 3D graphics as applied to XNA.
The first chapter gives you a brief history of XNA and some background. Then we have a look at how to get started - download XNA Game Studio, install and try out a first program. Then we move on to sprites and 2D graphics and a look at the structure of a standard XNA program. This is the point in the book where you realise that it's not for the complete beginner. You need to be able to program in C# and understand terms like virtual method. This isn't unreasonable as a prerequisite for reading this book and it certainly doesn't expect you to know anything about 3D graphics or the mathematics that surrounds it.
Chapter 4 moves on to full 3D graphics and here we meet the graphics pipeline and cover the basic matrix and vector maths needed to do 3D. The maths is introduced slowly but without much depth - it is however enough as long as you are prepared to take it on trust and just use it. Chapter 5 moves on to the camera and lights metaphor for creating a 3D scene. Then basic colors textures and so on are covered in Chapter 6 and states blending and more textures in Chapter 7. Finally Chapter 9 deals with content processor and the content pipeline. By this point in the book you should have a reasonable grasp of standard 3D graphics as they apply to XNA.
The rest of the book moves off the topic of simple 3D graphics and starts to consider some of the special issues that apply to creating games. Chapter 10 deals with using avatars, Chapter 11 is on performance and Chapter 12 is on interaction including keyboard, mouse, Xbox game pad and WP7 touch input and other sensors including the accelerometer.
Chapter 13 is a short chapter on sound - always difficult to get right. Chapter 14 is about using isolated and studio storage. Then we have some high level game topics - gamer services and multi-player networking. The book rounds off with a look at using media in XNA Game Studio - xongs, video and visualisations.
The book doesn't emphasise game creation for any of its target platforms and if you are specifically going to create a game for WP7 you might feel a bit let down. There is for example, only a short appendix on the specifically WP7 problem of tombstoning - it's how WP7 deals with multitasking. It is strongest on XBox features with WP7 more or less an afterthought. In the same way the book really isn't focused on creating games but on the techniques you need to create games. Most of the examples are short fragments drawing standard objects with effects and animation rather than working out what you need to create a game.
If you are looking for a book to walk you through the creation of a game from the beginning to the end this isn't the book you need. If you are looking for a book that will help you learn the techniques and skills that you need and you are happy to see your own way through the admittedly large job of putting it all together into a game then is book does a really good job of explaining the basics.