Microsoft have announced their XNA platform for game development.
The platform is based around C# and the .NET 2.0 CLR and frameworks, specifically tailored for the requirements of game developers. This might possibly mean much of the common language specification (CLS) elements are removed for performance.
Initially the platform will target both Windows machines and the Xbox 360 although Microsoft have touted cross-platform compatibility and with the recent shared-source version of the .NET 2.0 CLR source code ROTOR release there are hopes for Mac OS X, FreeBSD and Linux.
XNA Studio is the central IDE for the platform and is based around a modified version of Visual Studio 2005 Team Services.
Currently the only tool available is XNA Build which is a modified version of MS Build with additional tracking features to ensure obsolete game assets are suitably pruned. Microsoft have modified their MechWarrior 2 game source code to build using XNA Build and were surprised to realize that around 40% of the textures they shipped on the CD were in fact no longer used having been artifacts from previous builds.
In my opinion there’s a few reasons why Microsoft is going this route..
Microsoft want developers to get away from Flash – at least on the Xbox 360. Some of the Live titles, notably Hexic, are Flash games. Flash is okay for 2D games and their run-time has been modified to utilize the Live! and 360 controller but adding 3D would be non-trivial and it’s still a non-MS platform.
Isolation of home-brew code
It’s no secret that developers at home love to get code running on their favorite console platform be it to port existing games or emulators (such as ScummVM) or simply to hack around.
The problem with letting developers run your own code is that it becomes quite easy for other people to use this to boot pirated “warez” versions of games professional developers just spent a few million dollars developing.
By giving developers a byte code based language such as Java or .NET you can control what they do. Specifically you can give them no mechanism to launch native code such as that comprising a commercially developed Xbox 360 game…
Flesh out Xbox Live!
Xbox Live! seems to be a hit and Microsoft have put up titles from smaller indie development studios. This is all well and good as both the studio and Microsoft make money from the purchase but the Xbox 360 dev kits aren’t cheap. This probably explains why a number of those games are Flash…
With Sony’s announced PSP Live serving up highlights from the original PlayStation back-catalog and Nintendo hinting at emulation of older systems on the Revolution the 360’s catalog is going to look a slim by comparison.
If Microsoft get XNA out there and let developers write and distribute Windows versions how they see fit they can grab the cream of the crop for publishing on Xbox Live.
Either way it looks like good news for Xbox 360 owners and small developers. Microsoft have already stated back-bedroom coders will be able to get in. :)