How developers really deal with bugs


How developers really deal with bugs

These illustrations accompanied an article on by Alex Wiltshire about strange bugs that are created during the games development process and how they are fixed or integrated into the game.


Paradroid bug

"There's a table of 24 different robot types, holding entries for the robot number, top speed, armour rating, starting energy and weaponry. Also, there's a table of 16 robots currently on the deck, holding position, energy, and speed. If you use the 24-element index on the 16-element table then any of the last eight values of that index would cause it to read invalid data and potentially write to data beyond the end of the table. It was only making this mistake when resolving collisions, so you might not notice that a messenger robot has more armour than it should, but you do when a big robot crashes into another and the game stops! I went out into the garden and had a good scream. I had found my mistake."


Unexplored - missing the missing bosses

"When we moved Unexplored out of Early Access and into full release, we made a stupid mistake in one of the last patches before releasing. Basically we set the number of bosses to be generated to zero. It took us a week or so to realise we just shipped the game without any bosses apart from the final one - a player from Early Access brought the issue to our attention."


Not not fixing a bug in Assassin's Creed 2

"There was an ongoing issue in Assassin's Creed 2 that I couldn't solve with missing animations in combat. I could never figure out what led to the exact combination of circumstances which triggered the bug. It haunted me for well over a year but I could detect it in code, and... just make it work. Not properly, mind you. When I detected the error case, I just played another animation. I'm assuming there's a rare issue in the game where you'll see an animation that doesn't sync up, but no one ever complained, so I guess at the end of the day it was a valid fix. Sometimes making a bug disappear is the next best thing to actually fixing it."


Bugs and exploits in Hyper Light Drifter

"…Six months after that, we released Hyper Light Drifter and it took about two days for a speedrunner to figure out how to get through our impenetrable walls. He used a glitch we'd never tried, purposefully getting trapped in crystal and having it force him inside of a wall, at which point he could roam freely. We thought about fixing this. Alx Preston edited some of our level designs to keep crystals away from important walls as a start. But ultimately we chose not to completely fix it. OK, we weren't totally sure how, without a major overhaul. So instead of blocking players from this exploit, I decided to just let them do it... but kill them after a few seconds."