Gamasutra: The Art & Business of Making Gamesspacer
Reflections on XNA

Printer-Friendly VersionPrinter-Friendly Version
View All     RSS
April 16, 2014
arrowPress Releases
April 16, 2014
PR Newswire
View All





If you enjoy reading this site, you might also want to check out these UBM TechWeb sites:


 
Reflections on XNA

February 5, 2013 Article Start Page 1 of 3 Next
 

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.


Article Start Page 1 of 3 Next

Related Jobs

Turbine Inc.
Turbine Inc. — Needham, Massachusetts, United States
[04.16.14]

Director, Analytics Platform Development
2K
2K — Novato, California, United States
[04.16.14]

Web Producer
Linden Lab
Linden Lab — San Francisco, California, United States
[04.16.14]

Sr. Front-end Web Developer
Linden Lab
Linden Lab — San Francisco, California, United States
[04.16.14]

Sr. Software Engineer, Back-end






Comments


Kevin Strickland
profile image
I'm so glad this article exists! XNA was my first time messing around with code and really getting to know how to make software and games. If it weren't for XNA, I don't really think I would know as much about games or be writing about them as much as I do now. Even though XNA was tucked away in a sad little corner, I thank Microsoft for allowing so may people like me to use it freely, even if it was just for learning.

Thanks, Nathan, for taking the time to write this! It really brings back memories!

Matthew Mouras
profile image
Here here! XNA was my first foray into serious games development. I guess it's time to check out MonoGame or Unity, but I will miss the idea of XNA.

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?

Nathan Fouts
profile image
Thanks all, I'm really glad you enjoyed the article. It felt good to look back on how influential the open console platform was for many developers, ourselves included, and how quickly things have changed.

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.

Matt Spaulding
profile image
I really hope the next XBOX has an indie section. :(

Bryson Whiteman
profile image
Great read, it really puts things into perspective.

Benjamin Quintero
profile image
Now if only someone with the power to make things happen at Microsoft could actually read this. I'm sure that there are plenty of people on the old XNA team with ideas for XNA 5.0. DirectX 11 support would be a good start, but a good portion of XNA is pretty future-proof.

Tom Spilman
profile image
The core problem is that an official XNA5 would likely be limited to just Microsoft platforms.

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.

Chris Oates
profile image
All I want is an officially supported way to make DX games with C# as the primary language and targeting Win8, Xbox and WinPhone. I don't care about other platforms. Whether that's XNA, a new MDX, or something different entirely. SharpDX and MonoGame still seem to be too far away from being fully baked...

R. Hunter Gough
profile image
Great article, Nathan!

Karsten Wysk
profile image
We hope that some XNA developers will like our Delta Engine which is basically the same as XNA plus the ability to develop for all platforms at once (currently Win 8 & WP .. soon Android & iOS etc.)

Brian Anderson
profile image
I moved from DirectX to XNA, and fell in love, guess I'm going back to DirectX :(

Camilo R
profile image
Same thing happened to me but from OpenGL. I learned computer graphics in OpenGL but finished my first small game in XNA and loved it. Back to OpenGL for me, never did like DX syntax.

Jaco Gerber
profile image
XNA was always a bad idea. Don't limit yourself to developing for one company's platforms. Use Monogame, use Unity, use a lower level language - anything but platform-locked solutions.

Adam Bishop
profile image
XNA was a fantastic idea. I had never made a video game in my life (aside from some brief experiments in high school in the 90s) when XBLIG first launched. Several months after learning about XNA I had finished and released a game on the Xbox 360 that was played by thousands of people. That was thrilling for me as an enthusiast and budding developer, it was a great learning experience, it helped me land my current job, and it provided me with an unusual experience that I would never have had anywhere else.

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.

Chris Oates
profile image
The problem with Unity is that it is terrible for programmers. Only supporting Y-up, limited ability to actually write code (as opposed to scriipts) and the list goes on. XNA was much much better for game programmers, as opposed to game designers.

Wasin Thonkaew
profile image
Thanks for this.
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.

Kenneth Baird
profile image
I love XNA, and I feel the same way as the author about tinkering on the 360. That mystical magical and horribly expensive world of devkits and derpy debuggers is ours for a hundred bucks!

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!)

Axel Cholewa
profile image
Great article!

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 :)

Ignatus Zuk
profile image
Good read, I a specially liked the twitter posts, it feels like someone really close to us died. :)

Thomas Happ
profile image
Like Nathan I'm a professional developer who uses C++ and DirectX for AAA games, but, without question, it's a pain in the butt, whereas XNA cuts through the bull and lets you get to the stuff that matters. It's mind boggling that Microsoft is cutting off their indie support while they're in the midst of being clobbered by platforms that thrive on it.

Nathan Fouts
profile image
Still really excited about playing your game Axiom Verge. Lookin' great!

Daniel Dobson
profile image
Great article Nathan. Well said.

Alexander Jhin
profile image
Moving from DX to MDX to XNA felt like discovering fire and the lever. And now, back to the stone age of DX...

Lars Kokemohr
profile image
XNA being discontinued is just as sad as there not being anything else like it.
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.


none
 
Comment: