Implementation Woes

I had just taken on a summer intern for my group; my intention had been to let him poke around with the other members of the group, helping out as possible. He had great skills as a graphics programmer and this little design needed nothing more than some graphics tacked onto it. Well, yes, it would have to be converted from BASIC to assembly language, but it was such a short program that I anticipated no problems. So I assigned the Gossip project to the summer intern.

Things went swimmingly at first. He had the game screen up and running in no time. There were eight people in two rows across the screen, each one shown with head and upper torso only (see Figure 19.1). They looked rather like the panelists on a game show. The person on the upper left was the player. Beside each player was a little telephone.

19.1. Gossip main display.

graphics/19fig01.gif

I congratulated the student on his rapid progress, and suggested that he get to work on the algorithms, but he wanted to finish up the graphics first. So he went ahead and added the remaining graphics, as well as some delightful sound effects. The gameplay was simple: The player would use a cursor to designate a person to be called. Pressing the button would select that person, whose telephone would ring with an appropriate jangling sound and the handset jiggling on the telephone base. The person called would pick up the handset with a simple three-step animation, hold it to his or her ear, and say something like "Air-oh?", which was the best that could be done with the primitive sound capabilities of the day. Then the player would use the cursor to designate another player, the one whom he wished to gossip about, and press the trigger button again. This would highlight that person; at the same time, the player's face would undergo a simple seven-step animation.

There were five of these animations. In one, the player had a big smile on his face and nodded his head up and down vigorously. The next, selectable by the joystick, had the player's face nodding up and down a bit less vigorously and with a merely pleasant smile. The third showed the player's face motionless with a blank look. The fourth showed the player frowning slightly, and nodding his head from side to side. The last showed the player looking quite angry, yanking his head from side to side most emphatically. The player would select the facial expression that reflected his feelings toward that individual, and then press the trigger button. One piece of gossip had been completed.

It looked and sounded really great; I was quite pleased. Just three weeks had passed and all that remained to be done was to implement the behavioral and AI algorithms, which, as I wrote earlier, were a piece of cake.

But my summer intern just couldn't hack it. Try as he may, he simply could not get a few simple equations to work in assembly language. Being a lousy people manager, I failed to intervene to walk him through the code problems; I simply couldn't believe that anybody could be so brilliant with graphics and so utterly incompetent with simple arithmetic. Pig-headedly, I urged him on with affirmations that the problem was trivial.

It's a measure of just how bad a manager I am that this situation persisted for three months before I finally put my summer intern out of his misery. I had figured that he'd go away at the end of the summer anyway, so I swept the problem under the rug. But he never did go back to school, and so I had to bite the bullet and let him go. Fortunately, he found a position elsewhere in Atari.

LESSON 45

Yeah, sure, if it ain't broke, don't fix it; but if it is broke, fix it NOW!

I turned the problem over to another subordinate who fixed it and got the program running in about a week. With a little tuning, we had the whole thing ready to ship within a month of the departure of the summer intern.



Chris Crawford on Game Design
Chris Crawford on Game Design
ISBN: 0131460994
EAN: 2147483647
Year: 2006
Pages: 248

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net