2013/01/22

The "Bottomless Bag" problem

The bottomless bag is an item from World of Warcraft and refers to a classic D&D item called "Bag of Holding" which could store items larger than its own size. Even Eve Online has containers which store more than their own size.


When designing online games there are certain limitations you have to be aware of like data base size. Databases tend to grow over time when operating an online game. This growth is not bad unless you hit a certain limit where maintenance of that database takes simply too long and can shut down a game for a day.

So why do databases grow? Because designers are lazy and too generous.

Let me give you an example: the in game mail in Settlers Online.

In Settlers you can send mails to other players. you can also attach items to mails and send stuff around. You get your rewards from certain quests via mail with the items attached. You get your trades via mail and you get some event items or gifts via mail.

Over time you stack up considerable amounts of mails in your inbox. Multiply this by thousands of players and your mail database can explode to immense proportions. This is made worse as "deleted" mails aren't usually deleted but only flagged as being deleted (there are reasons for this).

The reason for the exploding database? Because the designer was to generous: he gave you unlimited mailbox space!

So here it is: limit the users mailbox space. But how?

Expiration Timers
This method was made popular by MMO RPG'S like World of Warcraft. You attach a timer to a read mail (note "read!") and the mail gets deleted after that expiration timer (usually days or weeks). This self cleans the mail box of read mails.
Problem: assume there is an item attached: do you delete that mail as well? That's a no go.
If your answer is no then I attach a crap item to all my mails so they never get deleted - exploiting your system.
So what now?

Mailbox hard limit
If you limit the mailbox to lets say 50 mails, what do you do with mails being sent after the mailbox is full? Delete? What about mails with important items attached like compensations or trade? Exception? Then you can exploit the system - again.
So no mailbox hard limit. What then?

Auto Accept & Expiration Timers
So lets say we use expiration timers and auto accept items attached to expired mails. Where do we put those items? Into the users inventory? What happens if that is full? Oh god, why can't the world be easier.

Aftermath
Of course there are solution which will fit your needs. But I just wanted to explain that this simple designers decision not to limit the mailbox can have dire consequences to your game operations.
And fixing this problem can cause a myriad of additional work for your programmers, designers or even support.

Take Away
Generally do not give anything out for free in an online game. Not even mailbox space. Or number of items you can collect. Or number of horse you can have. Or anything - only if the player invests time, skill or money - yes money.
Limit numbers is a key design decision to any mechanic which involves "gains" in an online game.
The positive side effect is of course that you can monetize those limits suddenly by loosening the limit for paying players. Why not pay for larger mailbox sizes? Or inventories (which many games do already) or even pay for having the ability to collect more treasure maps than anyone else.

p.s.: the easiest solution to the mail problem is not to limit the mailbox but to incentivize the user to delete mails himself - like Ultima Online did to clean up their database from trash items.