Original Link (now dead) - http://acdm.turbinegames.com/featuredarticles/?action=view&article_id=128


Our Favorite Bugs - Part III


By Alicia Brown

Night and day. Salt and pepper. Black and white. New software and bugs. Some things just go hand-in-hand.

As most game players and all game developers realize, it's virtually impossible to develop new software that does not initially produce one or more bugs that need to be detected, worked on and resolved before it can be used. Thankfully, Turbine's development team usually discovers and fixes these bugs in any new software before they're released into the world of Dereth.However, in the spirit of, "When life gives you lemons, make lemonade," Turbine has found a good use for some of these bugs - at least, the ones that amused the developers when they first encountered them. The stories they tell have ranged from funny to downright insightful. We're proud to present part three in our series about "Our Favorite Bugs."

Bring your own lifestone!
Most of the bugs we've talked about in past articles have either been inconvenient or silly or both. But here's one that, at first glance, players might actually think they would like to see in the game; Your very own portable lifestone! Just imagine the possibilities if you could actually pick one up and put it in your backpack. You could use it to lifestone wherever you happen to be in an instant! No more running around to find your corpse! No more being whisked far away from the action!

This isn't anything you'll ever have to worry about - but it might have been if it hadn't been discovered, pre-Beta, that players could actually pick up the lifestone and put it in their backpack!

Now, before you start clamoring to get this particular glitch reinstalled, you might want to hear about some of the drawbacks that the team saw when exploiting the portable lifestone. First, it's a pretty big item - the burden alone might get you killed. When you stop to think about it, it also seems likely that anyone else who had saved to it before you picked it up might suddenly appear in your backpack when they died! Actually, they just ended up next to you, but that alone, if it happened with any frequency, could get pretty annoying! Last but far from least, it could also mean that you could die over and over again, in the same place, to the same creature, until you logged out! Then, if you weren't lucky enough to have someone else kill that monster before you came back, your only alternative would be to move on.

Vendor X needs a sex change!
At one point, it seemed as if the vendors of Dereth were going through a gender identity crisis. Turbine was receiving reports about some male vendors that had breasts while other female vendors had beefy male bodies!

For a long time, it was assumed that this problem had to do with the character generation code that each non-player character (NPC) goes through upon creation; it was our educated guess that the code was getting "confused" and churning out the wrong parts for certain vendors and NPCs at random. But when someone actually dug into the code it turned out that, while the code did get confused, it was only because it received misguided data.

In mid-September 2002, Huxt, one of our artists, was testing the problem of vendors who sold clothing items that could not be worn when he noticed there was a conflict between data in the "definition" file of the vendor. Basically, the data set the vendor's gender to male but was using the setup files for a female body! So he said to himself, "Oh, now I can fix these! All I have to do is do a quick Windows search for a particular string AND (Boolean syntax, for those who don't know) a second string. If two conflicting strings exist in the same file, I'll fix that file and, voila!, instant Sex Change!"

Is anything ever that simple? Not usually - and definitely not in this case. Those of you who are familiar with Windows probably began shaking your heads in sympathy for poor ol' Huxt as you were reading the above. There's no simple tool for doing an "AND" search on text files in Windows. So Speed, our awesome data integrator/content/jack-of-all-trades handyman, came to the rescue by creating a script to do it, and promptly whisked out a list of sexually confused vendors and NPCs. Huxt's fixes were swift and final. Now all vendors dress appropriately to the gender.

Who knew Thrown Weapons were so dangerous?
In December of 2001, this "Thrown Weapons" bug was causing extremely poor server performance - to the point where the game was practically unplayable! This bug had come on the heels of another bug that was just as bad, but which the team managed to get fixed around 9:00 p.m. Just as the team was wiping its collective brow and saying things to each other like, "Whew! - we're in the clear"!, this bug reared its ugly head - and the team realized they were in for long night.

After finally figuring out what had gone wrong, at around 4:00 a.m., Ken Troop (at the time still the producer of Asheron's Call: Dark Majesty [ACDM]) wrote up the cause of this "Thrown Weapons" bug in an email to the team. It started off like this:

"Three hours ago we were in trouble. The servers were being brought down. Estimated Time of Arrival (ETA) for resurrection: Unknown. Possible suspects for the bug: Unknown. Amount of trouble and pain looming ahead: Known. A lot."

"I'm poring over the code checking messages; Todd is looking over server logs. There are some 30+ different code check-ins for the past month, many dealing with numerous, complex, scrawling systems - scary systems. Was it our fix for the housing item loss bug that caused this? Maybe it was the dupe bug fix? Errant logging messages? The possibilities seemed endless."

It turns out that the changes made for players to the Thrown Weapons skill had come back to bite them with a vengeance! Delving deeper into this code, the team discovered they hadn't updated the proper monster files - so the monsters thought they too were able to use thrown weapons and shields at the same time!

As Ken puts it, "So the first time a Lich Lord pops into the world and says, 'Hey, I have a javelin! Hey, I have a shield! I've never been able to use these both at the same time before! Let's go kick ass!' Except the moronic Lich Lord has no clue how to do anything with a javelin and a shield."

What does that mean in terms of bringing game play to a halt? The team had not intended to give this skill to the monsters - so no new animation had been created for this scenario. Thus, whenever a monster found itself in this position, it went into an "infinite loop" - thus causing the servers to crash!

Ken provided another analogy to the situation, "It's like expecting a two-month old baby to run a marathon - except this baby cries out a thousand times a second because he can't run over to mama. Now multiply that baby by another thousand, and that's enough crying to bring Boston to its knees, much less a collection of server machines!"

The team worked through the night to fix those monsters and Dereth lived on for another day. But after such a long and frustrating night, all those developers - and developers everywhere - were able to relate to Ken when he announced "I won't mind if this doesn't happen again any time soon."