I suppose there's a moral in here somewhere, but I'm hoping this doesn't become a popular solution to buggy software in my shop.
I can see it now...
"Tim, the software is scheduled to be released tomorrow. Did you fix the 211 critical bugs that remained last week?"
"No. Instead, I decided on my own to add this cool new camera feature."
( http://worsethanfailure.com/Articles/The-Cool-Cam.aspx )
The Cool Cam
Tuesday, August 14, 2007
by Jake Vinson
Brand G. got his start in the game industry working at MicroProse, famous for classics such as Civilization, the X-COM series, Masters of Orion, Pirates, and Dark Earth (one of my personal favorites). MicroProse was also known for its military simulation games, such as Gunship, Pacific Air War, M-1 Tank Platoon, and Falcon 4.0. Brand was brought on to work on such a simulation, European Air War.
European Air War was doomed. It was four years in development and not even close to being ready to ship. In Brand's first month at MicroProse, the whole programming team on European Air War quit, sensing that their project was on the verge of cancellation. Not only that, but everyone had grown tired enduring the stress of the weekly "why-shouldn't-we-cancel-this-project" meetings with the executives. In these meetings, they'd have to choose their words carefully when answering the executives' tough questions about the budget as well as major bugs in the system such as...
Another fun bug caused the enemy AI to do your work for you. A rogue enemy plane would suddenly reject his mother country and start shooting down his own teammates. That is, until his wings fell off the plane since he was firing his guns. Then he'd kamikaze his plane into the ground, which would launch the plane into outer space that the MicroProse executives probably didn't find nearly as funny as I do.
Brand would stress out about defending the game at the weekly meetings, but that didn't mean that he thought concerns about European Air War's progress were unfounded. Facing a mountain of bugs and a project ready for the chopping block, he was relieved when another developer was added to the team, effectively halving the abuse Brand would have to deal with on a weekly basis. We'll call the new developer "Tim."
Tim knew what he was getting into when he came aboard the project. He knew about the bugs, about the budget, and about the impending cancellation of the whole thing. And with the major issues, you'd figure he'd start with any one of them. Maybe the one with the wings falling off whenever guns were fired. Especially considering the game is called "European Air War." If the wings ("air") and guns ("war") come off the plane, the game title should just be reduced to "European," or perhaps "European Wingless Plane Amidst Nazi Battle Simulator." You could start up a game and watch Nazis shoot eachothers' planes down until yours crashed.
With all of the bugs he could get started on, he decided it was necessary to add a new feature instead. He developed a camera system that would focus on anything "cool" happening near the player. For instance, one plane shakes another with a delicate evasive maneuver. Or it'd mount to a bomb right as a B-17's bay was opening, following its descent onto the earth. Or it'd follow a plane being shot down, ablaze and spiraling toward the ground, engines sputtering.
The "Cool Cam" was cool. But it didn't change the fact that the game was almost completely broken. Brand wanted to confront Tim about bug priority and all of the code he was toiling away to debug, but held his tongue. No one could save the project at this point anyway.
At the next week's meeting with management, the air felt heavy. With each passing week the execs were seeing money hemorrhaged into a dying project that they'd had a full team on for four years. Tim started up the game and played carefully to avoid the obvious bugs. Getting a double whammy of tough questions ("How overbudget is this project?" and "Why shouldn't we cancel this right now?"), Tim made sure his plane was level and flying evenly and let go of the joystick and hit the cool cam button.
Brand sat there silently, watching the monitor. Tim turned toward the execs, about to stumble through an answer they probably wouldn't accept. The room was silent, save for the steady hum of the plane's engines coming out of the computer speakers. Suddenly, the camera zoomed in on an explosion, following a flaming plane barreling toward the earth, then the focus moved slightly to another plane quickly evading the flaming shell. Tim took the controls again when the execs lobbed another tough question about bugs they'd made no progress in fixing. Again, Tim leveled the plane and hit the cool cam button. And again, he didn't have to answer because everyone was fixated on the screen.
Tim's "cool cam" saved European Air War. It went from a money-leaking embarrassment to a top-tier release for MicroProse. The weekly meetings got easier, more developers were brought on, and the team managed to put together one hell of a game. It reviewed well after its 1998 release and is still a popular game for history buffs. And it probably wouldn't have been released if not for a programmer that knew what the project needed most; the cool cam.
European Air War was doomed. It was four years in development and not even close to being ready to ship. In Brand's first month at MicroProse, the whole programming team on European Air War quit, sensing that their project was on the verge of cancellation. Not only that, but everyone had grown tired enduring the stress of the weekly "why-shouldn't-we-cancel-this-project" meetings with the executives. In these meetings, they'd have to choose their words carefully when answering the executives' tough questions about the budget as well as major bugs in the system such as...
- Why are the planes flying backwards sometimes?
Well, uhh, a little known thing about Nazi technology developed in World War I... - Why do the wings come off the plane whenever you fire the guns?
Uhh, err... - Why does the plane bounce up and out of the earth's atmosphere when you crash into the ground?
Umm, in high-speed collisions like that it's not totally unreasonable that a plane's velocity torque rotary girder viscosity...
Another fun bug caused the enemy AI to do your work for you. A rogue enemy plane would suddenly reject his mother country and start shooting down his own teammates. That is, until his wings fell off the plane since he was firing his guns. Then he'd kamikaze his plane into the ground, which would launch the plane into outer space that the MicroProse executives probably didn't find nearly as funny as I do.
Brand would stress out about defending the game at the weekly meetings, but that didn't mean that he thought concerns about European Air War's progress were unfounded. Facing a mountain of bugs and a project ready for the chopping block, he was relieved when another developer was added to the team, effectively halving the abuse Brand would have to deal with on a weekly basis. We'll call the new developer "Tim."
Tim knew what he was getting into when he came aboard the project. He knew about the bugs, about the budget, and about the impending cancellation of the whole thing. And with the major issues, you'd figure he'd start with any one of them. Maybe the one with the wings falling off whenever guns were fired. Especially considering the game is called "European Air War." If the wings ("air") and guns ("war") come off the plane, the game title should just be reduced to "European," or perhaps "European Wingless Plane Amidst Nazi Battle Simulator." You could start up a game and watch Nazis shoot eachothers' planes down until yours crashed.
With all of the bugs he could get started on, he decided it was necessary to add a new feature instead. He developed a camera system that would focus on anything "cool" happening near the player. For instance, one plane shakes another with a delicate evasive maneuver. Or it'd mount to a bomb right as a B-17's bay was opening, following its descent onto the earth. Or it'd follow a plane being shot down, ablaze and spiraling toward the ground, engines sputtering.
The "Cool Cam" was cool. But it didn't change the fact that the game was almost completely broken. Brand wanted to confront Tim about bug priority and all of the code he was toiling away to debug, but held his tongue. No one could save the project at this point anyway.
At the next week's meeting with management, the air felt heavy. With each passing week the execs were seeing money hemorrhaged into a dying project that they'd had a full team on for four years. Tim started up the game and played carefully to avoid the obvious bugs. Getting a double whammy of tough questions ("How overbudget is this project?" and "Why shouldn't we cancel this right now?"), Tim made sure his plane was level and flying evenly and let go of the joystick and hit the cool cam button.
Brand sat there silently, watching the monitor. Tim turned toward the execs, about to stumble through an answer they probably wouldn't accept. The room was silent, save for the steady hum of the plane's engines coming out of the computer speakers. Suddenly, the camera zoomed in on an explosion, following a flaming plane barreling toward the earth, then the focus moved slightly to another plane quickly evading the flaming shell. Tim took the controls again when the execs lobbed another tough question about bugs they'd made no progress in fixing. Again, Tim leveled the plane and hit the cool cam button. And again, he didn't have to answer because everyone was fixated on the screen.
Tim's "cool cam" saved European Air War. It went from a money-leaking embarrassment to a top-tier release for MicroProse. The weekly meetings got easier, more developers were brought on, and the team managed to put together one hell of a game. It reviewed well after its 1998 release and is still a popular game for history buffs. And it probably wouldn't have been released if not for a programmer that knew what the project needed most; the cool cam.