What Games Can You Build with XNA?
Not everyone I talked to at GDC believes in XNA. Not yet in any case. Many of the XNA doubters and naysayers claim that XNA is only fitting for casual games, or at most prototyping game ideas. Until game developers see more commercial XNA games and bigger examples of XNA games in various genres, like first-person shooters, action games, role-playing games, sports games, and others, the question will remain about the type of game that can be tackled efficiently with XNA.
Koster has strong opinions about this false perception on the scale of games from his industry peers, saying, "I think a lot of this is snobbishness about what "a game" means these days. Somehow we have started thinking of something that was a commercial product making millions of dollars in the 80s, as just "a minigame" today. But a killer puzzle game is still a hit game. Scale is not an indicator of quality. In addition, I don't think that there's anything specific precluding larger projects being made with XNA. Again, what I have seen within the indie community is that they will make large and ambitious titles with pretty low-end tools."
|John Williams: "I think game developers would breathe a collective sigh of relief if they never had to debug a corrupted memory stack again!"|
Microsoft also seems realistic about who these initial tools are for, but Mitchell is very confident about what can be achieved with XNA Game Studio Express. He comments, "XNA Game Studio Express was designed first and foremost for community game developers and not the professionals. Even so, we've been continually amazed at what professional game developers have been able to do with it once they've gotten past any initial objections to it being a managed code environment. The XNA Framework is really proving to be favored by a growing number of professional and indie game developers for Xbox LIVE Arcade games and rapid prototyping of new commercial game concepts. As we move closer to unveiling details on our professional-level offering of XNA Game Studio Express, I think you'll start to see an even greater rate of exploration and adoption of "bigger" game ideas using this technology. From what I personally have seen developed using it so far, I'd bet that nearly all games on any last generation console and even a fair number of the games this generation could be created using the XNA Framework."
XNA and C# are primarily used for prototyping at Hidden Path today, says Austin. "Hidden Path Entertainment is a typical independent developer—we want to be able to make games for any platform and suit the experience to the user, the controls, and performance of that platform. We use middleware and unified systems for some titles or custom tiny engines for others; our main goal is flexibility and speed so we can take on a variety of challenges. C# is useful in that we can get game-play prototyping going while the technical specifics get worked out for the specific platform."
Fristrom does not think XNA is just for prototyping. He does not consider Schizoid to be a casual game either. He sees hard-core game developers having an interest in it, and Torpex is shipping Schizoid as an XNA game after all, "so it's clearly not just for prototyping" he says.
Terrano cautions against underestimating the value of prototyping though. "Game development is about finding the core fun activities in your title and iterating and carefully tuning that experience—then adding the best audio and video assets to match the game play that you can afford. I'd be surprised (and disappointed) to see a professional designer disparaging something as being fit only for prototyping game ideas—that is the most important and critical part of the game development process. Ultimately, in a highly competitive space where speed of iteration, quality of execution, and reducing development risk are major factors to success, I'm fine letting naysayers ignore whatever tools and advances they'd like."
Austin would use C# for commercial games, not just prototyping, provided that XNA Game Studio could also allow you to integrate native code calls as well, which it does not today. While it is possible to use the full .NET Framework 2.0 including all namespaces, networking features, and even unmanaged code calls in XNA games running on Windows, the .NET Compact Framework-based XNA Framework on the Xbox 360 does not offer such flexibility. "I think the using only one or the other mentality is limiting, and I think once one considers projects that have both managed and unmanaged code, the possibilities are quite large. I don't know if I'd ever write a full production, AAA action game exclusively in C#. However, it's been my experience that many really tough debugging issues come up in game-play code, which C# helps prevent. I can see writing a AAA game where everything except the very low-level bottleneck systems (rendering, physics) are in managed code, for example" Austin says.
Is XNA Just for Casual Games?
Casual games are those games we can pick up and play for a few minutes on a console, portable device, computer, or even in a Web browser as many casual games are Flash-based. From Solitaire to Tetris, Sudoku and beyond, casual games have the widest and most diverse audience among gamers, and they are also the most probable to be played by non-gamers, hence the term casual gamer. But quick to play does not mean these games do not attract hard-core gamers too. Microsoft's Xbox LIVE Arcade features a wide variety of casual games, and even the most hard-core Gears of War player often can't resist a good game of Hexic HD or Geometry Wars.
|Raph Koster: "A killer puzzle game is still a hit game. Scale is not an indicator of quality."|
Williams is quick to point out that XNA is not just for casual games. When asked the question about whether XNA is just for casual games, he answers "Casual games
assuming we define that as today's stereotypical PC online match-3, puzzlers, and bubble-poppers, absolutely not. Mid-way through development of Torque X, without even having done the majority of our performance tuning and optimization, we had a fully shaderized, 3D level of Marble Blast Ultra
up and running and performing well on XNA and Torque X. Marble Blast Ultra
, I think most anyone would agree, is one of the most technically sophisticated and largest scope games on Xbox LIVE Arcade, and goes well beyond any normal definition of a casual game."
But before going too far on the question, we need to assess whether or not the casual game developers even care about XNA. To find out how XNA was received in the casual game community, I contacted Brad Edelman, CTO of PlayFirst, who is one of the leading developers and publishers of casual games across several platforms.
"In our opinion [at PlayFirst], Microsoft is focused on a completely different audience and goal with XNA. There are two primary reasons PlayFirst would not use C# and XNA to develop games:
- PlayFirst games target the mass-market consumer on the Internet. Games built in C# and XNA require consumers to have the .NET runtime, which most consumers do not yet have. Sure, people could go download and install .NET, but that's asking a lot of the average consumer—plus, the download of .NET is bigger than the download of our entire game!
- PlayFirst targets multiple platforms. To Microsoft, cross-platform means Windows and Xbox . That reminds me of the line from the Blues Brothers movie: "we've got both kinds of music: country and western." To the rest of world, cross-platform means Windows, Macintosh, Xbox, PlayStation, Wii, PSP, DS, and the killer set-top box of tomorrow. C# is simply not available across these platforms. It's not necessary to debate the merits of C# if it's not even an option. Our casual game development framework, Playground SDK, on the other hand, was built from the ground up to be cross-platform. Its conservative use of C++, minimal footprint, and carefully designed abstractions make our SDK and games easy to port, putting PlayFirst in the position to succeed with our games wherever the future of digital entertainment takes us."
Microsoft's Mitchell even agrees with Edelman, stating, "For XNA Game Studio Express, we specifically chose not to support the same considerations and constraints as the broad casual games market. This offering wasn't designed for them."
Fristrom comments further on the casual games issue, saying "I've got a few friends in the casual game community, and I haven't heard this criticism, myself. The casual games developers I know aren't making the jump because they're almost as entrenched as console developers. They've got fewer lines of code to move over but fewer engineers to do it! When you think about it, we were really in the right place at the right time—we happened to be starting a new game with a new engine just as XNA became available."
Austin is not worried about whether or not the casual game community adopts XNA. "There are always different people with different needs, and rarely is any product going to satisfy everyone's needs out of the box. I don't believe XNA's success rests solely on one type of game developer's needs. I also don't think that any one type of game will always be made the same way. Game categories continue to evolve and change. XNA has many possible uses, and it may not be right for some developers, but I think it can be very useful for others."
Williams reiterates how important it is for Microsoft to bring community tools around XNA games, saying, "If Microsoft figures out how to allow the sharing, rating, recommending, and selling (!) of these games, it will be an even bigger deal. At that point, it won't matter what casual game developers think, though I'm pretty sure by then they will see the value in putting their game in front of millions of console owners."