Last week, Microsoft took several games created using XNA Game Studio and put them on Xbox Live Arcade, making community-developed projects available to console users for the first time. In my column for the Technology section today, I take a quick look at Microsoft's motives for promoting XNA development, and its plans for a community-based download service, due to premier later this year.

For the article, I interviewed several programmers behind the XNA games uploaded to Xbox Live Arcade last week. They gave me some great insights into the development process - most of which I couldn't squeeze into the column. So I'm putting the interviews on Gamesblog.

Meet 'Walaber', developer of JellyCar, Brian Cable, responsible for Proximity HD, James Silva of The Dishwasher: Dead Samurai fame and Jeff Pobst and Michael Austin of Hidden Path Entertainment, creators of Culture.

And here's the first part of our XNA chat...

When did you start working on your XNA game? And how many programmers were involved? Walaber: I did all of the development on JellyCar myself. I started working on the physics for the squishy objects last August, and work on JellyCar began the following month. All in all, the entire project took about 2 months, in my spare time of course.

Brian: I came up with the concept, the art and game design, the music, and the programming. I did have some help in the form of feedback from friends of mine, though, and a couple of ideas used in the game came from suggestions by others, but otherwise, just me.

James: I started work on "The Dishwasher: Dead Samurai" about a year ago, setting out to create a prototype for the Dream Build Play contest. I had the contest-winning prototype done in four months, and I've been working on fleshing out and polishing it since then. All said and done, I've been working on "The Dishwasher" for a year now. It's still a one-man production.

Jeff: Culture evolved from the very first XNA demo shown at GDC in 2006. In fact, the new Culture demo (that you can download today) was actually completed by our team in August of 2006. Microsoft originally approached us in February of 2006 to help them show off the XNA technology at GDC - four weeks later. We quickly designed and developed the flower demo that was shown at the conference and then a couple months later, Microsoft asked us to take around 10 weeks and upgrade the original demo to the one you can now download with three trial game modes.

Frank Savage on the internal Microsoft XNA team recently modified the underlying technology in the game to work with the current XNA framework rather than the version of XNA that we used in 2006, but otherwise the demo is very similar to the one we originally delivered. There are a few upgrades and adjustments we look forward to addressing as we hope to spend more time on it again and make it a more complete experience in the future.

What's the XNA package like to work with? Walaber: XNA Game Studio is a little different than other SDKs that I've used, as it is based on the managed C# language, whereas most of my previous game development had been done in C++. Besides that difference, however, I've found the SDK to work great, and really allow for rapid prototyping and iteration of ideas. I've actually really come to like C# as well, it's a very hassle-free language for getting stuff up and running quickly.

Brian: XNA is incredibly easy to work with. It does take some initial effort to understand what each function and class can handle, but that's true of any language and with XNA there's already several comprehensive books out there as well as a website run by Microsoft with a tutorials and source code that cover everything you would need to get several different types of games up and running using their software. And on top of that, it also has a very active forum community which is very capable of answering any questions you have.

James: The XNA framework has been awesome for a couple of reasons; the biggest thing for me has been that it allows independent developers with essentially no budget ($50 will do) the ability to deploy games on a retail console - something that was absolutely impossible in every previous console generations. But besides this, XNA is an awesome framework: it sets you up with all sorts of great tools and bits of functionality that let the developer focus on making a game.

Michael: XNA is very easy to work with. I'd never worked with C# before we started the demo (I've been a C++ guy). After how easy it was to use and seeing the level of support MS provides in its framework, we use it internally for most of our tools now.

Did you get any support from Microsoft at all? Walaber: Not directly, but the XNA team at Microsoft runs a community site, and the forums and sample code on that site were very helpful. Also surprisingly the documentation for the SDK itself is actually quite detailed and useful for learning about the central concepts.

Brian: For the XNA Community Games release Microsoft did provide some feedback and testing, and they've provided me with an opportunity to get the game out in front of more people, but other than that not particularly. But then again I never needed to ask them for anything either, as XNA is so straightforward for me.

James: Microsoft's been really great to me - they brought me to GDC, put me on stage during the keynote, and even made an awesome short film about me. I've been hanging out with the XNA team a bit this week and it's been really neat - I love XNA and they love The Dishwasher!

In terms of technical support, I really haven't needed any. There are a ton of resources online to get anyone up to speed on XNA features, but usually working with the framework is intuitive enough that I can just figure it out on my own.

Jeff: For Culture, we very much were supported by Microsoft as they paid for the development of both demos and provided great communication and support for our team as we quickly developed the projects. They have been great to work with and we spent a lot of time with the early versions of XNA and were able to provide some feedback at that time. XNA has come a long way since that early start and has quite an impressive feature set now.

What sort of technical restrictions are placed on XNA developers? Are there things you'd like to have done that the dev platform won't allow? Walaber: Well, the choice to go with C# brings with it some performance issues (particularly on the Xbox 360), which required me to do more optimization of my code than I would have initially expected, considering that the Xbox 360 is so powerful. Hopefully future versions of XNA will improve some of these performance issues.

Brian: From what I hear, XNA is not quite as powerful as a graphics engine developed internally, but I'm just one person, not a company, and even if I spent several years perfecting a graphics engine the industry and XNA itself will likely have leaped ahead of me anyway, and I'd constantly be playing catch-up with my engine and not focusing on actually making games, which is much more fun and interesting to me anyway.

Also there's no achievements, leaderboard support, or the camera support, and I don't think you have full access to Xbox LIVE multiplayer either, but I haven't looked too much into that yet. Achievements are understandable, though, or else you'd have everyone spamming five second non-games and releasing them to the service giving whoever played them max achievements instantly anyway. But of course, I would like access to all of these features, which is why I would love to someday release the game through XBLA.

James: C# does slightly underperform versus native code. Personally, I'd rather be coding in C#, because I'm a rotten C++ coder. If I were in charge of things, I would market XNA with the tagline "XNA: Giving Hope to Rotten Coders."

Michael: There are some features (pointers, etc) turned off for security reasons, and while managed code can be convenient to use, it does run more slowly. For instance, every time you access a variable in an array, C# has to validate the index. In C++ there are no handrails, so you can shoot yourself in the foot, but it's generally faster. The nice thing is that more and more heavy lifting is done by the GPU, and so the impact of using a managed language is less than it has been in the past.

Part two - coming soon...



Captcha image