int main(void)

My Blog

Posted 10/10/11 @ 2:43pm - By Ross

Diablo 3 bug on skeleton king

So while browsing the web today I ran across a video that displayed an interesting bug in Diablo 3. Take a look for yourself to see what I’m talking about.

I got into the D3 beta several weeks ago thanks to a friend. Unfortunately the content currently available is pretty limited and I powered through it in about a week. Still, it’s interesting to see bugs like this crop up. In particular this bug interests me as I think I know the cause and the fix. Of course I have to preface this as a guess as I haven’t seen any code and am basing this solely off intuition.

For those that don’t know, the beta ends at the skeleton king and you get a nice splash message informing you that you’ve completed the beta. About a week before I got into the beta there was an update saying that they changed that message to display after the skeleton kings death. Seems like a pretty innocent change as that message covered up a cool piece of animation. However, I think someone didn’t think it through all the way.

That splash screen was likely tied to the completion of the quest line. By changing it to appear after the animation (and loot drop) a bug was introduced where you can simply exit the game before the quest is registered as complete. This lets you come back and continue from the last waypoint (right outside the skeleton kings chambers).

This fix should be straight forward, just make the loot drop after the animation. How easy that is to change? good question. Another possible fix that might be even easier is to revert the change they made. That splash message won’t need to be displayed in retail so the change is really unneeded. Without more knowledge of the system it’s tough to determine the appropriate fix, but either are good starting points.

I find this particular instance of a bug interesting as I realized the cause almost immediately after reading about it. It’s rare that a bug is so simple (if I’m right), especially if you aren’t familiar with the system in question. Still, it’s a good example of how a bug can be introduced off a small aesthetic change that you might not expect to affect anything.

return 0;