Fresher pics for the GrandMasterPixel leaderboard

The GrandMasterPixel rankings are supposed to give a view of the greatest pics that players have sent into battle. This also includes subcategories such as “three colour” pics and “black and white” pics, so you can see how people have made the best use of a limited palette.

I ain’t getting on no plane, Hannibal!

Unfortunately, it’s been hard for new pics to get to the top of the rankings. This is probably because of the changes to scoring a while back, and what I would call an ‘early adopter advantage’. As a result the rankings really haven’t moved much over the last year or so … until now.

Today, I’m shaking things up just a little. The front “Rankings” page will now show only pics submitted within the last year – as a result there should be more movement as dominant pics get old and younger successful pics get a shot at glory. The best pics of all time will still be shown under the ‘all time’ rankings. There are also now “Most successful dead pics of all time” and  “Most successful living pics of all time” so you can see the best of the best that are still battling it out, even after a year.

So, don’t be shocked if next time you check out the rankings Mr. T is no longer on the front page. He’s had a good run .. it’s time for him to step aside and let the younger pics steal the limelight.


Braindump of my proposed changes to GrandMasterPixel

Many of you have probably noticed (and quite a few players have commented) that the judging rate in GrandMasterPixel has become very slow in the last few months. This is frustrating since I know everyone likes to see how their pics do in the Arena quickly .. it’s pretty disheartening to submit you masterpiece, only to check two days later and find it hasn’t even been judged once !

As I’ve mentioned, this is to do with the having a larger ‘live’ pic population than when the game first started. My simple simulations suggest that with the current live pic population of about ~2000 pics, and about ~1000 battles daily (which was the case a few weeks ago), only about 15 % of pics should be missing out on getting at least one battle per day. The numbers will be a little different now, but you get the idea. Nonetheless … judging just seems too slow, so changes are afoot.

Proposal

For the latest GrandMasterPixel update, I increased the judging token recharge to one token every 15 mins (4X faster) .. but since many people will then also submit 4X faster, this won’t really solve the slow judging issue. The big change I have planned next is to increase the number of hitpoints for new pics (from 10 to 100) and the submission cost (from 10 to 40 submission credits per pic). I’ll probably also make it so pics lose 2 HP per lost battle, to prevent the pic population growing too much. I haven’t settled on these numbers 100% yet, but if my spreadsheet shenanigans are correct, the result of all this should be a faster judging rate, with a similar submission rate (about a maximum of two pics per day).

For the math/game design nerds: The other advantage will be that since all the numbers in the game are larger, it should be easier to tweak things more subtly in the future without moving away from whole numbers (eg, the smallest possible tweak to submission cost currently is 10 %, a change of +/- 1 to the total value of 10. A higher overall submission cost will make smaller percentage changes possible). Going to larger numbers kind of goes against my initial philosophy of keeping the numbers small to make the game more approachable to casual players … but now I’m thinking that this was a false premise, and it won’t be an issue for the majority of existing (or prospective) players.

Side effects

My biggest issue with making these changes is how to best deal with existing pics. Some people would very rightly complain if brand new pics suddenly got 10x more HP, allowing them to easily acquire more wins than an ‘old-world pic’ – so I will probably scale up the hitpoints for all existing pics by 10x (and current wins/loses by 5x), to match what would be equivalent if they had been submitted under the new system. This is probably not quite perfect, but it will have to do. At the same time, achievement thresholds related to numbers of wins will have to be multiplies by 5. In the process I just need to be very very careful to not completely mess up the database somehow :P

Bonus braindump !

While I’m at it – here’s another idea of something the might help speed up the perceived judging rate. I could prioritize judging for active players, so that if someone hasn’t judged for one week, their pics get flagged as “inactive” and don’t get included in battles as frequently as pics of active players. This would reward you guys that play every day, without requiring any major ‘economic’ changes immediately.


Pixel art : just nostalgia ?

Pixel art seemed to capture the attention of parts of the blogosphere earlier this week. Lots of people were asking the question: Is pixel art just about nostalgia & video game fanboyism, or is it something more ? In my opinion this ‘debate’ is about as dumb as the “Are videogames art ?” debate. Of course videogames can be art, and of course pixel art is about more than nostalgia. Duh.

Anyhow, here’s a little link-o-rama with some views ….

(a shoutout to the memecore blog, run by a GrandMasterPixel player that found this video right about the same time I did)

And .. in response, a series of tweets, in reverse chronological order, by Sean Howard, the creator of the web comic A Modest Destiny and sharer of wicked cool ideas in game design.

sqorgar tweets:

Point 5: Nostalgia is certainly part of pixel art, but it is not the purpose. It doesn’t justify it, explain it, or define it.about 3 hours ago via web
Point 4: Rather than pixel art being an abstraction of reality, pixel art is a self contained reality in which the art happens.about 3 hours ago via web
Point 3: For some people, pixel art is a type of expression. For others, it is a type of autism. It makes sense in ways other forms do not.about 3 hours ago via web
Point 2: Consoles weren’t the only things to game on. I learned pixel art from Fat Bits on a Mac Plus. My pixels weren’t blurry.about 3 hours ago via web
Point 1: Jason Rohrer is always wrong. His opinion has anti-meaning. It’s not even correct by accident. It sucks beauty from the world.about 3 hours ago via web

I don’t quite get the antipathy towards Jason Rohrer. I like his work, although I haven’t heard him speak much. Sean has a point though about consoles vs. computers – I never had a real gaming console, but I did play with non-blurry pixels on a computer as a kid.

Ars Technica also chimes in with some views – summary: pixel art remains popular because it’s an interesting art form and a useful form of communication – the nostalgia factor is just a bonus.


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.


GrandMasterPixel evolves – some cool things I’ve noticed

GrandMasterPixel – cool things I’ve noticed
So it’s been about a week since I released the GrandMasterPixel beta to the Android Market. It’s been an exciting time – here are a bunch of random things I’ve noticed:
A surprise – A pic that I’d never judged moving up into the top rankings. This is exciting for me, since over several months of casual testing, 90 % of pics I was judging were drawn by me (I had three accounts for testing). To see a successful pic I’d never seen before, in this case, a version of a Super Mario “Boo” ghost by Amandine, titled “Little ghost”, was a real buzz because it means there are interesting things happening in the game I don’t even know about.
There are some really talented people out there – I suspected that some people would be able to push 16×16 low-res pixel art to it’s limit, and I was right. There are some amazing little pics already moving up the ranks. I’m awestruck at the artistic talent that is out there. My own pics are humbled by some of the incredible creations that are moving up the ranks (*nods to RylandCorsair*).
Some interesting strategies – Someone drew a spider in black and white. Then levelled up and gained an extra color, added some red to the same pic and submitted it. Maybe this could be considered an ‘exploit’, based on the fact that GrandMasterPixel doesn’t clear the current pic you are working on when it is submitted, but I kind of like it. Players could easily redraw a mutation of a successful pic from scratch and this type of ‘resubmission’ would occur anyway. It’s a nice dynamic emerging that I didn’t really predict.
There have also been a few nice instances of ‘copycat’ pictures – rather than being unoriginal, these are cool because you can see the variations made in the new ‘tribute version’. One of my original testing pics was a badly drawn USA flag – I’ve seen at least two mutated versions of that submitted so far. There have also been some seasonal submissions – on St Patricks Day someone did a pic of a cute little leprechaun smoking a pipe (thanks ‘chaosengine’ – that was a fun little pic, hope it performs well).
You may have noticed I haven’t included any actual images of the pics I’m taking about in this post. I’m thinking about some ways to let pics be seen outside the game, but it has to be done carefully and correctly. So, for the moment, to see the pics you are just going to have to go and play the game :)
The first cock’n’balls appeared about 24 hours after the beta was released to the Market. You know, a cock’n’balls, the type of thing 14 year old boys love to draw on pretty much any and every surface (congratulations for twakd408, for the moving artwork entitled “peenisss”). Happily, users killed off this pic quickly, with only 3 wins and 10 loses – meaning it was only viewed 13 times before it disappeared from the Arena. To me, this is a wonderful thing – people are freely expressing themselves, and the community of players responded. I see the emergence of a cock’n’balls as a real success – nothing online has reached relevance until it receives some spam or trolling, and a cock’n’balls is one type of ‘trolling’ that may appear in GrandMasterPixel from time to time. There have also been at least three swastikas in the first week, presumably drawn by amateur World War 2 historians. Each are quite unsuccessful pics, so presumably other ‘Pixelers don’t share these artists taste for history, or alternatively acknowledge the limited artistic talent embodied by these pics.
The amazing range of subjects embodied by the pics submitted also raises some issues relating to the possibility of an iPhone release. I’d toyed with the idea, but from what I can tell Apple wouldn’t approve an app like GrandMasterPixel that has the possibility of user generated content being (*gasp*) seen by users. Based on past history, one cock’n’balls, no matter how pixelated, would probably be enough to get the app rejected. For the moment I don’t think I’m going to waste my time porting to the iPhone platform only to find the app can’t be distributed in the App Store. I’ve only very recently got an iPod Touch dev setup going, so comments from iPhone devs on any precedents for apps incorporating user generated content getting through the app store approval process are welcome.
On the technical side … here are some Google App Engine stats, particularly relating to requests to the main “Arena”, which take the most CPU time of the whole app. This is me playing Systems Analyst on the back of an envelope. At the moment, the GrandMasterPixel server is running within the free quota limits on Google App Engine – these quotas are reset every 24 hours. On March 16th, I can see that after 24 hours, 18 % of the CPU quota on App Engine is used by 684 Arena requests (so 100 % of the daily free CPU quota would be used by about ~ 3800 Arena requests). If one users plays once every 24 hours with 10 Arena requests, this would allow about ~ 380 users to play daily before the quota is exhausted. Or, alternatively, whatever the user base currently is, it can only grow by about 5x before the server exceeds the free quotas. It is clear that some optimization is required – my gut feeling is that I’m doing some datastore queries in a very inefficient way and once these are improved I should be able to support 1000+ active users easily within the free quotas.

It’s been about a week since I released the GrandMasterPixel beta to the Android Market. It’s been an exciting time – what follows is a bunch of random things I’ve noticed.

gmp_icon_base

A surprise – A pic that I’d never judged moving up into the top rankings. This is exciting for me, since over several months of casual testing, 90 % of pics I was judging were drawn by me (I had three accounts for testing). To see a successful pic I’d never seen before, in this case, a version of a Super Mario “Boo” ghost by Amandine, titled “Little ghost”, was a real buzz because it means there are interesting things happening in the game I don’t even know about.

There are some really talented people out there – I suspected that some people would be able to push 16×16 low-res pixel art to it’s limit, and I was right. There are some amazing little pics already moving up the ranks. I’m awestruck at the artistic talent that is out there. My own pics are humbled by some of the incredible creations that are moving up the ranks (*nods to RylandCorsair*).

Some interesting strategies – Someone drew a spider in black and white. Then levelled up and gained an extra color, added some red to the same pic and submitted it. Maybe this could be considered an ‘exploit’, based on the fact that GrandMasterPixel doesn’t clear the current pic you are working on when it is submitted, but I kind of like it. Players could easily redraw a mutation of a successful pic from scratch and this type of ‘resubmission’ would occur anyway. It’s a nice dynamic emerging that I didn’t really predict.

There have also been a few nice instances of ‘copycat’ pictures – rather than being unoriginal, these are cool because you can see the variations made in the new ‘tribute version’. One of my original testing pics was a badly drawn USA flag – I’ve seen at least two mutated versions of that submitted so far. There have also been some seasonal submissions – on St Patricks Day someone did a pic of a cute little leprechaun smoking a pipe (thanks ‘chaosengine’ – that was a fun little pic, hope it performs well).

You may have noticed I haven’t included any actual images of the pics I’m taking about in this post. I’m thinking about some ways to let pics be seen outside the game, but it has to be done carefully and correctly. So, for the moment, to see the pics you are just going to have to go and play the game :)

The first cock’n’balls appeared about 24 hours after the beta was released to the Market. You know, a cock’n’balls, the type of thing 14 year old boys love to draw on pretty much any and every surface (congratulations for twakd408, for the moving artwork entitled “peenisss”). Happily, users killed off this pic quickly, with only 3 wins and 10 loses – meaning it was only viewed 13 times before it disappeared from the Arena. To me, this is a wonderful thing – people are freely expressing themselves, and the community of players responded. I see the emergence of a cock’n’balls as a real success – nothing online has reached relevance until it receives some spam or trolling, and a cock’n’balls is one type of ‘trolling’ that may appear in GrandMasterPixel from time to time. There have also been at least three swastikas in the first week, presumably drawn by amateur World War 2 historians. Each are quite unsuccessful pics, so presumably other ‘Pixelers don’t share these artists taste for history, or alternatively acknowledge the limited artistic talent embodied by these pics.

The amazing range of subjects embodied by the pics submitted also raises some issues relating to the possibility of an iPhone release. I’d toyed with the idea, but from what I can tell Apple wouldn’t approve an app like GrandMasterPixel that has the possibility of user generated content being (*gasp*) seen by users. Based on past history, one cock’n’balls, no matter how pixelated, would probably be enough to get the app rejected. For the moment I don’t think I’m going to waste my time porting to the iPhone platform only to find the app can’t be distributed in the App Store. I’ve only very recently got an iPod Touch dev setup going, so comments from iPhone devs on any precedents for apps incorporating user generated content getting through the app store approval process are welcome.

On the technical side … here are some Google App Engine stats, particularly relating to requests to the main “Arena”, which take the most CPU time of the whole app. This is me playing Systems Analyst on the back of an envelope. At the moment, the GrandMasterPixel server is running within the free quota limits on Google App Engine – these quotas are reset every 24 hours. On March 16th, I can see that after 24 hours, 18 % of the CPU quota on App Engine is used by 684 Arena requests (so 100 % of the daily free CPU quota would be used by about ~ 3800 Arena requests). If one users plays once every 24 hours with 10 Arena requests, this would allow about ~ 380 users to play daily before the quota is exhausted. Or, alternatively, whatever the user base currently is, it can only grow by about 5x before the server exceeds the free quotas. It is clear that some optimization is required – my gut feeling is that I’m doing some datastore queries in a very inefficient way and once these are improved I should be able to support 1000+ active users easily within the free quotas.

In summary – I’m very happy that I released the beta rather than fiddling with it alone for another month. The game has been getting mostly positive feedback, a four out of five star rating on the Android Market, and a steady burst of downloads every time I release an update (only once so far). Looks like it has legs …