starcrafting

Patrick Wyatt’s saga of programming Warcraft and Starcraft continues; he’s in fixing bugs and shipping territory:

Some bugs were related to the development process itself. The Protoss Carrier regularly lagged behind other units because it had its own way of doing … everything. At some point in time the code for the Carrier was branched from the main game code and had diverged beyond any hope of re-integration. Consequently any time a feature was added for other units, it had to be re-implemented for the Carrier. And any time a bug was fixed for other units, a similar bug would later be found in the Carrier code too, only more devious and difficult to fix.

It was worth it, probably? Carriers are the best!

But this decision bit them in the ass and kept on biting: keep the square grid from Warcraft 2, and just put diagonal art on it. They were always almost going to ship, so they could never afford to spend the time to do it right, and just slapped hacks and bandaids on until it finally worked well enough.

Which has got to be frustrating. Not only frustrating to live through, but…I’ve been there: you’re stuck with some tech that isn’t quite right, an engineering decision made for a different game that you have to keep working around in increasingly cumbersome ways. But you power through and release something mediocre, knowing that if you’d just done it right from the start the game would be better off for it. But this is Starcraft! Perhaps the best game ever of all time! The alternative might be even scarier: maybe code quality just doesn’t matter.

(except that it makes your lives more pleasant while you’re working on it, of course.)