gamecoder
Let's face it. This isn't about games anymore.
Building character with Gunship
A few days ago, I was talking about the disappointments that make my job such a character building experience. This is one example that I’ve always carried with me.
Back in the day, when I was working for Microprose, I was in charge of the User Interface for a game called Gunship. I was working on a Battle Builder, which was an automated mechanism for building a dynamic level. Simply put, the player would point to a location on the map, set a bunch of settings for the level (“I want to be British, fighting the Russians, in this weather, at this time of day, with this military strength . . .”), then hit “Go”, and the entire level would be created for them.
So, one day, the lead designer walks into my office. He’s a big guy, a retired navy lieutenant, I think. He drops a thick three-ring binder on my desk with an audible thunk. The three-ring binder was three inches thick, and full. “This pamphlet,” he actually called it a pamphlet, “was prepared by our military. It is a breakdown of the ordinance practices of every nation we will be dealing with. It tells how the different nations will set up their tanks, vehicles, infantry, whatever, for every conceivable situation. I want every piece of information in this pamphlet,” He tapped the binder, “in our game.”
I glibly replied, “Oh. . . . uh . . . yeah. Okay.”
Now, I should explain something about a relationship that sometimes exists between programmers and designers. This relationship is not always there, but it is more prevalent than you’d expect. A programmer will expect that a designer doesn’t really NEED everything that he’s asking for, so the programmer will give the designer about 80% of everything that they ask for. The designer, knowing that they are going to be second guessed, asks for about 120% of what he expects to receive. In this way, they work out their differences in a fairly passive-aggressive way.
At the time that this game was being written, I did not know about this relationship. So, when the designer asked me to put every piece of information into the game, I did exactly that.
It took about a month of my time, but I managed to make our game take into account every single piece of information that the military would use. When deciding where to place units, our system would take into account weather considerations, each side would use the topology to try to get an ambush position, they both would want their backs to the sun, etc. The ordinance placement was exactly the way a government would place them, correct for the given government. And, here’s the kicker, because it was dynamically created, it was never the same setup twice. If you gave all the same data to the system, the pieces would never be in quite the same locations, so there was no way of cheating by knowing the map beforehand.
It was a thing of beauty. I spent about an hour, just creating levels, seeing how accurate they were, and then destroying them. It was the joy and satisfaction in the knowledge of a long, hard job, well done.
I remember the day that I took that dogeared three-ring binder back to the designer and dropped it on his desk. I saw tears in his eyes as he said, “Really? You managed to get the whole thing in there?”
A few days later, I was sitting in the Lead Programmer’s office when the head QA guy came in. He said, “So, this battle builder thing. It’s random, right?”
I said, “Well, it’s not totally random. It’s based on a lot of complex rules, but I do use a lot of random numbers in the calculations so that, yeah, it’s never the same twice.”
The QA guy said, “Yeah. That’s the problem. We can’t test that.”
There was a long pause as I blinked at the QA guy, and the lead programmer put his head on his desk. I frowned at the QA guy, “Wait, what do you mean?”
“Well, there’s no way for us to recreate a bug if we find one. I mean, if we determine that a bug exists, we can’t do the same thing again to make it happen, and prove that the bug exists.”
The lead’s shoulders were shaking, though with laughter or sobs, I couldn’t be sure. He raised his head and said, “Brand, he’s right. QA won’t sign off on the game as is. We need to take the Battle Builder out.”
“But I put a month’s work into that! Are you telling me that there’s nothing we can do about it?”
And that’s how I lost a month’s work to a lack of communication with QA. I took out the battle builder, and replaced it with a system that allowed players to drag-and-drop units onto the map, and build their own ordinance setup. It was a pale shadow of the previous feature, but it was enough to ship.
I consider that feature one of the biggest character-building experiences of my career. Just knowing that I could cut my work out of the game, square my shoulders, brush myself off and say, “Okay, what’s next.”
Brand Gamblin
Calendar
Recent Visitors
Friends
- The weather here has gone beserk! On Sunday, we had a major storm with winds...
... - My tree is up, and decorated, it's awesome, I'm into themed trees, so...
... - Comment to TRY to be added. No guarantees.
Those of you that already read my blog,
you have be
...
character