GrandMasterPixel : the Great Pic Drought of 2010 and other chilling tales

Picture this. You’ve just released the beta version of an online mobile game (OG). It is surprisingly more popular than you expected, so much so that it may even become a “massively multiplayer” online game (MMOG). So you are taking a break with your family over Easter. You haven’t written huge amounts of code to analyse the statistics and economy of this almost-massively mulitplayer online game (a-MMOG), but the small amount of analysis you have done suggests that the number of ‘live’ pics in the database is slowly dropping. You think to yourself … “Hmm, I’d better check that out in a few days, I wouldn’t want the game economy to run out of pics”. Twenty four hours later, after some marathon sessions of Settlers and Seafarers of Catan, you log into the game to find just two live pics, dueling it out. Oh crap – your a-MMOG has just had it’s equivalent of the Global Financial Crisis, or as I like to call it “The Great Pic Drought of 2010”.

Fail whale ? We only got Success Whales 'round here !

Fail whale ? We only got Success Whales 'round here !

If you were lucky enough to miss it, for about 12 -16 hours (AFAIK) around the 3rd of April, 2010, GrandMasterPixel ran out of pics. Thankfully, after some feverish coding at 2am, I was able to put the game into “repopulation mode” – the game gave free submission credits for anyone happy to submit a pic, and didn’t allow  judging until the population was restored to sustainable levels. Thanks to GrandMasterPixel’s insanely cool users, the database was repopulated with about 40 pics in around 16 hours. And even though submissions were ‘free’, no one really decided to crapflood the database with junky submissions either ! Hat’s off to you !

So you may be asking .. how could the game run out of pics ? The original design of the GrandMasterPixel economy was simple – players get submission credits, which in effect are converted into hitpoints (HP) when they submit a pic. By judging pics, HP is converted back to submission credits, and the cycle continues, with submission credits flowing into the pool of live pics as HP, and HP flowing back out into players credit balances. Each new player brings 10 new credits to the game, so in theory we should have zero loss of currency, and I seeded the database with about 100 of my own badly drawn pics to act as an initial buffer. Except …. players (previously) could hoard up to 30 credits in their account earned by judging – and what happens to those credits if a player decides to leave the game and not come back for an extended period (or never) ? Well, they just sit there, not getting converted back into HP in live pics. As far as I can tell, this was the origin of the decline in live pic population – a bunch of people played GrandMasterPixel briefly, checked it out, judged some pics, filled up their account with 30 hoarded credits, then uninstalled it an went back to playing Choice of the Dragon. Good for them. Choice of the Dragon is a fun game. Bad for us GrandMasterPixel players, since they in effect killed 3 pics worth by taking 30 submission credits with them and not putting them back as new pic submissions.

How have I fixed things ? Well, I’ve changed two things.

1) Successful pics now regenerate HP and submission credits (+1 HP for every 10 wins, and +5 submission credits to the artist). Also, any lucky pic can regenerate +1 HP for delivering the ‘death blow’ to another pic (ie winning a battle where the losing pic’s HP goes to zero).

2) Low level players can no longer hoard as many submission credits in their account. The number of submission credits you can hoard now scales up with your level, so those players “just checking it out” won’t remove so many credits/HP from the system if they decide to leave without emptying their credit balances.

The end result is that the live pic population is now healthy and growing. In fact, I suspect that soon I’ll need to make further tweaks to in the opposite direction to increase the death rate, since pics now seem to be generating a little too much HP. Some random ideas – maybe the death blow HP will not be guaranteed, but instead have some probability of success. Or maybe we can have “Tournament Tuesday” once a week where the judging credits recharge faster and don’t yield any submission credits, letting those that like to judge more than submit get it out of their system and help restore economic balance in the process. Ideally, it would be nice if it whatever change I make was ‘tunable’ rather than a fixed game rule, so that the effect could be turned up or down to help stabilize population growth as required.

Other recent changes – I tweaked the level up thresholds, so that the number of submissions required to reach each level is more consistent and sane (I thought no one would notice, but a few high level players did – sorry to shift the rug from under you). I’ve also added the ability to see the fight history of each pic – I’ll probably discuss this feature in more detail in a future blog post. As usual, various bugfixes were made along the way.

Finally, thanks to those sending feedback – in particular power users Nianchi, Evrai_Terrule, kad3t, skiz, chaosengine and Dennis, plus those who helped swat a few bugs I introduced during my panicked coding during the “Great Drought”. I’m working on an FAQ to answer some common problems and complaints, and better document various design decisions in the game.