|
| Istvan's Update: The Making of Patch 1.0096 With most patches, there's a period of high hopes and expectations, followed by a period of gradually crushing those hopes as the realities of scheduling, and failures to estimate the time needed to do the work, take a toll on what can actually get done in time for release. For the 1.0096 patch, the situation was somewhat different, because I had already been waiting for a considerable time simply to be told that the tools for patching had been restored. I had been telling myself for over a month that the second I was able to patch Jumpgate again, I would drop everything I was doing, rebuild the patcher, and release whatever I had as fast as I could, to minimize the long delay between patches that had already begun. Unfortunately, the reality was that during the period while I could not build a patch, I began several projects within the game code that I wouldn't have ordinarily started. Because I normally constrain myself to strive for a monthly update, I try to choose tasks that I think I can complete in about that amount of time. Rather than looking at the broken-patcher situation as a burden, I forced myself to see it as an opportunity, and had begun research and changes in areas of the Jumpgate code that I wouldn't ordinarily try to change on the monthly timescale. As a result, I was of course caught with my development pants down when NetDevil IT told me my patching resources were available again. The last couple of weeks have been a scramble, and not just for me. I ended up simultaneously trying to increase the test team size by about 50% (a project that's still in progress, by the way), just to get enough eyes looking for problems with my changes on a daily basis. I then started to release several test builds each day, instead of the usual one every other day at best. While usually in a monthly patch cycle I'll make about a dozen test builds, in the last two weeks there were more than twenty-five. This places a huge burden on the test team. Since I usually need one or two of them available when I am working, I try to recruit Jumpgate testers from a variety of time zones. Europeans can help me in my afternoons, North American testers work with me in the evenings, and testers from Australia or New Zealand, or just lunatic night owls from other time zones, help me when I'm in the office late at night. I had fairly dangerous areas of the code in disarray at the time I was told the patcher could be used again: the render engine, the AI flight model, and collision detection. The rush to put things back in working order made mistakes rather likely, hence the need for intensive testing. I ended up making some profound changes to Jumpgate's collision detection, while the other portions of the code were mostly put back together close to the way they originally were. The fact 1.0096 works at all is a tribute to the dedication of your test team. I'm still a bit unsatisfied with the things that ended up in the patch. There was a period of time where I thought I had worked out one or more significant improvements. Several of these did not pan out, which is always disappointing. Two or three other enhancements were pulled for lack of time to make them work properly. Still, I've learned important things about the parts of the code I was working on. I have every intention of trying to go back to these areas and make further adjustments, when I'm not in such a tearing hurry to release a patch to the community.
|