Monday, 22 January 2018

Zombie Cannon Attack! postmortem

It's finally here! Anyone who's read my blog over the last few months will probably have seen me promise to post the Zombie Cannon Attack! postmortem which has been 'nearly finished' for ages now. I've been very busy with client work but I've finally gotten round to putting the finishing touches to it, hopefully no-one's been holding their breath in anticipation.

Zombie Cannon Attack! was released at the start of August 2017 first on Android, then on web portals (most notably Kongregate) and eventually even as a PC desktop download via and Gamejolt, just for the hell of it.

Zombie Cannon Attack! is a zombie-themed endless runner / launch game hybrid. Check out the release blog for more background. It was my second game and the first I'd developed entirely since leaving my office job to take over childcare responsibilities and work as a full-time programmer. For more on how the first year of that went, see my review of 2017.

Project scope

Zombie Cannon Attack! was initially meant to be a very small game to be made in a month or so, but it quickly expanded to two months and beyond. I eventually released after four months, the extra two months were needed to produce an Android version - of this the hardest part was integrating the plugins. Still a pretty small project, but also really late. That's not an easy combination!


I decided to do the art myself after using lots of free third party assets from different artists for my first game. The art from that first game never really gelled together into a coherent theme whereas ZCA art fits together well, the style also fits the game nicely. It's bright, colourful and not too serious. I'm happy to admit I'm not the greatest artist, but I really enjoyed it and learnt a lot. However I'm looking to buy a complete set of assets for my next game. To get noticed your graphics need to be better than just ok, and time spent drawing sprites is time spent away from coding.

An early screenshot...
...and the finished version. Hopefully the improvement is obvious.

For the music I used the excellent Incompetech, I was able to find a few tracks that really fit with my vision for the game. It's an excellent resource and I highly recommend it.

Android version

I didn't know what to expect from releasing a mobile app so I mainly made the Android version for experience, in particular I always knew the game wasn't really big enough to justify IAPs but felt the knowledge gained from learning how to integrate them would be helpful for the future. I'm still a little undecided as to whether this was a good decision or not. I certainly learned a lot but spending weeks figuring out how to use plugins I was fairly sure I wouldn't need feels like an indulgence in hindsight.

Despite the questionable design decisions, the main problem with the Android version was marketing. I didn't do much pre-launch other than Twitter and this blog, and again in hindsight my tweets were never generating the sort of buzz you'd expect to see for even moderately successful games. I wrote a few articles and sent quite a few emails but to no avail, for the most part it wasn't a good use of my time. Identifying that marketing was a problem isn't the same as finding a solution though, I found forums and blogs to write to post launch and next time I can try and tie it all together for release day but I've certainly yet to identify a silver bullet.

Zombies and saucers and brains, oh my!

All in all the Android version currently stands at a pretty poor 113 downloads and has made around 32p. From a commercial point of view this is obviously terrible, but even relative to the performance of the game on other platforms it's pretty bad, around half the development time to bring in around 11% of total revenue.
However there has to be a first time for everything and the knowledge I gained should help in future projects, but it is pretty clear that I need to think carefully about whether it's worth releasing an android version for each of my future projects.

For anyone interested in how I took an HTML5 game and turned it into an Android app, I used Cordova which is free software that essentially wraps my web game in a stripped down browser and packages it as an apk file that can be downloaded via the Google Playstore. It's pretty easy to use, especially if you're not interested in adding plugins for things like ads or iaps. I found a few helpful guides (such as here, but there are plenty more out there), and used free plugins (this one for IAPs and this for ads.)
The citizens of Brainsvillle were surprising unprepared for the zombie apocalypse

Web versions

I'd released my previous game, Super Endless Kingdom, on web only so unlike the Android release I had something to measure the web versions of Zombie Cannon Attack! against. It did much better than SEK which was good to see although it's still nowhere near being viable commercially.

If you go down to the woods today, it'll be much busier than normal and full of witches and zombies

I make my games using the excellent Phaser framework, which is very user-friendly with an excellent community behind it. If you're looking to get into gamedev I'd highly recommend it.


I'm actually pretty happy with Kongregate, compared to Newgrounds their discovery for new games is pretty much non-existent and their ratings are fairly harsh and rumoured to be marred by troll developers downvoting competition in the hopes of winning the weekly/monthly cash prizes, but their revenue share system is easily the best I've come across. ZCA has so far made a little over £2.50 from Kongregate and is still slowly adding to that every week. This despite the fact that I only received 35% revenue share instead of the 50% I'd have got if the game had been made exclusive to Kongregate, in fact technically I lost over 70p by releasing on other platforms.

That's a nice horde of rampaging zombies you have there, be a shame if anything were to ... happen to it.


Measured against the Newgrounds version of SEK it did pretty well, more than double the plays and a better rating. The really satisfying part was that it was featured on the front page and spent some time as the most played game of the week. Unfortunately the release was hampered by a bug that only showed up when the game went live on Newgrounds, the ratings suffered as a result so although it was well received I'll never know how much better it could've done, but it was a useful learning experience.
Commercially speaking Newgrounds is a really poor option though, their built-in monetisation is entirely geared towards flash games and means there's just no way for a small HTML5 gamedev to earn anything. Unless or until that changes I'll be staying away from Newgrounds for anything I have any commercial aspirations for.

The day I won at Newgrounds, luckily I didn't let the fame go to my head.


The Gamejolt release was a total afterthought to be honest, I wanted to release a desktop version for the experience and as a sort of completionist challenge that I set myself, so releasing the web version as a demo alongside the desktop version was an obvious step. Gamejolt unfortunately seems to take the worst parts of Newgrounds and Kongregate, discovery of new games again seems to be very poor but the site is also too small to generate any organic plays either. To be fair I put very little effort in to the Gamejolt release, but it's very difficult to see how any extra effort would have been worth it.

Desktop versions

As I mentioned above, the desktop version was more of a programming challenge than a commercial project (which is just as well really as I've yet to sell a single copy). By the time I released it on and Gamejolt I was pretty much ready to move on to my next project. As with the Android version, I went down a bit of a blind alley during development and added time to the project. However, again as before, I did learn a lot and I feel it's useful to get mistakes out of the way early on in my gamedev career in the hope that things can go more smoothly in future.

I started out trying to use Cordova again, but could only manage to produce a Windows store version. I then switched to using NW.js which I have to say was much easier to use (especially with the help of this excellent guide).

Something something zombie reference
Lessons learned

Even though Zombie Cannon Attack! earned over 5 times as much as my previous project and received a much warmer critical response, there's no escaping the fact that it was a commercial failure. Some decisions were taken knowing they weren't good in an immediate commercial sense but by building my skills and experience were hopefully an investment in future projects. Some decisions were just bad. For future projects I intend to focus first and foremost on releasing exclusively on Kongregate and only release on other platforms if there's sufficient interest to suggest it's worth my time. If I'd followed that advice on this project I'd be a whole 72p better off and have saved myself a few months, doing it that way once for the experience was useful but next time will have to be different.

Thanks for reading, I hope this has been useful to you or at least interesting. I'm happy to answer any questions so leave a comment or get in touch on Twitter.

Monday, 8 January 2018

Looking back at 2017

So 2017 is all done and dusted and everyone reading this has made it to 2018, congratulations! It's also been a year since I left my last job and took up coding full time, so it's a good time for a look back. To cut a long story short, I started last year with a bunch of assumptions which mostly turned out to be wrong but wrong in ways which largely cancelled each other out, so the plan I started with is still pretty much intact.

Assumptions made an ass out of me

The plan boiled down to making my savings last a year while I made and released games for web and mobile. Hopefully I'd make a living from this before my savings ran out, but I was aware this was a long shot. By making HTML5 games in JavaScript (using the excellent Phaser engine which I really can't recommend enough) I'd hoped to improve my coding skills to the point where I could find work as a web developer if it became clear I wasn't going to make it in game development, and to aid in this I was also following the Odin Project curriculum to learn web dev. As I mentioned earlier, this plan relied on a series of assumptions, most of which turned out to be wrong.

Assumption 1: My savings would last a year

Pretty straightforward really,  I'd worked out what I tended to spend and factored in how much of that I'd no longer need to spend when working from home. It soon became clear that I don't spend nearly as much as I thought I did though and even without any money coming in my savings were good for 16-17 months. 1-0 to me.

Assumption 2: Coding might be too hard

I'm not sure if this counts as an assumption, but it was certainly a consideration. One possible way my plan could fail was if I just wasn't good enough. I couldn't make a game that would run in other peoples browsers, it would lag, it would crash and do horrible things to their pc/phone etc. Or I'd be able to put a game out there but the technical difficulties of various monetization methods would overwhelm my fledgling coding skills, it wouldn't work on games portals or with ad platforms and I'd have no way of making any money.
As it turned out, none of this came to pass. I certainly had a lot to learn, and I've encountered my fair share of problems, but it turns out I'm a decent coder. I enjoy problem-solving and I haven't come across a single technical issue that I haven't been able to get past either with a coding solution or by designing my way around it. Yay me, 2-0.

Assumption 3: I'd have a lot more time

For about 18 months before I quit I'd been working 30 hours a week and putting in another 10+ at home on web or game dev. Adding that together with time spent commuting and I assumed I'd be able to make games, learn web dev, teach myself Spanish, start playing guitar again, something something exercise and anything else you can think of, while also taking over primary childcare responsibility for my little boy. Obviously this was nonsense, I do about the same amount of work now as when I worked in an office, and the things I didn't make time for then I still don't make time for now. 2-1, damn you reality.

Assumption 4: If I could overcome all the technical hurdles and release a working game, I'd be able to make at least a small amount of money

My thinking was that if I could make a game I was happy with and release it in working order I'd make some money to supplement my savings, then I'd refine the process with everything I'd learnt for my next game and do a little better the next time. Rinse and repeat until I was bringing in enough to stop relying on my savings before they ran out completely. The idea that I could release a decent game and make no money at all from it never really occurred to me, but there's so much competition in gamedev right now that the most likely response to a new game is basically 'meh'. I'd say this was 2-2, but it's such a big flaw in the plan that it's more like 2-3.

Assumption 5: My only choices were making games for myself or doing web dev work as an employee

I'll go into this a little more later, but by the time I'd released a couple of games and got a decent looking website up and running I had something I could show potential clients who wanted a game making. It's client work that has really saved this year for me, in fact I make more in 10 minutes of client work than my own games made in 10 months. So, 3-3. everything still to play for.

The Year in Brief


I spent my first month working on finishing my first game, Super Endless Kingdom, polishing what I could and boosting performance. I also created the first version of the Rubble Games site and built an overly complicated site for Super Endless Kingdom using Ruby on Rails to lock access behind a password. This later proved to be totally unnecessary and I stripped out the backend and remade the game page as a static site.


I started(!) to think about marketing, I created this blog and the Rubble Games Twitter account. I struggled to get playtesters for Super Endless Kingdom prior to launch and wasted a few weeks waiting before giving up and deciding to push ahead with release anyway.


I released Super Endless Kingdom on Kongregate and it basically sank without a trace. I eventually got some feedback and made some improvements but it was too little too late. To date the game has 610 plays on Kongregate earning me (in theory) a grand total of 55p.
A few weeks later I released on Newgrounds, where things went much better in many ways. I got more useful feedback and a lot more interest. It got around 5x more plays and a much higher rating than the Kongregate release but monetization for HTML5 games on Newgrounds is almost non-existent. However the feedback was pretty postitive, which I really needed after a disappointing month, and the game was also featured as staff pick in the Phaser newsletter.


Having learnt a lot about what didn't work I set out to make a new game. This game would be made and released in under 2 months and designed with mobile in mind (eventually released in August as Zombie Cannon Attack!). However this was also the first month I'd had to deal with working through a lengthy school holiday and my productivity suffered while I adjusted.


As Zombie Cannon Attack! took shape I tried to find a way to earn from it. I contacted various games sites about the possibility of them licensing the game or sponsoring it but didn't get any interest at all so I decided instead to go for a mobile release on Android.


I spent the next few months getting the Android version ready using Cordova, much of the time was taken up getting plugins for adverts and in-app purchases to work. I added some polish to the game itself, but nothing that made a major impact on the way it played.


Zombie Cannon Attack! released. I've almost finished the Zombie Cannon Attack! postmortem that covers this in more detail, I just need to find time to edit it. In brief, while it did noticeably better critically than Super Endless Kingdom it can't be considered a success by any means. It's currently 'earned' me £2.85.


I continued with post-release work on Zombie Cannon Attack!, but by this point it was clear I wasn't on a path to earning my way as a gamedev. I started putting much more time into my webdev course.


I put Zombie Cannon Attack! to bed with a Halloween update and started work on a new project, but I was still concentrating more on learning webdev. I went down a bit of a blind alley with a prototype for a clicker/idle style game before eventually settling on my current project - a sci-fi shooter/crafter. By the end of the month I had a semi-functioning protoype.


I got my first paying gamedev work for a client and everything else was basically put on a hold. It's been a great few months personally and professionally, but as far as solo indie gamedev stuff goes you could be forgiven for thinking I'd vanished off the face of the Earth. I've had very little time to work on my own game, so I've had very little to post about on this blog and so very little to promote on Twitter etc. I'm hoping to spend a little more time on my own stuff, but as I'm writing the end of year round up for 2017 a week into 2018 you can draw your own conclusions about how that's going so far.

So, in conclusion. Can you make it as a solo indie with no professional coding experience? Maybe, but you need to bear in mind that all your assumptions are wrong and to make it you'll probably end up working for someone else.

Thanks for reading. If you want to keep up to date you can also follow me on Twitter.
My latest game, Zombie Cannon Attack!, is available on all these platforms:
Android (desktop download)
Gamejolt (web & desktop)
Kongregate (web)
Give it a try and let me know what you think, feedback is always welcome.