Author: Dan Waters
Aimed at: C# programmers who want to write Zune games
Pros: Lots of practical examples
Cons: Overlong and underexplained listings
Reviewed by: Harry Fairhead
A book that introduces you to programming games using XNA 3.0 for the Zune by example - is it what you need?
If you are wondering what a "Zune" is then you are in one of the many parts of the world where Microsoft hasn't yet launched its handheld music/game device. If this is the case then there is no point getting interested in creating games using XNA for it.
Of course, if Microsoft is to be believed, it will eventually roll out Zune in Europe and other parts of the world - so you might want to get ahead.
The first thing to say is that this is about XNA 3.0 and version 4.0 is just in beta. This probably doesn't matter a great deal because not much substantial has changed and you can, with minor changes carry on using this book. The second important thing to say is that this is about 2D XNA game creation for the simple reason that the Zune doesn't support 3D - it simply isn't powerful enough.
The book starts off with getting XNA installed and working and in Chapter 2 it takes you though the basic structure of an XNA game and a simple game. You need to know some C# and some object-oriented ideas because there isn't much to help you get started. You are thrown into the deep end from the word go - the good news is that as long as you take a lot on trust it isn't that deep.
Chapter 3 deals with game content - what it is, how to create it and how to load it and use it. There are some quite long listings in this chapter and you can quite easily skip much of the detail and come back to it later.
Chapter 4 focuses on what makes the Zune special - its small screen and input buttons. A general input handler is listed at the end of the chapter and this runs to over three pages of code - not really a tutorial more a "use this".
Chapter 5 deals with fundamental game concepts - mainly vectors, velocity and acceleration, bounding boxes and collisions. Its all brought together at the end in a small example game. Most of the listings are too long and under explained. You can learn to create games from this chapter but you will have to work at it.
From here the book has gone over the core work in creating a game and starts to focus on the more advanced but less often encountered aspects. Chapter 6 discusses working with the Zune status - battery level etc, advanced sprites, orientation, state, touch sensitivity - ending with an other example game. Chapter 7 is nothing but an example game - multiplayer crazy eights. This introduces new features such as WiFi and multiplayer and if fairly realistic.
Overall this is a good book if you prefer to learn by example rather than instruction. Most of the example listings are too long and basically not explained in enough detail. But if you are prepared to read the code you can figure out what is going on easily enough. In addition the author is quite happy to point out where something is or is not a performance issue. He often says you should do it this way but it really doesn't matter if you don't. This is helpful.
The final verdict has to be that this is a far from perfect book but if the Zune is your target platform then it is full of practical examples and practical advice - but remember you need to have mastered programming and C# in particular to get anything at all from it.