Tuesday, August 12, 2014

A bug or not a bug?

It's happening in a manner that could be described as "periodic."  Someone contacts me about Idamu Caverns for Android to tell me they've found a bug: they can't put their dagger in their backpack!

"Bug" is in interesting word, as it has different meanings to different people, and the exact definition is (in my experience) cause for much strife programmers and users.

  • In the programming sense, a bug is when software is behaving differently than designed.
  • To most users, a bug is when software is not behaving in a way that they expect or understand.

It's a subtle but important difference.  In the case of "daggers don't fit in backpacks," there is no bug in the programming sense.  Think about it.  Take a real-life backpack, then stuff a naked blade the length of your forearm into it.  What's going to happen?  If you're lucky, it will only tear a single hole and you'll notice before you lose anything, or before the blade dangling out of your pack slices you in some way.  So, yes, the behavior was completely intentional.

However, it is absolutely a bug in the second sense.  Why?  Because every other game out there allows ridiculous stuff to go into backpacks.  Open a typical virtual backpack and you find full-length swords, battle axes, even entire suits of armor!  None of this is liable to fit inside a real backpack at all, let alone leave room for anything else or be light enough to carry.

But the industry has set an expectation, and deviating from that expectation is considered a bug.

There are logical reasons for this: Games are not real life, and trying to make them too much like real life causes them to be tedious and unpleasant in all the ways real life is tedious and unpleasant.  Having an unreasonably large backpack allows for additional game dynamics (what I call inventory grinding).  And, in general, not having a practical way of carrying something frustrates gamers and makes the game less fun.

The thing that is amazing to me is that the game behavior is the expectation, so much so that assuming that the game might, in any way, mimic reality isn't really considered.  Instead, the gamer assumes that the programmer made an error.  It's an interesting psychological observation.

I did make an error.  Whether allowing daggers to go in backpacks is an error is a topic for debate, but that's not the error I'm talking about.  The error was in providing a generic message to the gamer, "You have nowhere to put this."  From a software perspective, that's good design, any time the inventory code can't accommodate you, it provides this message (special cases in software create complex and error-prone code and should be avoided).  From a usability standpoint, it's terrible design, as generic error messages make users believe that something happened that wasn't intended to.

Really, there are three possible solutions to this problem:

  1. Just allow the player to store naked blades in the backpack.
  2. Provide a more specific failure message: "You can't do this because putting a naked blade in a backpack will tear and destroy it."
  3. Let the user put the blade in the backpack, then when they take a step, have the backpack slice open and all their stuff spill out.
#3 sounds hilarious, but in reality it would just frustrate players.

It got me thinking, though ... if I took the code for Idamu Caverns and frameworkized it (is that a word?) I could then make another game in which silly behavior is rewarded with silly results.  In addition to #3, if you put crazy stuff (like a full suite of plate mail) into your pack, it would work fine; except that a few steps later your back would give out and you'd have to pay 5000 gold to a chiropractor to get rid of your -1 penalty on all future actions ...


No comments:

Post a Comment