Tag Archives: Android

Math Maze postmortem

math maze banner

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



  • Eclipse
  • Inkscape for all the graphics
  • Tiled as a level editor
  • TexturePacker to optimise textures
  • Adobe Flash and Adobe Premiere to produce the trailer

Most of the time I worked on my own but, luckily enough, I got help from a bunch of people in areas such as localisation, SFX (Ross Tregenza) and OST (Evergreen Studio).

Math Maze packed textures
Math Maze packed textures

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.

Current user installs over time
Current user installs over time

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.

Current ratings on the Google Developer console
Current ratings on the Google Developer console

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.

Repository progress

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.

Help tip before one of the levels
Help tip before one of the levels

Content generation

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.

Designing a level in Tiled
Designing a level in Tiled

Player engagement

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.

The mission system in Jetpack Joyride is a very engaging feature
The mission system in Jetpack Joyride is a very engaging feature

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.

Closed alpha

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!

Math Maze UI in Inkscape
Math Maze UI in Inkscape


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!

Math Maze 1.2 update

google play icon

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!

Stay tuned.

Math Maze 1.1 update

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
New buttons on the main menu screen
New buttons on the main menu screen

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!

Math Maze 1.0 is now on Google Play!

math maze relased
Today Math Maze 1.0 went live on Google Play!


If you don’t know what Math Maze is, please check its dedicated page on this blog.

Go, download it, share it with your friends, like the Facebook page, drop me feedback and give it some shiny stars (preferably 5 of them). You won’t be making me rich because it’s a free download and doesn’t feature ads of any kind. However you might help me boost my insatiable ego… Or something like that.

Math Maze shipped with 35 levels and 5 languages but will be receiving extra content shortly. 3 more languages are confirmed, I have a few level packs in mind and I’ll also be fixing any issues people find. Luckily enough, it’s behaved flawlessly, as far as I know.

Please do report any issues were you to find them.

Even though it’s been 5 busy months of hard work after my full time job, I don’t regret a thing. I’m quite proud of what I’ve achieved, as Math Maze looks decent and plays well even on humble devices. I guess, it’s something considering I’m just a mere programmer having to do design and art. Let’s not forget about PR and the trailer, areas that were uncharted territory for me up until this point.

Cannot possibly forget to thank everyone who’s helped me on the project: soundtrack, sound effects and localisation. Math Maze is a hell of a lot better because of them. Check the credits for more info.

In the upcoming days/weeks, I’ll do what I can to post further details about the development process, fun facts and more bits and pieces that may remotely seem interesting to someone.

Escape the maze!

Holidays & Math Maze update


Oh my… The posting rate has dangerously decreased lately! Before you judge, know that there are a couple of very good reasons for it. First and foremost, I’m on holiday, back in Cádiz, my hometown to enjoy a little bit of sun and work on my tan. It’s a small charming beautiful city with amazing beaches and prohibitively delicious places to eat .

Fun fact: its 3000 years of history make it the oldest city in southwestern Europe.

Before I took the plane, I’ve been working hard on Math Maze. Even though the code is stable, my pre launch stage task list was considerably big including level balancing, localisation and PR.

Marketing and PR, what a pain in the arse!


Math Maze will be a free download with zero ads as I simply want it to be played by as many people as possible. To try and get some coverage for it, I had to get a lot done: Twitter and Facebook presence, press kit, screenshots, high quality trailer and write a ton of emails. At least I’m getting there.

WIP screenshot of the Math Maze trailer
WIP screenshot of the Math Maze trailer

This GDC talk on reaching out to the press and the making of the Aquaria trailer for iPad are being incredibly helpful.

Good thing is, I’m learning so much with all this process. Some of the topics: localisation, filming a trailer and creating a press kit deserve a whole post each. Will try get to it once I’m done with this.

Talk soon!