|
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.
|
Thanks, Nathan, for taking the time to write this! It really brings back memories!
Thanks so much for the article. It was a great read.
I've purchased all of "Mommy's Best Games" on XBLIG. What's next for you, Nathan?
We're still working in XNA, but also Java as we're looking at the Ouya. Obviously our next big game is in XNA and will be on XBLA, which is thrilling. After that, a smaller, strange party game for Ouya, then maybe something bigger. I plan to look at MonoGame as well down the road. Seems like it's still maybe a touch rough, but is shaping up nicely.
Obviously, I really, really hope Microsoft offers some way as open as XBLIG for their next console, and that Sony considers it as well.
IMO i'd rather see Microsoft offer the same open development environment and marketplace on the next Xbox as they do today on Windows 8.
This leaves room for projects like MonoGame (http://monogame.net) to support it as well as a bunch of other non-Microsoft platforms.
That it was platform locked to Windows systems was irrelevant as I was never interested in releasing games for smartphones and there was no viable path onto any other console. Being able to release games on the 360 and Windows PC with a very low barrier to entry, not to mention the great tools, is a tremendous boon.
To be honest, I feel glad that I already moved to another platform creating game around 1 year before it announces. But after reading this article, it takes me back to think about the old day making a game with my old team at University, and opens a whole bunch of opportunities.
Yes, you will be missed.
The reality was not quite so enticing, but the PC builds are no slouch. Garbage collection is rarely a problem for a pc, so you can just be sloppy and get things done quick. Need a fast tool? Fire up a winform next to the xna window. Ludum Dare? No problem.
I suppose ending support means killing the xna redist download link at some point? That will be a sad day, but surely by then Monogame will have the 3D side sorted. (go go monogame!)
Although I haven't finished the game I started with XNA, just making things appear on screen and respond to a controller was a fantastic feeling! Plus, I worked in particle physics and had to use code libraries written by physicists having taking a few C++ introductory courses only. Tens of thousands of classes. After using XNA for the first time, I knew that bad documentation and obscure variable names where not necessary :)
The defining aspect of XNA for me was the whole mid-level-concept. You can prototype so easily in XNA, because you get a set of tools (for programmers that is) but not a set of hurdles unlike in full-grown engines like Unity where you get a set of "here-let-me-do-that-for-you-buttons".
I have to admit, I don't have nearly enough experience with Unity to judge that specific engine, but in all my projects with engines I sooner or later encountered the situation where you get stuck because you did not build your project from the ground level but jumped onto a construct that you couldn't know in the beginning and that might or might not fit perfectly.
If you ask me, the number one risk in game developlment is using a toolset that does not really fit your needs. 99% of your tasks will be easier than without a toolset but the last percent might eat up that saved time or even break your back.
XNA offeres less help (no built-in culling, no built-in animations etc.) but on the good side you do not have to rely on black-box code.