The Battle for XNA Part 1: Don't Panic
The Bad News…
First off, don’t panic.
Yesterday morning when I woke up, I saw that I had received an email from a site visitor pointing out a couple of articles that had just been posted, which had then spread across the Internet. They had proof that XNA was dead. If you’ve done anything with XNA ever, you should go read those, but be sure to come back, so I can explain why you shouldn’t panic.
In case you don’t have time to read them, they’re from Promit Roy who is an MVP for XNA/DirectX. Because he’s an MVP, he got this email saying “XNA Game Studio is not in active development, and DirectX is no longer evolving as a technology,” and as a result, the XNA/DirectX category in the MVP program was going to be eliminated. It sounds like after talking about it on his blog, he got a second follow-up email clarifying some things as well. (More on that in a second.)
I don’t particularly care about the MVP program, or changes to their program, but I couldn’t help but read that one line over and over again in disbelief: XNA Game Studio is not in active development.
The same thing might be happening to you right now.
To be sure, there were signs. Specifically, there were no signs of any active development. But that lack of signs was fairly convincing evidence anyway. While I’m severely disappointed (more on this later), I can’t say it took me by surprise.
My first reaction was to panic. Maybe you’re doing that right now, too.
I sat there thinking about all of the time I’ve put into my tutorials. All of the time I put into my C# book, which people will only see or hear about through my tutorial site. I thought about the game that I’m currently making, and sharing with you through this website, which uses XNA. I thought about all of you, who have followed along and invested massive amounts of your time in XNA as well.
Clearly, there’s a lot to panic about, but don’t. Allow me to explain why.
Only Part of the Story
For starters, we only have part of the story. Microsoft was quick to retract their statement about DirectX no longer evolving. (That was in the second follow-up email.) It is worth noting that they did not retract the part about XNA Game Studio not being in active development. But the thing to understand is that this was intended to be a private message sent to a handful of people. While we know the full content of the first email, the follow up email would appear to have more information about XNA specifically that Promit was unwilling to share because of a non-disclosure agreement. I suspect it’s not good news, but the reality is, we don’t know what else was said.
Because the original message was intended to be private, and not appear on the Internet, Microsoft may not have been ready to handle a response to this publicly. They may have wanted to say XNA was dead only when announcing the replacement for it at the same time. With this surfacing, this may force them to speed up the time frame, and we may get more information over the next few days or weeks.
Of particular interest, we may see something at GDC on March 25 – 29. This is the kind of place where a lot of big announcements regarding development frameworks are made. Also, everybody is expecting Microsoft to make a big announcement regarding the new edition of the Xbox at E3 on June 11 – 13. If they actually tell us about the new Xbox then, they may also tell us how people like us can still make games for it.
I don’t expect that we’ll hear at either of these events (or any time before) that we were told wrong, and XNA is still alive, but we may hear something else that will be just as worthwhile. Which brings me to…
XNA is Dead. Long Live XNA!
Back in the day, when a king (or queen) passed away, people would announce it by saying, “The King is dead! Long live the King!” Which of course is a big fat oxymoron until you realize they’re saying the old king is dead, long live the new king.
I don’t see a way anybody can logically or intelligently say that XNA is still alive after this. But that doesn’t mean there won’t be a new XNA to replace it. It may be called something entirely different, but it doesn’t make sense for Microsoft to throw away a connection that they’ve forged to indie and hobbyist game developers through XNA. They’d be complete idiots. (They may ultimately prove that they are.)
So while it has become pretty clear that we won’t see an XNA 5.0, it is also pretty clear to me that we should still see a spiritual successor to it at some point. Something that carries the heart and soul of XNA on to something even greater.
And while we’re at it, I should probably point out that it was time for XNA to evolve anyway. XNA uses DirectX 9. That’s ancient in computer time. DirectX 11 has been out for a very long time, and it includes so many features that go above and beyond what we ever saw before. Throw on top of that a new edition of the Xbox, and even an XNA 5.0 was bound to be very different than what we had seen before.
Perhaps the story that hasn’t been entirely revealed yet is that something far better and more advanced is in development as you read these very words. And maybe we’ll soon know about it. A year from now, maybe we’ll be making awesome games with it.
I don’t know that this is the case, I just think it ought to be.
To head off what I know some people are going to try to say, no, Microsoft has not already provided a spiritual successor for XNA. It’s not C++/DirectX, it’s not Windows Store Apps/Metro, nor is it anything else that they’ve put out recently. So don’t try to tell me it already exists. (More on this another day.)
And if XNA is Truly Dead?
I know, though, some of you are still thinking this question: What if XNA is truly dead?
I can’t completely rid myself of that thought either.
I don’t honestly know what this would mean. Where would we go next? MonoGame? SharpDX? (More on these another day.)
Does this accidental announcement mean we should quit learning XNA?
My answer is no. Not quite yet.
XNA is still the right tool for students, hobbyists, and indie game makers at the moment. A year from now, it may not be. (It probably won’t be.)
The reality is, we don’t yet have the right information to make this decision intelligently yet. That information is coming soon, but it’s not here yet.
As an example, let’s say that MonoGame ends up being the right tool in the future. If you’ve learned XNA, nearly all of your knowledge and nearly all of your code will port over to MonoGame with very little hassle.
Or let’s say SharpDX ends up being the right tool. Less of your code will be portable, but it’s not insanely different. And the transition is simplified by the fact that the SharpDX developers are going out of their way to add in XNA-like helper/wrapper code.
Even if you end up moving to Unity, or C++/DirectX, or OpenGL, or Windows Store apps. XNA provides you with the right environment to learn concepts, algorithms, and practices that you’ll use everywhere else. You still won’t regret the time you spend learning it.
Despite the frustration that I think we’re all feeling at the moment, it isn’t time to panic. Wait a while longer. In the mean time, learning and using XNA is still very worthwhile, and still what I’d be learning if I were a beginner. What you do and learn will be usable for a long time to come. After a lot of deep thought over the last day, I’m still moving forward with my game using XNA.
Stick with me. I have a lot more to say about this, which I’ll be posting over the next few days and weeks. I’d love to know what all of you are thinking about this as well. In fact, I think we can have a bigger impact and get a better outcome if we work together at this unfortunate fork in the road.
I have absolutely loved writing about and teaching XNA to people over the years. Right here, today, I’m committing to you that I will take that journey with you. I’ll help you (all of us) find the best path forward, and help to light the way down that path when we know what it is.
But… I don’t think I can do it alone.