XNA Game Studio 4.0 released

Originally posted to Shawn Hargreaves Blog on MSDN, Thursday, September 16, 2010

Shipping software is a strange thing. First you work hard on something for a year or two. Then things get crazy as deadlines loom, the pressure mounts, and last minute bugfixes zoom around like a five year old on a sugar rush. And then one day you are done! The product goes to the test team for final signoff, and the development team goes on vacation. It can feel something of an anticlimax by the time that final T is crossed, I is dotted, and the bits are released to our customers.

I'm sure all my readers are smart enough to pick up the hint: Game Studio 4.0 shipped this morning.

This time around, things were complicated by API changes that broke all our old samples. I've been busy upgrading samples this last few days, and am nearly finished with them all (only 3D Audio still to go, plus the avatar samples which Dean is taking care of). Thanks to an incredible effort from the people responsible for reviewing, testing, and propping content, we managed to get many 4.0 sample upgrades on the website today. The rest will be arriving Sometime Soon™.  For now, just check whether the sample you are interested in has a _4_0 zip available (and ignore the mislabelling where the website claims some _4_0 zip files are for earlier framework versions: we'll get that fixed once the dust settles).

Ship day is a good time to be nostalgic, and ideally a little silly. Which reminds me of a couple of weeks during the most stressful heat of battle, when for some reason I decided my Team Foundation Server checkin comments should be written as poetry instead of conventional boring prose. In celebration of being finished, here are some of my favorite Game Studio 4.0 bugfixes:


Drag Games for Windows LIVE between
Your first and second screen
This should be routine
Device reset should be unseen
We should continue to render the scene
Without hanging your machine


When decoding double you em vee
For aich dee tea vee
The why ewe vee to are gee bee
Conversion must be fast, you see
It's too much work to be entirely free
But after my optimization spree
Seven twenty pea
Now screams like a banshee


I hate to be a naysayer
But Windows Media Player
Can be unreliable
That's undeniable

While loading a game
We were calling put_name
Too fast, with no lull
So it dereferenced null

We now cache the name
Which is somewhat lame
But it at least it avoids
Dereferencing voids


When resetting the device
The decl tree must stay precise
If we wipe the root we'll free them twice
Clearing the children will suffice


When depth is discarded
It would be retarded
To take in the usage
But then disregard it

To avoid the disgrace
Of wasting space
We no longer assume
That we must allocate room

Blog index   -   Back to my homepage