How is the approval process going with Microsoft?
To get an Xbox Live Arcade game approved, there's various stages and greenlight meetings you have to get through. First you've got to get somebody there excited enough to get it into a greenlight meeting in the first place. We showed a prototype to a manager from the XBLA team and he was excited enough to evangelize it.
The next stage is the "Concept Greenlight" - they regularly have a group get-together to review proposals and decide whether they want to pass on them or not. Apparently, at our greenlight, we were the only concept that had a prototype. So a prototype will definitely help you stand out. "Don't build it and they won't come." Our prototype, by the way, was only three man-months of work.
The next stage is a due diligence meeting. Here, they want to establish that you can actually execute, and finish the game before your launch window. Any red flags or concerns they have will be raised. For example, they wanted to know how long we could survive if the game slipped; they wanted to know if we had a test plan. For us, I think it helped that everybody on the team has an established track record.
And that's where we are now. Coming up later is the certification or TRC - the "technical requirements checklist" - all the console manufacturers do this. And games that have network play have much more elaborate requirements than ones that don't. It takes two weeks to get through cert - and if you fail, it resets. You have to take another two weeks.
What do you think XNA's strong and weak points are?
Strong points:
C# is a great language. I'd much rather write in C# than any of the proprietary scripting languages that has been invented for any existing game engine. I'd much rather write in C# than C++. Someone once said in the comment section of this blog: "When you're happy, you're more productive." Fast build times, managed memory, array bounds checking, no stale pointers, higher-order functions, good refactoring and auto-complete in the editor, NUnit, happy.
XNA is a great API. I used Managed DirectX a bit and it took me a day just to get the gamepad working the way I wanted. XNA did it with two lines of code. I mentioned this to a friend who liked MDX and he said, "Well, you only have to write the code once." But if you have to spend a day on overhead for every component in your game, you're going to be investing a week or two before you even get to start on the gameplay.
XNA is fast. You look at the stuff that's coming out of the XNA community and compare it to other popular game-prototyping languages, like Pygame or Java, and already, even though XNA is in its infancy, the games just smash the competition.
Weak points:
No portability. If we want to see Schizoid on non-Microsoft platforms we're going to have to rewrite the whole thing in C++. (Or maybe Mono's an option...?) I'm not concerned: C# and C++ are close enough neighbors that this isn't the end of the world. And "portability is for canoes" - Steve McCarthy. Since this game is a new concept it makes sense to get it to one platform as efficiently as possible and then, if it's succesful, to move it to others.
No interoperability with C++ on the 360. When I first started using it, I figured, "Hey - I'll use this and if something's too slow I'll rewrite it in C." Due to technical restrictions on the console this isn't possible. If they solve this, then it would be practically a no-brainer to use XNA for any game. As it stands, you're not going to be able to make a *Halo 3* killer with XNA. But people are already making really good looking stuff, stuff that looks as good as a lot of Dreamcast and PS2 and Xbox titles.
Some of my favorite things about C# aren't efficient on the 360. Currently you have to make sure you don't generate a lot of garbage on the heap - which makes you ask "What's the point of having garbage collection if I can't generate garbage?" So a lot of our objects get allocated in reusable fixed pools - I hate fixed pools (http://www.gamedevblog.com/2006/08/stl_memory_allo.html) because you spend a lot of time tuning the sizes; if you're wrong in one direction the game crashes and if you're wrong in the other direction the game uses more memory than it needs to - and closures (http://www.gamedevblog.com/2006/08/siren_song_or_h.html) generate garbage, so no closures that get called more than, say, once per frame. Still, it suited me fine to get the prototype up and running quickly, with lots of garbage generation and closures, to show it off to Microsoft, and to then optimize that stuff out later.
What you think of the cost of doing "casual" games...?
I prefer the term "downloadable" because our players aren't going to be casual. And, well, hey, it's cheap. Really cheap. A story went over Reuters today that said my alma mater - Spider-Man 3 - may cost $35 million. Schizoid will cost over two orders of magnitude less than that. And I believe it'll be just as fun. You could make over a hundred Schizoids for the cost of a Spider-Man 3!
Does that mean that
1) you have a pre-version of XNAGS Pro?
2) you're using the EE right now, planing to switch to the Pro version when it'll be released?
Up until now we've been doing all our development with the same consumer stuff that everybody can get. Just now we got a pre-version of pro, sort of a "pre-pre-alpha" they're calling it, and to do the network play we have to get actual dev kits, which we don't have yet, but Any Day Now (tm).
So we're the first guinea pig - we'll be finding the kinks in the system so people who use pro in the future will have the same ease of adoption as they do with the rest of Game Studio.
Great info. Are you not planning on targeting Windows at all then? I realize there are a number of distribution obstacles for that... I'm just curious if it's something your considering as we are planning on using XNA strictly for Windows without any preconceived notions that we'll ever get through the gatekeepers for XBLA.
Posted by: Andrew Douglas | March 19, 2007 at 12:56 PM
Do you think there would ever be any possibility of integration of XNA with WPF/E? I don't know enough of the technical side to understand how stupid this question might be, but the vision I have is: Build with XNA, publish to the web with WPF/E, play the game embedded in a page. That way you could be cross platform to anything with a web browser. Crazy, right?
Posted by: Lucas Hardi | March 19, 2007 at 02:46 PM
Lucas: don't hold your breath. If you want to make games for any platform supported by WPF/e, just make games using WPF/e. My understanding is that you'll soon even be able to code WPF/e apps using C#, but XNA is a completely different beast. Though one could argue that Flash is just as good if not better (especially in terms of install base) for that "platform".
If you want a cross platform, 3d capable game engine that has the kind of capabilities along the lines of XNA and can be launched from a browser, you're going to have to look at Java.
Posted by: Andrew Douglas | March 19, 2007 at 07:27 PM
Thanks for the info! I'm not that far to feature this as a gamedev.net news :) In fact, I'm going to feature it - as it contains a lot of very valuable information.
Regarding Mono, the Mono.Xna project (part of the Tao framework) is supposed to enable you to run your game using the Mono platform - but it's in its infancy stage (see http://www.taoframework.com/Mono.Xna). That may become a viable alternative later, but right now it's just too short to support any real-life game (hope that Rob Loach will forgive me on that one).
Posted by: Emmanuel Deloget | March 20, 2007 at 12:00 PM
Congratulations.
I gotta say the cynic in me feels like XNA is actaully a ploy to prevent games from being on any platform but 360 and possibly Windows. Microsoft's hope is that the lure of making a 360 game will get people to make the game in XNA. Once they do, there are only two paths.
Path #1, very rare, Microsoft blesses you and you get published on XBLA
Path #2, very common, Microsoft doesn't bless you are your dead in the water. Sure, you *could* port to another platform but MS is hoping inertia will stop you.
And, even if you are one of the rare teams that get to #1 path there's no promise their terms will be acceptable or their marketing or whatever else but they hold all the power because your game is running on their platform only and they know you'll have to invest lots of time to get it running else where.
Posted by: greggman | March 22, 2007 at 12:49 AM
Hi Jamie. I just read your thread about the Microsoft XBLA approval process. I'm currently working on a commercial quality "casual" game project together with a small team of people. I would like to explore the possibilities we have on the XBox360 market, but the thing is that we are all quite new to the business. At the moment I don't even know how we could have someone from XBLA to take a look at what we have. So I wanted to ask if it would be possible for us to get in contact with each other - so I could ask you a few questions (nothing that is covered by NDAs, however). That would be great!
Thank you!
Posted by: Florian Zitzelsberger | March 22, 2007 at 09:50 AM
As someone working on a XNA GSE game, I tend to microanalyze any comment related to the future of GSE, and here we go:
"Just now we got a pre-version of pro, sort of a 'pre-pre-alpha' they're calling it, and to do the network play we have to get actual dev kits, which we don't have yet, but Any Day Now (tm)" implies that GSPro doesn't have network libraries for the 360 target, at least in this early version. Fair assumption? Neither does GSE, but a lot of people are assuming there will be network libraries for 360 targets at some point in GS' history.
Posted by: guyal | March 23, 2007 at 08:37 PM
GSPro will have network stuff - so you can make a fully featured TRC compliant Xbox 360 game - by the time it's done. It's in its infancy right now but we're taking the hit with the new tech so you don't have to.
Posted by: Jamie Fristrom | March 24, 2007 at 12:12 PM
Thanks for clearing that up. Put me down for a copy of Schizoid :)
Posted by: guyal | March 24, 2007 at 05:29 PM
"Path #2, very common, Microsoft doesn't bless you are your dead in the water."
Hardly. You can still sell your game on Windows. You're free to do whatever you want on the Windows platform with XNA.
Posted by: Machaira | March 26, 2007 at 09:11 PM
Good article.
greggman's proposed path #2 is a rather weak one though. What you are forgetting is that to get into that process, you really should have a prototype, and beyond that... once you have a prototype, you can still shop it. REGARDLESS of it being written n XNA. Hell, a competent business person could spin it as a benefit...
"We decided to focus on rapid prototyping so we could hammer out game play, over finding a tool that is so generic that we could make people happy."
Funny part of it, nobody cares what your prototype is written in, as long as it works, and shows gameplay.
We're finding that XNA is awesome for rapid prototyping. We're at the three man months point, and we've got some really exciting things in the prototype... consequently, that green light meeting is a scary obstacle on the horizon.
I find it interesting that the author's project was the only one in that meeting with a prototype. It makes me wonder what the other dev teams were thinking.
Posted by: David Mata | April 12, 2007 at 11:21 AM