After approximately 5 months of work, Math Maze went live on Google Play on September the 2nd, so I thought a little postmortem was in order. For those who are not aware, Math Maze is a very simple brain teaser math based game.
The player has to move a purple block across a labyrinth towards the exit. However, there are numerical conditions blocking the way. In order to traverse them, the purple block has to combine itself with operations. I can imagine you’re deeply confused by now, so please check the trailer to see what’s the deal.
Technologies, tools and team
- Inkscape for all the graphics
- Tiled as a level editor
- TexturePacker to optimise textures
- Adobe Flash and Adobe Premiere to produce the trailer
Downloads, ratings and press coverage
Despite the fact of having worked hard on PR, its non existence price barrier and the complete absence of adverts, Math Maze has a negligible download count. Don’t get me wrong, I didn’t have delusions of grandeur for the game, but I’d have hoped something slightly better to be completely honest.
Here’s a chart showing the current user installs over time, each pin corresponds to one of the app updates released up until now.
On the other hand, reviews and ratings have been quite positive. 33 people rated the app giving it an average of 4.88 stars. Judging by feedback I got from reviews and emails, users seemed to like the core mechanic as well as the music and the overall simplicity of the game, which was very nice to read. I hugely appreciate the fact that people went through the trouble of contacting me.
Along Math Maze, I also released a pressKit() site and the trailer you saw at the start of the article, which took me ages to put together. After reading tons of articles about PR and how to approach the press, I proceeded to do so. My target audience are kids and their parents who would presumably introduce the former to the game. That’s why I sent dozens of emails to educational and indie games websites as well as schools in the East Midlands area.
It didn’t help much, though.
Here’s a video illustrating the progress of Math Maze’s Git repository during development. For those interested, it’s rendered using Gource, an open source project that grabs your Git history and creates an interactive time lapse using OpenGL. Truth be told, it doesn’t provide a great deal of useful information, but hey, it’s really pretty!
What went wrong
Math Maze is mostly for kids and I wanted it to reach as many territories as possible, so localisation was pretty much mandatory. I wrote a simple LanguageManager that grabs the system’s locale strings from a CSV file, so they would be easily editable by potential contributors (let it be with Excel or Calc). A neat Python script would scan the project directory in search of strings that needed localising using regular expressions so as to generate the CSV templates.
Math Maze ended up being localised to English, Spanish, German, French, Romanian, Finnish, Portuguese and Polish.
I was very happy with the system, it was clean, fast and, overall, made me happy.
However, I missed one tiny but painful detail. I could only maintain the English and Spanish languages, so adding new strings in subsequent app updates ranged from tricky to impossible. Next time I shouldn’t translate such a simple project to so many languages in order to retain more control over future content.
With Math Maze I had the goal of learning the basics of PR and games. Despite the fact that such goal could be considered met, Math Maze didn’t do well in the media at all. Basically, nobody cared.
I read so many articles and presentation on how to approach the press and pretty much followed their advice.
- Make a trailer: I’m no film director and I did what I could, but I think the result is acceptable.
- Carefully choose your target: only emailed small indie games and parenting sites as well as schools.
- Tidy and up to date pressKit().
- Links to download and trailer always on sight.
- Personalise every single email, be friendly but polite.
- Come up with a hook: AI programmer in the AAA industry working on free mobile titles for kids on his spare time.
- Use Twitter and Facebook.
You get the gist of it.
In the end, only The Android Parent and AndroidTapp seemed to pay Math Maze any attention, for which I’m truly grateful. As for the rest, I honestly don’t know the reasons behind the lack of interest. The scope was tiny but I believed in the game’s quality. I should probably analyse this one more deeply and carefully. If you’re reading this and have any suggestions, by all means, leave a comment with your ideas.
Early in development, some people started to point out that the game lacked a tutorial to explain the core mechanics. To address that issue I just added some help text at the beginning of each level where a new concept was about to be introduced. Although this did the job, I should have worked harder on a completely integrated in game tutorial system that relied more on icons rather than text.
Level creation was exclusively data driven and required zero programming work. However, the ratio between the time it took me to make a full level over an average user finishing it was ridiculously high. This made content generation a lengthy and cumbersome process which resulted in a short game that could be completed in less than half an hour.
To be completely fair, the time I had to work on Math Maze had always been very limited so this was to be expected. Next time I intend to explore the realms of procedural content generation. Even though it requires a huge investment up front, I think it’d pay off in the long run given my circumstances.
The corollary of the previous point is that player engagement became impossible once they finished the 40 levels Math Maze puts on the table. Mistake that I believe it really hurt the game. These days, every single game comes with a mission system, leaderboards and achievements. Math Maze’s design should have been built taking mid to long term player engagement into account.
What went right
LibGDX and the third party libraries I used were clearly an excellent choice, I could not be happier with the framework and its community. So helpful and kind whenever I needed any assistance.
LibGDX has a brilliant performance and, as long as you don’t write crappy game code, your game will run on a massive variety of phones. The lowest end I got to test was an outdated HTC Wildfire and it was absolutely flawless. Development was also smooth and every problem I faced came out of my own incompetence as opposed from a potential tech bug.
Currently, there is no other open source framework that can rival LibGDX and I’d dare to say it tops some commercial packages thanks to its flexibility, performance and access to the source. Eat that Corona & company.
Working in the triple A games industry can be demanding and, if you still want to have any kind of social life, you’re going to struggle to find any gaps for personal projects. This made me realise the only way I could only pull this off was if I managed to keep the scope as reduced as possible. Looking back, I think I did reasonably well. Surely 5 months is a long time for a game like this, but it’s not that much when you consider the context in which it was developed.
You’ll read this an unholy amount of times, do not over scope.
I was very much aware of the importance of early playtesting. From the very beginning I showed Math Maze to those closest to me. Just gave them the phone and let them experiment. Immediately I could detect a thousand usability problems and got to address them from then on. Had I released the game like that, it would have been much more of a disaster than it already was.
Moreover, I decided to organise a little Closed Alpha among a broader circle formed by friends and people from the development community. Sending instructions and APK by mail is a pain in the arse but luckily enough, Google provides a nice system for this.
The process goes as follows:
- Upload your alpha/beta build to Google Play as such
- Create a Google+ community and invite people to it
- From your developer console, provide the community with access to the build
Now everyone invited can download the game as if it was any other Google Play app and provide feedback through comments on the community. Moreover, you can update your test build and everyone will automatically get it. It’s comfortable and highly convenient.
Anyway, I’m very happy I invested time on this because it made Math Maze a much better game after I addressed all the issues people kindly pointed out.
Math Maze art is not super fancy but I think it works because I decided to keep it simple by sticking to the little I knew. Quite some time and patience with Inkscape helped me find a consistent style that could be apply to the whole thing. Big icons, simple shapes, bright colours and some basic shading, that’s all it is.
Fortunately, that alone makes a difference and it’s the takeaway from all this. No need for flashy effects, just give the product a clear, consistent style. As if this wasn’t hard enough already!
Indeed, localisation was a bad part but also a positive one. The fact that so many people could contribute their translations for Math Maze so promptly proved that the system worked flawlessly. I will probably go through it in detail and share the Python script at some point so you can also benefit from it.
Would I do it again?
I won’t lie by saying everything went as expected. As a matter of fact, it was a bit tough to see how much effort I had invested in the project and how almost literally nobody cared. However, that’s just how I felt for a while after the release. Later on I realised how much I had learned by putting this together and that’s what really matters.
Would I do it again?
Hell yes I would!
Just a quick update this time. A while back I mentioned that I had been doing some technical reviewing on a LibGDX book, and now it’s finally out.
Learning LibGDX Game Development by Andreas Oehlke explains the basic features of the mighty framework whilst building a simple platformer from scratch. Even though it isn’t an advanced read, it’ll surely help whoever doesn’t have a huge deal of experience in games development and wants to give LibGDX a try. I really like that approach for novices, as it illustrates quite clearly how the jigsaw fits together.
Check it out on the Packt website to see whether or not you’re interested and stay tuned because they usually feature loads of bargains/bundles, specially during the weekends.
I’m pleased to say that Math Maze 1.3 is finally out on Google Play. This release has quite some more juice than the other ones as it’s the first to feature new content. Here’s the complete list of changes.
- 5 new levels (total of 40) including the new % operator.
- Polish locale thanks to my friend Konrad.
- Bug fixes (first one I found post release!)
The module operator gives the remainder of the division and it’s pretty cool because it allows me to add a new layer of complexity to level design. Expect things to get a bit more complicated in upcoming level packs!
Please, send your feedback my way through the mail button in the game, the blog, Google Play or any other way.
Quick update just to let you guys now that Math Maze 1.2 is now live on the Google Play Store. This is yet another update with tweaks motivated directly by incredibly wise and valuable user feedback. Here’s the small list of changes:
- Added option to disable vibration
- Now allows to move app to the SD card
- Increased help text size
I cannot thank enough those who are taking the time to play Math Maze and write a small review or send me an e-mail afterwards. I was aware of some of these little inconveniences but a few people raised new valid issues. The download count is far from being up the roof but the implication of certain users has certainly impressed me.
A side note for fellow developers. Up until now, I only knew this from articles, but acknowledging legitimate user claims by leaving a reply on Google Play and then fixing their issue is a great practise. They will show you appreciation and probably change their rating along their comment.
For the following days, the plan is to keep “promoting” Math Maze to try and reach its target audience and work on some real content. That is correct, new levels!
I released Math Maze 4 days ago and, even though it’s not on any top list of any kind, I’m getting loads of positive feedback through Twitter and Google Play itself. Only 17 ratings but averaging a total of 4.9 stars. Some of the comments might not even come from family nor friends! Impressive, isn’t it?
My intent was to make changes as per user feedback and so, today, Math Maze 1.1 went live featuring the following improvements:
- New languages: French and German
- Fixes to the Spanish localisation (shame on me, really…)
- Rate button added to the main menu
- Feedback button added to the main menu
Math Maze 1.2 is already on the way and will be available soon. Unfortunately, it won’t feature any new content just yet, that will come later. There are plans for, at least, 10 additional levels and I’ll take it from there once those are out.
Marketing was uncharted territory to me and it pretty much still is. I’ve been posting regularly on Twitter and Facebook and sent a few emails out to small games/educational sites. Surprisingly, Math Maze has been featured on The Android Parent and AndroidTapp so far. Additionally, I’ve been trying to reach out to local primary schools, we’ll see how that goes.
As much time consuming the process is, the net result is being really positive. The reward of learning this for myself is priceless.
Will keep you updated!