Last night I was fortunate enough to be invited along to Atomic magazine’s Sydney XNA Enthusiasts Event.
It was a small group of close to 40 people, all keen to hear about games from a development perspective and just how easy (or hard) it would be to get into creating games, or just get more information in their heads. The Atomicans are a very loyal bunch of guys and gals who pride themselves on taking tech seriously, and it was obvious last night in the way they showed the presenters respect and followed up with intelligent questions.
Zsolt Mathe and Jason Strayer, both part of the Game Technology Group within Microsoft were over from Redmond to discuss XNA and more specifically the approaching final release of XNA Game Studio Express.
Due for release on December 11, XNA Game Studio Express builds on top of Visual C# Express with additional framework objects, abstraction layers and new project types and starter kits all aimed at arming the enthusiast coder with a toolset to help them get started. It’s not intended for professional use, instead it’s geared towards hobbyist programmers, students and even professional computer developers who don’t create games as their full time job.
There was a lot of discussion about the growing popularity of Xbox Live Arcade games. Traditionally, these are smaller games that require a much smaller development effort and seeing the numbers they were quoting it gives the "little guy" some hope that they don’t need to be backed by a multi-million dollar publisher.
But the interesting part for me was the stuff revolving around just how easy it is to get up and running with the development of a game. When you create a default XNA game project, it automatically creates a Game object with built in eventing based around a 30fps loop. Draw and Update event handlers are created along with default initialisation and constructor logic and all that’s left for you to do is create your specific objects and sounds, plug them in to the system and start writing your game specific stuff rather than having to worry about all the pipework underneath.
The XNA developers have overloaded constructors and operators so that you can use game related objects just like you would other types. For instance, take an game world object that has a three dimensional position in X, Y and Z axes. Take another object with the same structure of three dimensional values that defines the velocity you want to apply and simply add them together. Wham – you have motion – nothing else needed.
There was plenty of other stuff that has got me fired up, including sound, the ease of implementing camera angles, and how simple it is to implement different control interfaces such as the Xbox 360 controller. I need to let the information sink in a little more and get the right terminology before I look like a complete idiot though.
I’m still thinking through the ramifications of how easy this is to get up and running – particularly about all those game ideas I’ve had over the years. I’m starting to think that this might be my best chance yet for actually creating a game that I would be willing to show others.
Guaranteed though – this won’t be my last XNA post. In the mean time, if you’re interested in taking a look at XNA, head over to http://msdn.com/xna.