XNA: Building Games for Both Windows and the Xbox 360
XNA allows game developers to build one code base which can then run on both Windows and the Xbox 360. While each platform requires its own project template in Game Studio Express and developers can also add platform-specific code using conditional compilation, XNA code remains fairly multiplatform from a Microsoft gaming platform point of view.
Multiplatform game development requires more than a common code base however. Profiling and tuning of XNA code remains a critical step of the development and refactoring process just as it is for C++ code. Fristrom comments on this matter, saying "On the PC, it's easy. You can use any off-the-shelf profiler for CPU profiling, and you can use Microsoft's awesome CLR profiling tools for garbage collection and stuff like that. And you can use PIX. On the Xbox, it's about the same as writing in C++: no real good CPU profiling—you have to do your own instrumentation; but you can still use PIX."
|Raph Koster: "Dance Dance Revolution and Guitar Hero as games are not that complicated, and have been replicated in Flash on the Web, even. So I have little doubt they could be accomplished with XNA."|
has been developed for Xbox 360, Fristrom says Torpex plans on releasing the game for Windows too using XNA, as well as future games too. But what about other platforms? C++ can truly be used as a multiplatform language and, unlike XNA, it does not discriminate between gaming consoles from Microsoft, Nintendo, and Sony, and the same goes for PC gaming on Windows, Macintosh, and Linux. Can XNA be treated as a true step forward when it covers such a narrow field?
Williams is not concerned with this limitation because it still opens up a vast market that was otherwise hard to tap into. "First of all, Microsoft's definition of cross-platform is able to run on multiple Microsoft platforms
. We're well aware that this is not necessarily the rest of the world's definition of cross-platform, nor is it our own [at GarageGames]. Regardless, the reality is that Microsoft's platforms cover a huge percentage of the game market, and it's obviously more than enough space to make successful games in."
Austin explains where XNA fits in his plans, saying, "We're very fortunate at Hidden Path to work on all of the major gaming platforms for our different projects. That means we'll typically isolate platform-specific code with a common API that we fill in as appropriate. Each project we work on has different requirements and different objectives from a technology point of view, so when we have tools or underlying code that makes sense in multiple projects we'll use that. When we need to do something platform specific, we'll do that too."
GarageGames also embraces cross-platform in the true sense of the industry, not Microsoft's definition, but that does not diminish Williams' opinion of the kind of reach studios and developers can have with XNA. He says, "Now, Torque itself runs on multiple platforms—Windows, OS X, Xbox, and more to come. If you use Torque technologies, you can build games for a great variety of platforms. And Torque X runs anywhere XNA does. I think truly cross-platform development is important to the industry as a whole, and I respect and admire what other game platforms are doing, but being Microsoft cross-platform isn't a bad thing in and of itself—you're talking about tens of millions of gamers, and growing rapidly, as your potential audience on those platforms."
Nitschke sees this more as a Microsoft problem than an XNA problem. "Microsoft wants to push their Windows platform with the .NET Framework and have not thought about cross-platform development before. The XNA team can't solve this problem. It would be possible to create .NET games on the Macintosh and Linux and probably also on all the consoles (except for handhelds not supporting the Compact Framework) thanks to the Mono project, but it will be hard to convince Microsoft to go into that direction because they want their own platforms to succeed."
And speaking of Microsoft's own platforms, I asked Dave Mitchell about Microsoft's third gaming platform: Windows Mobile. Will we ever see XNA support for .NET Compact Framework applications? His reply leaves us hanging dry. "We don't have any announcements about Windows Mobile at this time. I can tell you that we are always looking for innovative ways to connect devices and platforms." Translation: No. In all fairness, 3D graphics in XNA tap directly into the GPU with HLSL, and Windows Mobile devices simply do not feature 3D acceleration hardware, which means that any XNA implementation would be mostly software-based, like the current Direct3D Mobile (D3DM), and therefore very slow and ill-suited for real-time gaming.
No XNA Love for Visual Basic Developers (Yet)
Microsoft's flagship .NET languages have always been Visual Basic and C# ever since .NET was announced in 2000, yet XNA Game Studio Express only supports C#. Many VB developers felt abandoned as they, too, would like to extend their .NET knowledge to game development. While it is technically possible to use XNA with Visual Basic for Windows game development, it is not officially supported and all the IDE features of XNA game Studio Express, like the Content Processing Pipeline tools for example, would be inaccessible. The question remains, however, as to whether or not it would be wise for Microsoft to add VB support in XNA to attract more developers from outside the gaming industry. On one hand, it would drive a faster XNA adoption, but on the other hand it might make XNA look less serious to professional game developers. After all, they already consider C# inferior to C++, so what will they think about Visual Basic?
|Benjamin Nitschke: "Good graphics today are shader-based anyway, and it won't matter if you use native or managed code—the shaders are written and executed in the same way."|
Fristrom indeed does not think it would be a good idea on Microsoft's part to support VB with XNA, commenting, "I'm going to say no, not because it looks less serious, but because that would split their user base into two camps that would have trouble communicating. Right now they can all share code with each other and they're doing that and it's pretty cool. Also, Microsoft would have to write all their samples twice. So the question becomes, `Why didn't they go with VB.NET in the first place?' And [in my opinion] C# is just a better language for games development." Although he admits that he hasn't used VB in over a decade.
So will we ever see official VB support from Microsoft in XNA Game Studio? Mitchell says, "Absolutely! Support for VB is definitely on the feature list. This is another case of when rather than if." As for the "when" part, all hints seem to indicate that we will not see VB support until after the Professional Edition of XNA Game Studio ships. And even when that time comes, it will take a massive effort to port all the existing XNA samples and starter kits from C# to VB while still maintaining best practices."
Third-Party Support for XNA
An early XNA adopter, GarageGames was formed in 1999 by four employees of Dynamix, including Dynamix co-founder Jeff Tunnell. They developed the Torque Game Engine, which was used in the Tribes series of games, and formed GarageGames with the broad and lofty goal of democratizing game development by (essentially) giving away the engine.
GarageGames have already announced and released a beta version of their Torque Game Engine for XNA, called Torque X.
Williams says that, as is the case at many other studios, coming from the AAA games industry and being died-in-the-wool C++ veterans at GarageGames, they were initially quite skeptical about the viability of a managed code game technology platform. "Until we took a serious look at XNA and managed code we had not considered doing a game (or even an engine!) in managed code. Like everyone else in the industry, we were unsure whether managed code could be efficient enough for the games we wanted to make. We approached the project with a good deal of skepticism and did a lot of analysis as to what the shortcomings were and how we would tackle them. However, after we actually did the analysis, we realized managed code and XNA could be a great development platform."
|Dave Mitchell: "Game Studio Express' design is such that it allows you to focus on elements of your game that make it unique and fun. Leave the core technology problems to us and the XNA Framework."|
It seems that no amount of talking, media attention, or ink being printed on XNA will easily change things. Studios and developers will have to take a serious look at it and evaluate it hands on to fully realize XNA's potential. Williams went through that process and that's how they were convinced at GarageGames. He explains, "We dug in and looked at the hard technical problems. We realized there were actually a bunch of advantages to using managed code in game development, and got excited, deciding to jump full-in and do a port of Torque
to XNA, in parallel to our existing native code C++ Torque engines."
Like any other software industry, the gaming industry hosts a thriving community of software vendors, ISVs, and service providers. Many of them will typically support the technology base that is high in demand by studios, while others can be trend setters themselves who take the lead in pioneering new technologies. From game frameworks to game engines, server tools to physics engines, and more, XNA will have to crack that ecosystem of gaming ISVs to be truly successful since Microsoft cannot provide the full A-Z spectrum on its own. Will other software vendors follow GarageGames' lead in supporting XNA?
Mitchell is confident more will follow, saying "GarageGames is a great example of a partner who wanted to jump on board because they saw an opportunity to extend a version of their tools to a whole new and growing user base. GarageGames is a terrific technology partner, and we enjoy working closely with them to bring better tools and technologies for game development to the masses. Torque X brings a robust game engine platform to the XNA Framework, and, along with Torque Game Builder for Torque X, our mutual customers can build very rich and visually appealing games for Windows and Xbox 360 using drag-and-drop tools. Our partnership still has many more fruit to bear and with the recently announced licensing agreement with GarageGames, all of our XNA Creators Club members will have access to Torque X as well as Torque Game Builder for Torque X for free while their subscriptions are active."
Koster is not so confident, stating, "Most of the higher-end engines probably will not follow suit unless they see a viable business model for them to do so. GarageGames has an indie bent to start with, and the others don't so much."
Mitchell explains how Microsoft has been proactive in securing these partnerships with software vendors, and apparently the best is yet to come.
"While we've been working with GarageGames, we've also been working closely with a number of other partnerships. Autodesk remains a great partner and provides us with our standard file format (FBX), which our XNA Content Pipeline automatically consumes. We're also working with Allegorithmic on versions of their Map Zone texture editing tools, which enables the community to build incredibly rich textures to use within their games. Turbo Squid has been providing our community with XNA Game Studio Express-ready 3D content, and we've also got great things in store from our partner Avid, makers of the Softimage line of 3D content creation tools. Beyond those, we're also actively working with other tools and middleware partners who want to provide community game developers with more options for easier game development based on XNA Game Studio Express but cannot share any details just yet. Rest assured, however, there are many more great partnerships in store for our customers. We'll have more to share later this year."
To that end, a public Q&A session with XNA Evangelist Dave Weller at the only XNA session presented at the last Microsoft Tech·Ed in Orlando (June 2007) points to Microsoft's GameFest conference on August 13-14. Whenever he was asked by the audience about this missing format or that missing tool in XNA, Dave clearly hinted that announcements would be made regarding new partnerships and new XNA tools for game developers.
But beyond the initial offering of XNA partnerships, Fristrom is a bit more cautious as to the third-party vendor adoption rate, stating "Most vendors will wait and see."