Jaa


XNA 101

As part of my new job here in MS Dublin, I’m getting acquainted with XNA and the XNA Games Studio. This is the customized layer that uses Visual Studio (including the free Visual Studio C# edition) to create applications – usually games – for Windows and the Xbox 360.

After years of writing simple games on other platforms, all I can say is “wow”. Games Studio brings professional level tools to anyone running Windows, and does it amazingly well. Better yet, you can download your games to your Xbox 360, and even sell them on XBox Live. There has never been a better time to start writing games. I remember when Sony brought out a special developer edition of the PlayStation and how excited I was to code for it, but that's nothing compared to the infrastructure that exists around XNA.

Firstly, using C# brings both ease-of-programming and performance (no, really – forget any C# prejudices you may have) to the table, enabling both 2D and 3D games to be created with remarkable ease. There are so many options specially tuned for game authors it’s hard to know where to begin: everything from reading the status of the controllers, to networking, to loading 3D objects and textures. It’s just blown my mind that all this has been available and I’ve missed it. What on earth was I doing writing code for Windows Mobile when I could have been doing this?! (Only kidding, ex-Windows Mobile teammates!)

It’s only been a few hours, but I’ve already got the basics of 2D graphics down. I can load textures, and display backgrounds and draw sprites, all under the control of the Xbox controller. At the moment, I’ve enough to write a simple game, but I think I’ll press on and start exploring the essentials of 3D and the concepts of shaders. It’s all so exciting!

If you happen to be a novice, like me, you’ll need:

  1. Visual Studio 2005, or Visual Studio C# Express
  2. XNA Game Studio 2

I am currently using a book called “Beginning XNA 2.0 Game Programming: published by Apress, which isn’t bad at all. I’m also using the following web resources:

· https://creators.xna.com/en-US/education/gettingstarted

· https://blogs.msdn.com/shawnhar/

· https://www.moon-labs.com/ml_book2.htm

· https://www.charlesriver.com/Books/BookDetail.aspx?productID=99109