I've just had the first release candidate (RC1) of Moviestorm 1.1.6 dropped onto my desk by Ben, which will doubtless generate a huge collective sigh of relief. If you're not a software developer, that may not make much sense to you. So let me explain, while I'm waiting for it to install.
The RC1 is the first stab at what we're going to release. It means that we've put everything into the release that we intend to put in, and the QA team think this going to be worth shipping. The code is taken out of the development environment, and is now running in a standalone fashion, exactly as you will get it. From this point on, the programmers and artists aren't allowed to touch it unless the release team find a problem they need to address. And that's not what we want to happen.
So the first job is to test the hell out of it in anger, by using it exactly as you will use it - by making test movies. All sorts of problems can show up in this stage that weren't evident when Moviestorm was running in the development environment. We could, for example, be shipping with a slightly different version of Java, or have failed to include something in the build that all the developers have on their machines, or simply failed to configure it properly. It's also a very different testing regime: instead of checking to see whether the individual features work and the specific bugs are fixed, then crossing them off when they're done, we're going back and forth between screens and modes, keeping Moviestorm up for hours at a time, and just playing with it, experimenting, and trying to achieve specific creative results. In other words, doing what you do.
We also have a huge checklist that we have to go through - checking the images on the launcher and the main menu, and making sure we've included any new ones. We don't get to see the launcher in the dev environment - Moviestorm starts a completely different way - so this is the first time we get to check that over. Then there's checking we've updated the version number and the EULA - it's so easy to forget little things like that in the last minute rush. Preparing the release notes and any copy or screenshots for the Web site, blog, etc - these can't be done until we're sure what's going to make it into the release.
Simultaneously, there's the huge business of making the patches and installers, and then testing them. It's not as simple as just building a 1.1.6 release. We need to build something which upgrades you from 188.8.131.52 (or earlier) to 1.1.6. This includes not just the main body of the code, but all the content packs as well. And then all of those have to be checked - on Mac, Vista and XP.
Finally, assuming we didn't find any major issues - and, of course, it never goes 100% smoothly - we agree that RC1 is good to go. It's like Mission Control. We all have a go / no-go vote, and sometimes this can be quite uncomfortable. There are always things we'd like to fix, or we'd like to do better, but we have to make a call between getting something out to you and getting it perfect. If we all say go, we wait expectantly for our Glorious Leader to give us the thumbs up. Or else we start over with RC2, RC3, RC4...
When we get the go, we upload everything to our servers, go out to the pub while we wait, and then come back and check that the upload's gone OK, and nothing got corrupted en route. This means downloading and installing every new patch, and making sure they run. Then - and only then - can we make it live and release it to you.
OK, RC1 is installed. Time to stop waffling and get testing!