Nathan Fouts quit his job at Insomniac Games in 2006 to strike out on his own as an indie developer, ultimately settling on Microsoft's XNA as his development platform of choice -- and here, he reflects on the tool, which Microsoft last week announced will be discontinued.
XNA Game Studio is a tools suite developed by Microsoft, first available in 2006. It's a mid-level, code-based set of libraries for development, lower level than Unreal or Unity -- both which come with built-in editors.
XNA was last updated in 2010. As of last week, Microsoft has stated it will officially stop support in 2014. The company has also stated XNA will not be supported in Windows 8.
That's now. To appreciate what XNA meant to developers and gamers we have to go back.
Before Big Indie
Walk with me for a moment, down the corridors of time. The year is 2006. Cee Lo Green is big on the radio, instead of the TV. That Borat guy is crazy! They rebooted James Bond and he's looking pretty tough. George W. Bush is in his second term as president, and the Vice President just shot his friend while hunting!
It's 2006, and indie games aren't a "thing" yet. "But I've been playing N and Rag Doll Kung Fu, and I think Kenta Cho is a genius!" Yeah, and you are really into the scene. It's not a multimillion-dollar industry. There are no Humble Bundles; Minecraft and Braid are years off. Most gamers don't know indie games.
For me, in 2006, I'm working at Insomniac Games, doing the weapons for Resistance: Fall of Man. It shipped as a launch title for the PlayStation 3. The new Xbox came out last year, and Microsoft has really revamped the Xbox Live Arcade store since the first Xbox. I've been hearing stories about that Geometry Wars game getting millions of downloads. Millions? But it's really small and not even sold in a real store. And it's only five dollars? Wait, how many people did it take to make that game? Only two? Really?
With the prospect of starting my own studio and directing my own console games, I asked an old programming friend to begin work on a game engine based on Microsoft's Managed DirectX (MDX). He works on it for months; it's slow going, as there are many systems to get into place. We talk about game designs and how to use his new engine when it's finally far enough along.
Then he tells me there's talk of MDX giving way to some new system. He downloaded the first version of XNA and he is gutted; all his work is worthless. In fact, he tells me, it's so far beyond anything he's been doing in terms of creating mid-level game development libraries that it would take him years to generate everything that's already available in this new XNA suite.
The original XNA logo.
What You Could Do
XNA Game Studio is a prototyping dream. It's at a low enough level where you can build anything you can dream of, but has an excellent blend of higher-level systems handling tons of work for you. Graphics, audio, input, storage, networking... everything is wrapped in almost universally excellent APIs. Moving from C/C++ over to C# and getting all these sensibly-named, documented libraries for free was too good to be true.
I've worked professionally in the industry since 1998, mainly using C/C++ and UnrealScript. I'd never programmed in C# before, but within four months using XNA, I had made an extremely powerful and robust level editor, animation editor, and object construction system. Using my XNA-based editors, a year later, I finished Weapon of Choice -- my first independent game -- largely by myself and of high enough quality to be ranked in the Guinness World Records 2010. XNA is just that good.
XNA has excellent support of high-end 3D visuals but also has full coverage for 2D rendering, making it unusually good for both amateur and professional use. When pushed to its limits, Garbage Collection and slow floating point processing present significant hurdles, but even these can be overcome as evidenced by the many high quality games created using XNA. The suite has been recognized by the industry as well, winning two coveted Frontline awards from Game Developer magazine.
Because XNA exists less as an engine and more as an extremely robust, superbly useable library system, there is no "XNA look", as sometimes comes with other engines. Popular XBLA and Steam games have been built with XNA, such as The Dishwasher series and Terraria, and on the other end of the spectrum, XNA is used in many school projects used around the country from Maryland to Kentucky to Arizona.