Watch those stack traces

by Damon Payne 31. October 2012 16:29

Lately I've been playing a bit of Guild Wars 2. By "a bit", I mean a little more than is healthy given how much other work I have going on at home. It's much less severe than my previous Diablo 3 addiction, but that's like saying I kicked the crack habit and only do morphine now. At any rate, I got to a point the story that seemed unpassable due to app crashes. This was incredibly frustrating because each retry took at least 10 minutes. Each time I sent technical information about the error to the game's creator, and on my last crash I looked through it myself.

TL;DR - don't expose technical details like call stacks to your users.

The non-gamers will have to bear with me for a moment.

The crash happened at the very end of the story event, while my character was using a trebuchet. When you use a trebuchet, the game camera stops following your character and takes up a fixed position relative to the trebuchet. Upon nailing the last bad-guy, a scripted story dialog would start and the game would crash.

The technical information contained in the error report wasn't precisely a stack trace but it was pretty close. The sequence of calls seemed to be encountering an issue looking for a "bone" that didn't exist, so I assume the game is using skeletal animation. There was also some vague items about camera attach, camera follow, and so forth. Figuring I'd use this knowledge to my advantage, I tried the event one more time only this time exiting the trebuchet while the last shot was in-flight so the camera would be following me when the automatic dialog started. Sure enough, I got through the event without crashing.

Popular games get hacked often enough. Web sites get hacked. Bad things happen. This time a gamer got past a bug by inspecting a call stack, but next time someone could create something that ruins characters or steals financial information.

Think about the ways you may unintentionally expose technical details of your software.

Tags:

Architecture and Design | Gaming

About the author

Damon Payne is a Microsoft MVP specializing in Smart Client solution architecture. 

INETA Community Speakers Program

Month List

Page List

flickr photostream