XNA GameStudio Express has been released; as a result I'm going to be looking at it and digging in as a complete beginner to the framework. It's my intention to write about all of this here and I'm hoping that many other GDNetters will have the same idea. I'm going to kick off day zero with a quick talk about why I'm so excited about XNA.
I've been following the rumours of XNA for a while and to be honest, I don't know why I got excited by this. Aside from SQL Server, Visual C++ and C#, I don't have much to do with Microsoft's development side. I don't use DirectX so half of their technologies have never really piqued my interest. I don't own an Xbox 360, nor do I own a "Common Controller"... so WHY has XNA interested me so much?
I think the answer boils down to this; Microsoft are starting to take care of us hobbyist game developers. They've now given us a standardised API that can be used built upon for game development on at least 2 platforms. I say "at least two" because I imagine the Mono guys might investigate creating an XNA-compatible library at some point (just a hunch).
With XNA Microsoft appear to have given us a standard set of tools, file formats and APIs that can be used for our game making shenanigans. As someone who's spent years scratching around open-source components and trying to get them to work together this comes as excellent news to me. Don't get me wrong, many of them are excellent pieces of software, but none of them are really designed to be used together. Sure, you can, but you have to poke them to fit. XNA has been designed from the ground up to be used together and will be supported by Microsoft via MSDN. Trying to scratch up tutorials and documentation for open-source components can be a nightmare; with MSDN comes examples and tutorials for almost everything. This is a MAJOR plus to me.
And then we get to the use of a managed environment. C++ is a great language - I really like it. However, I've come to appreciate C# as a viable development platform for my own use. I use it daily at work to write production applications and like C# as a language and the CLR as an environment. XNA is, to me, a further verification of C# as a viable language for game development. The ability to do things quickly through use of the language or the CLR is excellent; it's far better than rolling your own code and/or grabbing a third party library to do things that .NET can do with a couple of lines.
XNA has given us ALL the power to pick up a standardised tool in a simple, yet powerful, language and said "here guys, go play". I've not been this excited by something since AMOS basic on the Amiga; I can see a mini-bedroom revolution hit us once again. Hopefully we'll start seeing smaller games packed with originality and ideas; viva la revolution!
Hopefully next time I'll have gotten into some code and experimented with the SpaceWars sample that came with the studio. I'm not claiming that this journal will be a font of all knowledge (or even ANY knowledge); it's literally going to be some guy poking through XNA and playing. If you get some use out of it, good, if not... please don't kill me ;)