I was surprised to find that the approach taken for each new thing that was shown was to create unit tests and to capture metrics on performance. Most books tend to concentrate on simply showing how to use different parts of XNA and getting (immediately) to flashy things on-screen, without worrying too much for whether the code is sustainable. This approach is clearly aimed at more experienced programmers and, in the long run, is likely to save time, since the code that is written the first time works better and/or can be more easily evaluated for performance and reworked or replaced as is needed.
While Microsoft XNA Unleashed is not a book for beginning programmers, it doesn't assume any knowledge of XNA. Part I of the book is devoted to getting "Up and Running" with XNA on your PC and Xbox 360. Chapter 1 is a very short chapter, but it covers installing XNA Game Studio Express and all the way through compiling and running your first sample game. Chapter 2 is specific to creating games on the 360, and covers purchasing an XNA Creators Club subscription and programming for dual platforms (PC and Xbox 360). Chapters 1 and 2 are mainly there to get your software installed and your prerequisites taken care of; if you've already got XNA Game Studio Express installed and you've compiled code and sent it to your 360 with XNA Creators Club, then you can dive straight in to Chapter 3.
Chapter 3 is listed as part of simply getting up and running, but this is where we get our first tastes of performance monitoring. This chapter covers memory usage and optimization considerations. Again, this no-nonsense approach to building a game is what separates this book from most on the market and helps keep your code from being throwaway code. You're programming with a purpose, here. There is a second reason for these measurements, however. C# code (and the XNA framework) runs pretty fast, but it doesn't run as fast as native code. This is something that anyone who wants to use XNA to make games has to come to terms with. The answer to this issue, however, is to be aware of the performance of your code and to be able to determine when you game is running too slow and to address the appropriate issues. Because of this, Chapter 3 is a very important chapter, setting the stage for more performance monitoring and efficiency discussions later in the book.
Part II, "Understanding XNA Basics," is where you'll find the content that most XNA books limit themselves to. This is the basics of what method does what and how you use that to display certain shapes and setup and manipulate cameras. Even here, Microsoft XNA Unleashed goes the extra mile by showing how to create XNA Game Components to better encapsulate your code and, again, a look at the performance of these basic XNA features. This section also explains how to deal with various input types and how to create a stationary camera and a first-person camera. It even covers how to create a split-screen display to allow for multiplayer games.
Microsoft XNA Unleashed then proceeds to cover more topics that you could have hoped for, from explaining the content pipeline and how to extend it, how to create 2D graphics, effects and games, how to use the High Level Shader Language (HLSL) and 3D effects, including particle systems. Additionally, Part VI covers physics and some limited artificial intelligence.
The final three chapters make up the last "part" of the book, Part VIII, "Putting It Into Practice," and it does just that. Chapter 20 builds a 3D game called "Tunnel Vision." Chapter 21 shows various improvements that can be made to the game, to exhibit how a game can evolve during development. The final chapter, Chapter 22, is aptly called "Finishing Touches," and covers just that; providing that final bit of polish that increases the production value, such as updating the Title Screen, Start Menu, Options Menu and adding a High Scores Menu, particle effects and sound.
There are a lot of code snippets in the book, used to show the use of different methods and concepts. However, the included CD has all of the code examples from the book. I played around with the code from the CD and didn't worry too much about looking for errors in the code in the text; I think the days of typing code in from a book went away around the time that disk drives became affordable.
If you're not already an experienced programmer, this book might be little bit heady for you. However, if you've been programming for a while and you're already at least a little familiar with XNA and the XNA Game Studio Express, then I can't think of a better book to recommend than this one. Microsoft XNA Unleashed is, quite simply, the XNA book to buy.