Home | Anime | Movies | Soundtracks | Graphic Novels

XNA Game Studio Express: Developing Games for Windows and the Xbox 360

XNA Game Studio Express: Developing Games for Windows and the Xbox 360 is a pretty solid book when it comes to introducing XNA development to hobbyists. The focus of the book is to get the reader set up with all of the basic tools and technologies he/she needs in order to create XNA-based games on Windows and the Xbox 360.

It's important to note that this book doesn't teach you how to program, it gives you enough information to do what you need to do. Because of this, the author, Joseph Hall, recommends picking up a beginner's C# book if the concepts introduced in "Using Visual C# Express," the first chapter that deals with coding and programming concepts, get you confused.

If you already have a handle on programming, specifically Object Oriented Programming, then you should be able to all but completely skip the first couple of chapters since they are all about setting up your development environment and understanding how to work with Visual C# Express.

One thing Hall says multiple times is that the code in this book is not optimized for speed. Instead, he wrote it so that it was easier to read and thus better for beginners to understand exactly what is going on. He stresses that this isn't really production-quality code and, if it is used, should be highly polished.

XNA Game Studio Express spreads its knowledge over 31 chapters broken up into four parts. These parts are "Building Blocks," "Genre Studies," "Components, Libraries and Tools" and "Tasty Bits."

As hinted at above, "Building Blocks" starts off with chapters that get your environment set up. Besides introducing you to Visual Studio C# Express and what exactly XNA is, you also get a lesson in which extra tools you will need. These tools are editors for sound, pictures, 3D models, etc.

The second half of this section goes into working with and manipulating 2D and 3D graphics as well as polling the various input devices (controllers, keyboards, mice) and follows up with a discussion about XNA's audio system, XACT (The Cross-Platform Audio Creation Tool) and what issues you will have to consider when developing for the 360.

The "Genre Studies" section takes you through the development of six games in order to teach you progressively more advanced techniques. First you will create a Pong clone, arguably, the easiest game to develop, then with the addition of some blocks, you will create a Breakout style game. After those games, you will develop a Tetris game, a top-down shooter similar to Galaga and then round things off with Solitaire and Reversi.

All of these chapters will leave you with a fully working, though not necessarily polished, game. Each chapter goes through the design of the game's concept and then the architectural decisions before throwing code at you.

The "Components, Libraries and Tools" section teaches you how to break your code into smaller, more manageable and reusable pieces called Components and Libraries. By doing this, you will be able to take code that will need to be common to multiple projects (like an user input system) and not have to re-write it every time. This section also discusses creating custom tools that will help the efficiency of your project. By the end of this section, you will create a component that treats gamepad and keyboard inputs as the same so that players can seamlessly jump between a keyboard and their plugged in controller, a particle system, a level editor for the Breakout clone you made earlier and a Game Font Maker Utility to easily transform True Type fonts into usable images for your game. Along with the Game Font Maker Utility, you will also create a library that allows you to use the generated fonts. This library exposes methods that let you draw the text in any color and screen location and you can also measure the size of the strings before they are drawn so you can position them exactly where you want them (great for making sure they fit or justifying the text).

The last section, "Tasty Bits," covers more advanced topics that will give you a taste of what you need to do in order to create a fully realized game. With the techniques introduced in these six chapters, not only could your code run smoother and faster, but the visuals will also improve.

The first chapter in this section teaches you what threading is and how multithreading parts of your code will improve performance. In this chapter, you will take the particle system developed in the previous section and multithread it. This chapter also has an overview of the Xbox 360 CPU architecture for those readers who might find that interesting.

Another chapter here discusses extending the Content Pipeline for custom images, specifically the font bitmaps created by the Game Font Maker Utility, so that the fonts can be loaded into the game and processed much more efficiently. There is also a chapter about general optimization techniques and how to create a "pixel-perfect" sprite collision detection system.

The last two chapters discuss the best ways to organize and handle small to mid-sized development teams as well as the new features that are included in the latest release of XNA, XNA Game Studio Express 1.0 Refresh.

As you can see, XNA Game Studio Express: Developing Games for Windows and the Xbox 360 has a lot of breadth to it. While it doesn't go very deep into any one subject, it gives you enough information to get you started to make pretty much any game you want, well, definitely any 2D game anyway. I have to admit it's 3D content seems a bit lacking when compared to its 2D discussions, but it could also be argued that 3D development goes beyond the Beginners level that this book caters to.



-J.R. Nip, GameVortex Communications
AKA Chris Meyer
Related Links:


This site best viewed in Internet Explorer 6 or higher or Firefox.