XNA Creators Club: "YouTube for Games?"
XNA has been touted as the "YouTube" of game development, where people will be able to build and share games with anyone else in the world, for everyone to download, play, and then rate or write comments about. But can Microsoft make it happen?
|Benjamin Nitschke: "There is the fear of slow performance, which just can be solved by actually working with .NET for a while."|
Nitschke thinks the current offering has limited appeal to gamers, saying, "For now, only fans of .NET and game programming beginners will subscribe to the [XNA] Creators Club, but no gamer will know much about XNA games if they are not listed [on Xbox LIVE] and much less will anyone download someone's source code and compile it themselves to deploy it on his Xbox 360. This process [got] easier with the [latest] release of XNA Game Studio Express, which allows building installers and direct deployment to the console, but we still need a way to get the content to normal gamers and XNA games need to be in Xbox LIVE!"
When it comes to building such a community around user-created XNA games, Mitchell thinks it's more a question of when rather than if, informing us that we should not judge the full strategy based only on the current offering. He says, "A community of users creating games and then sharing them broadly will absolutely develop. We have a multi-year strategy we are executing on, and XNA Game Studio Express is just the first of many offerings that will bring this community into reality. Our first milestone was to deliver the easy-to-use, low-cost tools and technology to the community as well as access to the platforms. We delivered the first wave of the these tools last December in shipping XNA Game Studio Express 1.0 and have had more than 350,000 downloads of this technology in just the first four months of its availability. It is worth pausing for a moment to consider the magnitude of this number. More than 350,000 members of the community have expressed an interest in developing their own games. This figure represents more than 10x the number of professional game developers in the commercial games industry!"
Mitchell elaborates further on what to expect next. "Our second milestone was unveiled at GDC this year in San Francisco—the XNA Creators Club Online community site. Along with the more than 40 community sites around the world supporting community game development using XNA Game Studio Express, the XNA Creators Club Online site will provide aspiring game developers with a growing number of starter kits, samples, tutorials, and most important of all, support and community."
Austin shares some of his vision and what he'd like to see. "I think a community like that can develop. Having strong community support features (forums, community written tutorials) will keep it vibrant, and allowing for people to post tutorials and moddable projects will improve the chances. There are varying levels of ability there, and if there's the possibility for taking someone else's project with permission and adding your own minor changes to it, I think it will attract a lot more users."
Fristrom says the community is already here, but the tools themselves are lacking, explaining, "A community has already developed—you can go to the XNA forums and see that people are asking each other questions. 'How do I do this? How do I do that?' and sharing code and showing each other their games. Microsoft could help grow the community by continuing to lower the barriers," says Fristrom. "The ultimate goal being that you push a button in GSE, and your game is uploaded to a Microsoft-hosted server that anyone, even non-programmers, can then download and play on their 360s and PCs, complete with a ranking and categorizing system that helps the good games rise to the top."
Nitschke also wants better community support. "Just a forum is not going to cut it in the time of YouTube and MySpace. The XNA documentation is also not as good as it could be. There are a lot of tutorials for 2D games, but nearly no resources for 3D game development. The developer is almost on [their] own!"
Microsoft is not the first company to take this approach, and could learn from other initiatives already available on the Web. Koster comments, "There are several Web-based projects that seem to me to be closer fits to that "YouTube for Games" idea: Kongregate, GameGum, Pjio, and so on. They have all the rest of the infrastructure: tagging systems, reviews, community features, free uploads, ways for creators to make money for good content, and so on."
Williams is already seeing this community growth happen to some extent on GarageGames' own community site, The Great Games Experiment, a gaming-focused social networking site that allows people to share their games or games that they enjoy with a variety of different audiences, and hopes that Microsoft can extend this idea with their own sites and community tools. "I can see a huge opportunity for such a community to develop. We don't yet know if they will go that far, but I'd love to see it!"
Mitchell recognizes that the tools are not all there yet, commenting, "The third milestone we've shared publicly builds upon the previous two and is where consumers—or those simply wishing to play user-generated games—come into play. This is where a community arcade or "YouTube for games" type of offering becomes available. Our community should start to see the initial offerings under this milestone within a year."
Mark Terrano, Design Director of Hidden Path Entertainment, also sees potential, but questions how easily it will happen. "I'd agree with that ["YouTube for Games"] statement as soon as game development (even with great tools) is as easy as pointing a video camera at someone and uploading a video. Great tools and a community that is based around sharing can let anyone who is motivated start to modify and later create their own games. Even being part of the community will be energizing. As someone who pretty much pounded out games solo in the 80s and early 90s, I think it will be great for anyone who wants to get going in the industry. Opening up the creative power of gaming (and asset creation) to a wider audience will lead to the diversity of titles, ideas, and game play that will keep this medium alive and energized."
XNA Opinions: What Professional Game Developers Think
Clearly a community of XNA game developers already exists less than a year after Microsoft released the first beta of XNA Game Studio Express. But does Microsoft target professional game developers with XNA? If the XNA presence at GDC is any indication, it certainly appears so, and Mitchell clearly told us that the answer is yes. "XNA Game Studio Express is intended for the hobbyist or small development team to help them get started on the game-design process. We're also working on a professional-level offering based on XNA Game Studio, which is designed with professional game developers in mind. It will include additional features and functionality, but most importantly enable the development and certification of commercial games using the XNA Framework, provided the game developer has an approved publishing contract. Even using XNA Game Studio Express, however, we're already seeing some developers, like Torpex Games here in Washington, use it successfully in developing their first Xbox LIVE Arcade commercial game which makes it the first XNA Framework-based game to be commercially available on the Xbox 360. The limit is really up to the user."
|Josh Williams: "Managed languages are pretty well proven to be more efficient, from a programmer's development time perspective, so it's likely they'll get more and more use in games."|
Austin thinks the buzz is there, but it's too early to tell how long it will take for professional game developers to catch on, saying, "XNA is talked about a lot in professional circles, and depending on each developer's needs, opportunities, objectives, and situations, some are trying it out faster than others. I think it is going to catch on for a lot of uses, but the nature of the game industry is that these things will take time."
A lot of the reservations toward XNA seem to be about the use of C# instead of C++, and the fact that it is based on managed code instead of native code. Nitschke explains why new languages are feared in gaming. "First of all there is the fear of slow performance, which just can be solved by actually working with .NET for a while, and then there is the problem that most game engines are just available in C++, and if you have written a couple of C++ games before you still want to use that code base, tools, and libraries."
Koster shares his initial thoughts on XNA and the impact it will have. "My initial impression was very positive, because I've been concerned for some time over how hard it is for people to get into programming, especially game making, these days. It used to be that there was an easy and easily accessible programming environment on every computer sold, and that's not the case anymore. With the advent of the modern OS, just opening a window on screen is hard, what with all the foundation classes you need to learn."
Being an early XNA adopter for commercial game development, Fristrom has almost become the XNA poster boy in the gaming industry. He says that he gets very mixed reaction from industry professionals upon hearing about XNA developments at Torpex games. "From the programmers, [I sense] a mixture of curiosity and jealousy. Some of them act like we live in a strange exotic new country that they'd love to visit or maybe even defect to themselves. Others would love to be working with a high-level language instead of C++," he says.
The primary argument against XNA is usually around performance, but this is what most professional game developers also said about DirectX in the 1990s. Back then, all PC games were running on DOS because it allowed game developers to tap directly into the hardware without any high-level operating system overhead. DirectX was Microsoft's strategy to bring games to Windows, and it turned out to be a very successful one. Virtually all PC games are running on Windows now. So is history repeating itself? Developers got over their fear of Windows and adopted it as the PC gaming platform of the future. Will the benefits of managed code and XNA prevail over the shortcomings, just like they did for DirectX?
Fristrom answers, "I'm not sure it's the same thing. We were dragged into DirectX whether we wanted to be or not, as some video card manufacturers made it the only API by which we could program their cards. And then it turned out to be a good thing anyway, as the API wasn't the slow part. We were either bound by the CPU, the GPU, or DMA (the bridge between them), but taking a few extra CPU cycles to get our graphics onto the bridge didn't matter. A lot of games these days are GPU or DMA bound—for those games, a performance hit on the CPU won't matter, and you might as well use XNA."
You Mean Managed Code Actually Gets Compiled?
In talking to game developers at GDC about XNA, I got the impression that many of them associate managed code with interpreted code, like scripting languages, assuming that the former will perform as inefficiently as the latter. Does the average game developer know the difference? It seems that many do not know that managed code is, in fact, compiled for native execution.
Koster thinks that developers are quick to forget that most of the scripting languages they have already embraced are not compiled either, commenting, "So I think that this is a bit of a red herring. Just as the reasons to go with a scripting language have to do with the benefits in other areas outweighing speed, we have to think of XNA in terms of whether the benefits in other areas outweigh the disadvantages."
|Jamie Fristrom: "Managed code is compiled as necessary and then kept in a cache for execution, so it can, theoretically, be as fast as C++."|
Williams expands on Koster's thoughts. "Most game developers nowadays use scripting languages to a large extent for their games, and we've been using scripting languages in game development for more than 10 years (at GarageGames, Dynamix, and other studios). So, there is a natural progression here where CPU time becomes more of a commodity as computing speed power marches ever onward, and developer time becomes more precious as game budgets get larger and larger. Managed languages are pretty well proven to be more efficient, from a programmer's development time perspective, so it's likely they'll get more and more use in games."
Fristrom says he didn't know that C# code ran as native compiled code back when he first started playing with XNA, thinking then he would only be using it as a prototyping language. "What the hell is this 'Just in Time Compiling' stuff?" he wondered then, adding, "So, for those people who are as ignorant as I was—yes, managed code is compiled as necessary and then kept in a cache for execution, so it can, theoretically, be as fast as C++. We've found that our whole game gets compiled just once, and the whole thing is kept in the cache."
Nitschke remains firm in his belief that C# can be used for professional game development, stating, "There is absolutely no performance argument against .NET [and XNA]. There are many tools that allow you to write much better code and profile it much easier in .NET, but most [game developers] just do not know about it because they have not bothered to really try .NET yet."
Ultimately, Koster does not think the answer always lies in the technology, stating, "Good solutions do not always get adopted, and it often has little to do with the actual strengths or weaknesses of a given platform." Microsoft will need to publish data from performance benchmarks and also share information with the rest of the industry on what is being done with XNA commercially, and who is using it. Koster adds, "Judging whether XNA is successful is probably premature. I haven't even heard any stats on adoption."
|Mark Terrano: "Anything that makes the creation experience easier, more fun, or accessible to more people is a great thing—I'm all for it."|
Williams knows it all too well, blaming it on short-sightedness and stubbornness, saying, "Native vs. managed? It's a question most people aren't even willing to consider today (naively, in many cases, since many people simply dismiss the possibility out of hand without doing any sort of serious technical investigation). Eventually, it should become a more hotly debated topic, which will be the first sign of C++'s impending demise," he jokes, adding, "I'm exaggerating a bit, but the trend toward higher level languages and systems is well established, and for good reason. And thankfully so! I think game developers would breathe a collective sigh of relief if they never had to debug a corrupted memory stack again!"