WordHero: the story

This is a brain dump on how/why I made [WordHero]

Doing the math : Is it worth it ?
[ol]
[li]I had zero android or marketing experience.
[/li][li]I saw figures of 2-3 eCPM and average advert time of 30 seconds
[/li][/ol]

Thinking goes like this:
“I think I could get 100 to 200 people playing in a game”
“There used to be a maxim in radio that a hit song was never over 3 minutes”
“Lets make game time 3 minutes”
“Oh wait, users need to see the scores… lets make it 2.5min + 30 secs”

Math:
3min = 30 games / hour = 480 games/ 24h
= 960 adverts per day per user
960 x 100 players = 96k adverts / 24h
@ $2 eCPM = $192 / day
= $70k / year

OK!!! Looks like it is profitable to do an phone app!

Problems:

  1. It is actually REALLY hard to get 100 people playing per day ON AVERAGE over the full 24 hours. Peak player count is typically 4x the average. This means you need 400 people in a single game. I made the mistake of confusing peak players with average players.
  2. Advertisers publish $2-3 eCPM’s. They also publish a default rotation time of 30 seconds. I assumed these numbers (a) went together (b) applied to 320x50 banner adverts. This was a fatal error.

Picking the game:
So, now I needed to pick a game. There are a number of choices, but something that requires minimal effort, no use of OpenGL/etc and could make use of my existing skills (Python among others). My wife loves Scrabble (she beats me every time!), but that seemed too complicated, so I chose a different word finding type game.

Not infringing on existing IP:
I am not a lawyer, but I figured that while there were a lot of Boggle clones, I still did not want to infringe on anyone else’s IP.
[ul]
[li] can’t use anything looking like dice
[/li][li] can’t use the Boggle letter frequency distribution
[/li][li] can’t use the number of points/letter that Boggle uses
[/li][li] need to be careful which dictionary I use for word generation
[/li][/ul]

Looking at the competition:
So I looked at the market to see if there was any competition. The analysis of word games at the time (June 2011) looked like this:
BoggleDroid - boggle type=yes, online=no
Squiggles - boggle type=yes, online=yes, 1vs1
Wordplay - boggle type=yes, online=no
Word Finder - boggle type=yes, online=no
Dropwords - boggle type=no
Bogged! - boggle type=yes
Away with Words - boggle type=no
Word Boggle - boggle type=yes, online= 5 player ?
Wordmix - boggle type=no
Wordspree - boggle type=no
RouteWords - boggle type=no
WordCube - boggle type= 3x3 grid
Wordgame - boggle type=no
Wixel - boggle type=yes
Tile take down - boggle type=yes, online=yes, paid only

Scramble with Friends did not exist at the time, so it seemed there was no really massive multipler (and actually, Scramble is asynchronous and 1vs1, so there is still no competition for massive multiplayer!)

Tools to use developing the game:
Android, iPhone, Nokia, Windows Mobile. This is easy. Apple can kill your app if they don’t like it or if they want to produce something similar. So that is a non-starter. Nokia is dying. Windows Mobile does not have market share. That left Android. So I bought a Nexus S for $540.

Graphics can be done with a number of tools. The game needs to have a clean UI, not fancy graphics and I don’t have the budget to pay someone to do graphics. So I can hack something up with free tools.

I need a cloud service (to support the bazzillion players who will play my game and make me the next Angry Birds!). Amazon looks good, but it too technical. I can’t just start programming. It also costs money. Google AppEngine is free for small apps and supports Python. I know Python. This is a no-brainer. Yay!

Android is Java. I have never written any Java in my life. Time to learn. StackOverflow is my new best friend!

Wireframing the GUI:
I did mock gui’s using a free version of balsamiq : http://www.balsamiq.com/
I needed:
[ul]
[li] splash screen (always important to establish a feel of quality)
[/li][li] login on first use
[/li][li] main game start screen
[/li][li] game playing screen
[/li][li] results screen
[/li][li] help screen
[/li][/ul]

More were added later…

Addictiveness:
Lots of attention was spent on making the app addictive. This should be a seperate discussion at some point.

Coding version 1.0:
I then spent about 6 weeks coding version 1.0. Almost everything has changed. Each new release increments the version number by 0.1.

Current client version: 3.9 (29 releases!)
Current server version: 49

Later versions:
I changed the icon, almost every single screen. Fixed bugs within hours.

Features that got added in later versions:
[ul]
[li]ACRA for crash reporting
[/li][li]Board rotation
[/li][li]Animation for board rotation
[/li][li]User’s best word shown in results
[/li][li]Statistics for each user
[/li][li]Flurry for metrics
[/li][li]Server side message on startup
[/li][li]What’s new screen on upgrade
[/li][li]Ask user to rate [WordHero] after 3 days and 7 games
[/li][li]User preferences
[/li][li]Taglines (user can set a text next to their name in results for others to read)
[/li][li]Current word being spelled by the user at the top of the screen
[/li][li]Digraph support (eg: Qu as a single letter on a tile)
[/li][li]Hour/Day/Week/Month leaderboards
[/li][li]Country flag in results screens so you can see what country a user is in
[/li][li]Friends lists in leaderboards
[/li][li]Friends only filtering
[/li][li]Themes, Digraphs and super score boards added in a rotation
[/li][li]Show word bonuses seperately in results
[/li][li]Clicking on mini-board in results filters all-possible-words list
[/li][li]Clicking on a word in all-possible-words list shows the path to make it on min-board
[/li][li]Guess checking … we now suggest a 3 letter word
[/li][li]Vibration added
[/li][li]Sound added
[/li][li]Color customization
[/li][li]Ad profile (users can set their age/gender/income/etc for better ad targetting)
[/li][li]Sync to time server on start, as a lot of phones have wrong time and time is critical in a synchonous game
[/li][li]BlackBerry PlayBook release to get the free PlayBook
[/li][li]Auto-timeout and exit when users post zero scores 2x in a row
[/li][li]Timing is now configurable in gameplay options
[/li][li]Enable move to SD card
[/li][li]Leaderboards are now filtered to top10 + X around you + friends (configurable)
[/li][li]Your position (X/Y) added as a header in results leaderboard
[/li][li]Server configured advert position
[/li][li]Tutorial on start
[/li][li]Tablet mode for ‘The Friday Game Review’ team
[/li][li]Percentile for position shown as a header in results leaderboard
[/li][li]Layout changes for tablets
[/li][/ul]

Obviously, I also did bugfixes in every release.

Lessons I learned from the server side:
[ol]
[li]Communication can be done with any RESTful service. JSON is human readable and takes less bandwidth.
[/li][li]Version 1.0 will not be your only version. All communication between client and server should be versioned. This means you can serve different data to a version 1.0 vs a version 2.0 client.
[/li][li]The client should know which market it was uploaded to (Amazon/etc)
[/li][/ol]

Okay, that is enough for now.

Thank for that detailled timeline it’s a very good read for every starters out there too.

Often people think, that making a good app is easy to do and will make you rich over night like angry birds. People forget that is a long way to go until you have such an app with at least the minimum features required. Angry Birds was not a fast developed app for example.

The same counts for other apps which gained some sort of success. I like the way you started thinking honestly about making an app in the first place.

I played WordHero today (if you search for “Word Hero” your game does not show up? Only when you spare the space) and kinda liked it - I don’t like the waiting times between the games but I think you have a reason for it :wink: I still don’t like any waiting times at all which are not needed by a gamepart.

What I like is, that your game feels very complete - a dev will see that there was some time involved in developing this app.

I learned by doing - that’s the way I do it :slight_smile:

Very interesting post. Considering your story, I’d say I’m at the beginning of my journey.
Can you tell more about the download curve (how fast did it get to how many downloads) and what you actually get from it (at least ad prints vs active installs) ?

Thanks for taking the time to share this !

Download curve… UGLY.

Android Market is around 1600 installs after 10 months. Pretty much a straight line. Completely organic growth despite over 200 four or five star reviews.

Amazon Market is 26k installs. This is only because I got lucky and had one of the few Kindle Fire compatible apps when the Fire was launched before Christmas. Once you are on the ‘top apps’ list, it is easier to stay there.

How do you like the google app engine? Have you had to pay, or has it been all free?

It has its issues, but that is because of the architecture. Overall, I am happy. Cost is around $50/month at the moment.

Edit: Cost was initially free, but at the moment, it is doing ~ 1.2 million datastore writes/day and 320MB/day of traffic (outbound).

Interesting story there. Thanks for sharing such detail :slight_smile: I’d definitely be interested in hearing more about how you went about making the app addictive. Sounds like a particular topic of expertise for you now.

One thing that stands out to me while reading this report is how many features you added after the initial release. Something I struggle with frequently is trying to work out when’s the best time to ship a product. Does it have enough features? Often it’s best to just ship the “minimum viable product” and learn from user feedback. Looks like you’ve done this here, and come out with a very polished app so far.

Hmm… Here is a good primer.
Bunchball presentation at Standford

Good stuff around page 35 onwards…

@david I would suggest to publish a version which does cover the main idea/principle of your app and see how users react on it - if they like it, they will tell you or they will shout for the one or other feature.

If they don’t like it, you will hear nothing xD When that’s the case I think it is better to re-think the overall idea or do it another way. Another good idea is to look out for other apps with an similar idea and look what users are complaining about and try to integrate that in your app.

@mind have you tought about adding an offline version? WordHero is quite good and I am sure that people will also like to play it offline (i.e. in the subway) - you could make that a paid app or make it free with 10-20 boards and offer an in-app-download with another 100 boards or such

I second that. Maybe add a “practice” mode, where you can play it by yourself while offline?

we may forget, that there are no ads available when offline - so that would be a good reason for a paid version maybe

I have had many requests for it… but I don’t feel like rewriting half the app (LOTS of use of ASyncTask) for a use case that means I don’t get any income. Negative ROI.

For those of you that are interested, I am running a contest on 99designs.com to find a new Android Play/Market banner for WordHero. Like: http://99designs.com/other-art-illustration/contests/banner-google-play-store-req-will-be-featured-142823

Great job. I haven’t used 99designs before, but there are some good designs being submitted for WordHero. Might look at using them myself for feature graphics when I need something higher quality than I can do with GIMP :slight_smile:

Thank you for sharing your thought process with us!

Featured in Google Play a few hours ago. I cannot see the effect on downloads, since that only updates once per day. I don’t know how long WordHero will be featured either.

Awesome, it is a great game. It deserves to be featured. Hopefully you get a whole lot of new users from this.

Bravo, bravo you deserve it, wordhero is well done game. In which category you are featured because I can not find you maybe just market does not show your game for my country.

Congrats!
Hopefully this will be a breakthrough for you. Since your game is multiplayer can’t you judge the effect of being featured by your server stats/load?

Btw - I cannot find your game from my country either. Maybe you’re featured in US only.

Hes featured under Games->Indie Games. This Great Indie Games category is something new I think. Hope they keep it and feature more indie games.
If your searching the market enter WordHero as one word. I couldnt find it for a while till i searched as one word.