The other day I was hanging out in Mumble talking with some guildies (in iToons) and we were talking about bugs in WoW and how easy/hard it could be to find or fix a bug. Most particularly we were talking about the “no xp from turning in dailies” that occurred at the start of Cataclysm (and was patched within an hour) and the bug we had run into with Kael’Thas where he Mind Controlled all 25 players in our (at level) raid that occurred after the 5.0 patch that took a while to fix.
I argued that the leveling bug was likely a simple variable that once they saw what was happening they knew what to fix, and thus it was fairly quick to fix. However, the KT bug was one of those odd “you change something here and it affects something over there that you didn’t think would be affected” kind of bugs. And figuring out which change is the “here” that affected the “there” is a tricky thing to figure out. After all the 5.0 patch didn’t directly change anything in the BC/Outland content as far as I can tell, yet KT started having Mind Control problems (or more specifically the raiders did – since we couldn’t complete the fight.)
The challenging thing to explain is how complex bugs can be in code, and why even with testing you can end up with bugs that you missed. Once you get past a simple bit of code the ability to have complete code coverage in your testing (that is test so every line of code is executed) is pretty hard to near impossible. That said good design and coding practices can reduce the errors, (and some can be prevented altogether.)
So all this preamble brings me to a blog post by someone else. I’ve been following this wonderful blog (for the programmer/geek/gamer type) written by Patrick Wyatt who was part of the team that created Warcraft and later that created Starcraft (and probably other projects at Blizzard. He also helped create Arena Net & Guild wars – go read his bio for more) I found him first when he was posting about the creation of Warcraft and how it came about, but the post that I came across today was directly related to the discussion in mumble, even if it was about Starcraft.
In it he writes about how bugs can enter and become hard to eradicate from code – and some of the pitfalls that can lead to these bugs and problems. It is well thought out and a fun read, and I think even enjoyable if you aren’t a coder. (Just skip the code bits if you need to, I think the story and message will still hang together.)
And to conclude the concerns that were brought up in mumble at the start of this post – the real concern was if turning in dailies when Mists of Panderia goes live tonight was going to work – I think it will. I believe that the problem at the start of Cataclysm was an honest (but thankfully easily fixable) bug. I think the extended beta testing – which included people leveling from 85 – and the fact that the bug has already occurred means they most likely tested it and those dailies will give you a little XP boost. Now to see if I can squeeze some game time in before tonight.