[In this sponsored feature, part of Microsoft's XNA microsite, the company's Savage documents the new features in XNA Game Studio 3.0, its crossplatform indie, hobbyist and academic tool for making Xbox 360, Windows, and Zune games.]
As we prepare to sign off on the release of XNA Game Studio 3.0, once again I am honored to talk about what's new in our latest version. In this article, we'll look at the improvements, and the added features and functionality of Game Studio 3.0 to prepare your games for submission to the Xbox LIVE Community Games pipeline.
Visual Studio 2008
This latest version of Game Studio is based on Visual Studio 2008. This includes all versions of Visual Studio 2008, including the free C# Express version. Visual Studio itself is full of new features.
XNA Game Studio 3.0 takes advantage of many of these new features. Some of the most obvious and immediately useful features available in Visual Studio 2008 are the C# 3.0 language features. This includes things like the LINQ syntax you can use to drive queries of game data loaded into any game's object model.
Extension Methods enable you to extend the existing XNA Framework with additional functionality. This functionality can be specific to your game or it can be shared as a general purpose library by your game community. Lambda Expressions, Expression Trees, and Partial Methods are included as well as implicit types and anonymous types.
Windows, Xbox 360, and Zune all provide these features; cross-platform functionality continues to be a cornerstone of Game Studio development.
Speaking of cross-platform development, we now support cross-platform project synchronization with Visual Studio 2008. With a simple menu command, you can create a new project that targets another supported platform, and have the new project share all of the source and content of the first project.
For example, you could take an existing Windows game project and, using the same source and content, create a project that targets both the Xbox 360 and Zune from within Visual Studio. All three projects will be in the same solution. Converting from one platform to another and keeping all three in sync is a breeze with Game Studio 3.0.
Figure 1: A cross-platform game solution in Game Studio 3.0
For Windows developers, we now provide complete support for the ClickOnce functionality in Visual Studio 2008. This feature builds a setup package for your Windows game, a package that includes all the dependencies needed to install the game correctly on someone else's machine.
Also, it can point to a Web page where you can store updates so that whenever someone plays your game, he or she is notified of new versions available to download and play. It's never been easier to share your Game Studio games on Windows.
When you upgrade your existing games from Game Studio 2.0, the project upgrade wizard that ships as part of Visual Studio will now automatically and correctly upgrade your Game Studio 2.0 games to Game Studio 3.0 game projects.
Please be sure to do a complete rebuild of your game after the wizard executes. This cleans up all of the old built code and content from Game Studio 2.0, which in turn enables you to avoid errors when you compile your game with Game Studio 3.0 for the first time.
Content Pipeline Improvements
There are a couple of major improvements in the Content Pipeline, too. First, you can have multiple content projects associated with your main game project. This makes it easier for multiple artists or designers to work on the game at the same time, since you can split the content across multiple projects.
You could store and build all of the textures in a single content project. You can have all of the audio content built out of a second content project. You could also store platform-specific content in a single content project, and then build that content project only for the platform you need.
This makes it easy, for example, to have a game with shaders that can still draw and play on the Zune. The shaders would be included in the Windows- and Xbox-specific content projects in the solution, and the Zune-specific content project would contain art and data only for Zune.
Figure 2: Platform-specific content projects in Game Studio 3.0
The content pipeline also compresses all of the content .XNB files at build time. This is a lossless compression that decreases the deploy time for both Xbox 360 and Zune.
Furthermore, it decreases the load times by reading the compressed data out of storage and decompressing it as it loads. This is the default setting for Xbox 360 projects. You can control, by type, which .XNB files to compress.
This gives you more fine-grained control, if you need it, or you can switch it off completely to get a better idea of the size of your uncompressed content data.
We also include the latest .FBX importer updates from Autodesk. This includes new features such as richer material and shader support. Now you can successfully export and import models with multiple textures and multiple UV coordinates.
There is also much richer opaque data support from both Max and Maya. This presentation from GameFest 2008 given by Shawn Hargreaves shows you how rich it can be.
XNA Framework Improvements
Since the XNA Framework lies at the heart of XNA Game Studio, it would be surprising if we hadn't made some improvements here as well. In our efforts to continue to expand and improve our Xbox LIVE integration, we've added rich presence and invitations to the framework.
Rich presence lets others who are playing on the Xbox 360 know what game you are playing and where you are in that particular game. With Game Studio 3.0, this presence will be the name of the XNA Game Studio game you are playing.
You can also specify the current state of your game from a set of several dozen strings ranging from things like "At Main Menu" to "Fighting the Boss."
XNA Game Studio 3.0 games also support invitations to other players to come play the game with you. You can send invitations from the game or from the Xbox 360 Guide. Also, you can invite others to play even if they are currently playing a different game ("cross-game invites").
Given the new support for the Zune, we've thoroughly revised the Audio APIs as well. Starting with Game Studio 3.0, you can now include just WAVs, WMAs, and MP3 files in the content pipeline, and use the new SoundEffect API to play them back.
While still supporting the rich feature set of the XACT Audio Tool and Runtime Engine, this provides a much simpler and easier way to get sound working in a game. There is also a new MediaPlayer API set that pulls music and pictures from the media libraries present on Xbox 360, Windows, and Zune. On Xbox 360, we can even pull media from other Windows PCs that are connected to the Xbox 360 through Windows Media Connect.
There are some new features that support Xbox LIVE Community Games, too. Gamers can download and play any community game in a trial mode before buying it. As a game developer, you probably want to know if your game is in trial mode or has been purchased by the player.
Naturally, you want the player to have a good trial mode experience. There is a new API call that tells you whether the game is in trial mode or is sold. You can also simulate the trial mode for testing purposes. This ensures your game correctly handles the transition from trial mode to purchase. If you're like me, you'd also like to make some money selling these games. After all, isn't that what Xbox LIVE Community Games is all about?
You can create a menu entry in your game that takes the gamer directly to the Marketplace offer for your game. This enables the gamer to buy your game -- without leaving the gaming experience you have created!
Games for Zune
Although it seems like a long time to me, it's only been six months since we released the Game Studio 3.0 CTP, which gave everyone a preview of the Visual Studio 2008 support and our newly minted Zune support.
In that time, Zune has upgraded to the 3.0 version of its firmware. This includes two games written with XNA Game Studio, Hexic and Texas Hold-em Poker.
In just six months, we went from previewing the means to make games on Zune to actually shipping games with the Zune firmware! Fortunately, I don't have to review all of the Zune features as I already covered them in this article.
Xbox LIVE Community Game Support
As Dax points out in his article, the Xbox LIVE Community Games effort is getting underway at the same time we release Game Studio 3.0. Indeed, a tremendous amount of work went into the underlying code and services exposed by Game Studio on the Xbox 360 to enable these Community Games.
While it was a ton of work, the payoff has been unbelievable when we consider the quantity and quality of these games. While the XNA Community teams have been hard at work preparing both the Xbox LIVE Community Games pipeline and XNA Game Studio 3.0, it's obvious that the game developer communities have been equally busy building some the most innovative and entertaining games the industry has seen in a long time.
The Circle Is Now Complete!
I've had both the honor and the privilege of being associated with XNA Game Studio from its inception in 2005 to the completion of the circle here in late 2008. We've gone from a grand experiment designed to help hobbyists and gaming enthusiasts make the games they've always wanted on Xbox 360 and Windows to the cusp of a new age where new platforms like Zune are coming online.
The hobbyists and enthusiasts are ready to become the next great Indy game developers through Xbox LIVE Community Games. And although we've completed the circle from game conception to incubation to development to distribution, judging from the conversations that occur daily here in XNA at Microsoft, there is a whole lot more we can do. Stay tuned!