30 Apr 2009

Clover Would Be Out Now...

...If it wasn't for a framework bug in Microsoft's XNA, and what I consider to be a flawed approvals process, which results in me having to sit on my backside for a week completely unable to make any progress.

All Xbox LIVE Community Games are required to pass peer review by other developers before getting to market. If a game crashes in any way it gets failed, and rightfully so. The problem comes because a whole heap of community members (who can only be described as utter idiots) kept resubmitting games for review with the same bugs in. As a response, a vocal portion of the community suggested that if you fail review, you have to wait seven days before being able to submit again.

So there I am, coding up to 16 hours a day, finishing the game up. I've played it through over 50 times, without seeing any crashes. I submit it to peer review, and a couple of testers leave Clover running whilst eating their dinners. When they return, the game freezes. After digging around a little, I find it's an issue with the XNA framework - I'm using the code as it's supposed to be used, but it causes freezes.

I pull Clover from review, and immediately fix the issue by placing two whole forward-slashes in the appropriate place. It's not in anyone's interests to have games out there with bugs. I then discover that because I try my darndest to maintain high standards, and because of a flaw in Microsoft's code, and because of a load of process-abusing idiots in the community, I (and all of you) have to wait a further seven days before I can even submit Clover to review again.

I could have left the game as it was, and hoped that no-one noticed. Instead I did the right thing and pulled it, and thus I get punished for a bug in someone else's code. I've already started a discussion to find a more fair solution than seven-days-jail, and it looks like a fair few people support that.

What was the bug? Calling SoundEffectInstance.Dispose() explicitly. One might go as far to say it's best practice to dispose of heavyweight resources when you're done with them. Unfortunately, this causes complete system freezes, fixable only by hitting the off switch.

When will Clover be out? Who knows. The review process (which itself lasts a few days) will commence again on Sunday, all going well. Knowing my luck some obsessive tester will fail it again for crashing whilst using a guitar controller whilst yanking out the hard drive and hitting the 360 with an axe.