. Topicala Page Index Token

A Journal about the experiences I have developing little applications in C#, Perl, Html and Javascript and talking about things new things that I use. Always Geeky; Always Nerdy; Always poor Grammer!

I am a Software Analyst Developer working in Southport, England but living in Liverpool. I develop mainly in C# and ASP.Net. I have been developing comercial software for several years now. I maintain this site (hosted at SwitchMedia UK) as a way of exploring new technologies (such as AJAX) and just generally talking about techie geek issues. This site is developed through a host of Perl scripts and a liberal use of Javascript. I enjoy experimenting with new technologies and anything that I make I host here.

Quick Search

Web www.kinlan.co.uk

Saturday, August 25, 2007

Review: Microsoft XNA Unleashed. By Chad Carter

Note: I received a copy of this book to review from pearsoned.com

51tSOH5BuQL._BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_[1] XNA is Microsoft unified gaming development platform for Windows and XBOX 360.  It was released in December 2006 and finally allowed hobbyist developers to program games using c# on the Xbox 360.  The book is aimed at getting people started on the XNA by showing them the basic concepts of

It took me a little while to read this book, only because I was busy all the time and never got around to reading it.  However, I sat down one evening an went through the whole book.

From the outset this book focuses on teaching you to at least think about the performance of your application (there is a whole chapter, most of which seemed to be taken up by pointless code).  To be honest it annoyed me a little bit when I was reading it.  However, it does prove a point and it stuck with me for the rest of the book.

I am a big fan of componentisation when it comes to programming (which is one of the key concepts of the XNA), I was expecting this book not to cover any of this.  Luckily, this book is strong in this area, not the for precise details of the API strong, but for pointing out the benefits and sticking to the idea of Game Components and Services.  There are several components that would-be game developers could copy straight from the book and use in their own games.

The whole book is at a sufficiently high level for nearly any level of programmer to get started using the XNA with.

Before I got this book I was expecting it just to be about the graphics side of the XNA, however I was pleasantly surprised that it is really about how to make a complete game using the XNA.  Which is a good thing really, because like myself (and acknowledged at the start of the book) many people who get it to programming, it is because they see a game and wonder how it works.

I remember my father trying to get me into programming as a child and I never really understood it nor was I interested by it.  It wasn't until I played Street Fighter II in an arcade on the River Dee in Chester that I had an epiphany, I worked out what programming meant and how the movements on the Joystick translated to Ryu on the screen throwing fireballs

The quantity of pictures in this book describing the output is minute, I would have loved to see more pictures when describing the 2d blending effects and the HLSL examples.  The quality of the pictures are very poor too, at a minimum they should have been in colour.

There are several non-graphics related chapters: Physics and AI for example.  I expected to not like the physics chapter, however, it is short, too the point and gets everything across that you would need to create basic kinetic effects in your games.  I really liked it; The AI chapter was too short and only really describes how to follow a game character, this should have been removed or extended because as it stands I thought it was one of the books weakest sections. 

Overall, I quite enjoyed the book. I was fairly proficient with the 2d programming aspects of the XNA and the coverage was quite good, it even covered a parallax engine which suspiciously looked like my Codeplex XNA project :)

I really liked his vertex shader and pixel shader introductions and his overview of HLSL (this was one of my weaker areas), however, that is all they are introductions they served me well but a whole book could be devoted to that area.

The structure of this book is quite good too, it starts off simple and gets progressively more advanced.  I believe that the structure of the XNA requires you to know about a lot of little things at the same time (the learning curve isn't linear, it is parallel) and when I was reading this book I was coming from knowing a little about the XNA already and I was questioning the author (in my head) "how is he going to explain this concept without X, Y and Z first.  Luckily it is handled quite well, with enough information to get the reader by with having to understand too much, then later in the book that X, Y and Z concept is explained in more detail (most of the time :))

I believe, that if the XNA existed when I started programming (about 14 years ago) and I would have found this book to it would have been a great help to get me gently in to games programming.  Therefore, I would recommend this book for anyone who has c# experience and wants to start using the XNA to make some cool games.  I would not recommend it to people who have no experience using c#, or are already strong at graphics programming.  If you have used either Managed DirectX or Direct X I think you would get more benefit from the help file that comes with the XNA.

The timing of this book is a little off, unfortunately Microsoft have just released v2 of the XNA which could make some of this book redundant (for instance, the first chapter is about requiring Visual Studio Express).  However, I have not delved into it yet (Chad: Is v2 of Microsoft XNA Unleashed on the horizon? I look forward to it).

Let me know what you thought of the book!

Purchase from Amazon.com

Comments: [Add New]

Thanks for reviewing my book! I didn't know that Sam's sent you a book to review, but I'm glad they did! I appreciate your comments. Would you mind rating and commenting on the book on amazon.com?

Microsoft isn't releasing XNA Game Studio 2.0 (with networking support, etc) until "Holiday 2007". My guess is November sometime. Another edition will depend on the sales of this book I believe. Most likely that will happen shortly after the release of XNA GS 2.0.

You are right that the book was geared toward programmers who understood C# or any modern language and had very little game programming experience. However, if someone knows C++, VB.NET or Java, they shouldn't have any problem with the C# code.

In regards to the readers who have worked with Managed DirectX or DirectX, I did hope that the chapters on HLSL and Advanced Texturing would help. I also hoped that it would show the XNA way to do things. Some people can write graphics demos, but do not understand all of the components it takes to actually make a game. Game states being a big part. I'm hoping that that chapter really helps some people.

I also hope that that AI chapter is beneficial to those that haven't ever thought of those basic algorithms. I approached that chapter much as I did the physics chapter. Not strictly XNA, but important to get a game done. So I tried to make them both short and to the point.

I will have to check out your codeplex project. It is funny how "good" code all looks alike ... I remember thinking that the XNA Demos that came out after I had my book written looked a lot like my code as well. It just goes to show that great minds think alike. :)

Again, I really appreciate your comments!


By Chad Carter, at Thursday, August 30, 2007 2:31:00 PM

Chad, thanks for the feedback on my blog...

I am just about to put the review on to Amazon.

Good luck for the future and with the sales of this book.


By Paul Kinlan, at Saturday, September 01, 2007 12:48:00 PM

This book is really good, but I am having problems with a chapter of this book.

On chapter 8, I no matter what, I can get the skybox to show. The code example looks incomplete inside the book, and my cd is scratched, so I can not look at the example projects.

So, I recomend this book, but make copies of the cd. ;)

And, can anyone help me with that?

By Alex, at Sunday, November 11, 2007 2:38:00 AM