1. Home
  2. Computing & Technology
  3. C / C++ / C#

Professional XNA Game Programming: For Xbox 360 and Windows
XNA - The next Publishers Band Wagon

About.com Rating 5

By David Bolton, About.com

Professional XNA Game Programming
There's a symbiotic relationship between the book publishing industry and the computer business. Publishers are constantly seeking new exploitable technologies so they can become the definitive publisher. As soon as something new and potentially massive (in terms of sales) comes along, there is a bandwagon effect which lasts for about six months to a year. During that time, 20-30 books will appear on the subject.

One such bandwagon is XNA- Microsoft's games technology for Windows and Xbox 360 games. In the last six months, over a dozen books have appeared or will appear on this subject.

Who is the Book Aimed at?

This is not a book for the novice, but I'd guess the intermediate to advanced level developer. The author is a MVP (Microsoft Valued Professional) and I'd guess used to dealing with people at or near his level of expertise. He does not provide step by step instructions but specific guidelines and details. Installing the XNA Game Studio for instance is described in just one paragraph!

For those with the full version of Visual Studio 2005, he provides enough instructions to get you going. This is important if you have aspirations of professional development - games development is a serious business and uses the techniques that other areas of development use such as team working, and unit tests.

A Quick Start into Games Programming

The book gets up to speed very quickly with examples of the original video game Pong within a few pages in the first couple of chapters. As the book looks at development for both Windows and Xbox 360, it mentions the differences in capability and how to debug.

The author has developed games and it shows. Chapter two spends a lot of time in developing a Pong game, from initial concepts through sprite moving and collision detection and ending with sounds. He is quite keen on Agile methods and includes unit testing right from the off; very much a professional approach. Once its running under Windows he then moves it to the Xbox 360. If you're developing for the first time on the Xbox 360, the advice here is invaluable.

Managing the resources for a game, graphics, 3D shader info, sounds etc is a complex task and chapter three addresses this issue as well as more mundane tasks like logging errors.

There's brief coverage of Nunit and unit testing here as well though that was introduced in more detail in the previous chapter. The remainder of this chapter introduces helper classes for enum, color and sprites and then finishes with a Breakout game, much of it derived from the earlier Pong game.

The Game Programming Learning Curve gets Steeper

Chapter four continues with the falling blocks game and then implements Tetris. Architecturally this is more complex and the author does a good job of explaining it. At this point it becomes clear that the first four chapters are just tasters for the greater detail later on. It's structured in four sections and this is just section one.

Section two goes into much greater detail on graphics and starts developing a fully working 3D graphics engine. It doesn't dwell on 3D maths or graphics; you are expected to read up on them if you don't know them. Instead it jumps straight into rendering a 3D image with a texture. It's sink or swim but that goes with this territory. 3D game programming is by its very nature a complicated subject. It's unusual for a games programming book to design by test but very welcome for all that. These days, professional games programming is a multi billion dollar industry with games costing upwards of $5 million to develop. The days of amateur developers are almost over. A professional approach is needed.

The author is clearly at home with 3D software and how for example 3D models are drawn and managed. Being able to get your graphics into your game is an important part of game programming and that's not neglected here. He even includes a ScreenshotCapturer class- the neat little touches that make all the difference. Commented code is scattered liberally throughout the book but don't expect a line by line commentary as you are assumed to be intelligent and knowledgeable. I really liked the tips given about moving your game onto the Xbox 360.

Getting up to speed with 3D Games Programming

There's an entire chapter devoted to shaders and it includes a history going back through the versions of DirectX (the forerunner to XNA). This is a pretty long chapter and covers a lot of ground. The author even has video tutorials on his website for two of the games as well as the full source code for the game Rocket Commander, which is covered in chapter 8. At this point you are halfway through the book.

The third section is about improving the game. It begins by covering sound using Microsoft's XACT- for creating cross platform sound. Next is player interaction and working with the XBOX 360 Input pad. Chapter 11 is another game XNA Shooter; many cool effects, nice looking 3D models and a 3D landscape in the background with houses and plants, real-time shadow mapping, a cool sound track, and nice sound effects.

The fourth section finishes the book off with three chapters on a racing game and this covers landscaping and tracks. These are not simple subjects- but if you get through them you will have learnt a lot. Chapter thirteen covers physics and fourteen looks at game designing, and the game menus.

Conclusion

If you're serious about getting into XNA games and Xbox 360 development and you know C# pretty well then this book is highly recommended. It is just superb with a lot of great content. But if you are a novice with C# or 3D graphics, then this is not the book for you. Really, you'll be just way out of your depth but come back once you're further on.
User Reviews Write Review
Explore C / C++ / C#
About.com Special Features

Stay connected and entertained with reviews on tips on the latest HDTVs, cellphones and more. More >

Easy ways to connect two computers for networking purposes. More >

  1. Home
  2. Computing & Technology
  3. C / C++ / C#
  4. Book Reviews
  5. Review of Professional XNA Game Programming: For Xbox 360 and Windows>

©2009 About.com, a part of The New York Times Company.

All rights reserved.