Announcing Garden Match: Seasons

I’m very happy to announce my new game, Garden Match: Seasons! It’s a fun, relaxing, garden-themed match 3 game, and it’s coming soon to iOS!

Garden Match: Seasons – coming soon to iOS!

I spent a very long time wracking my brain for witty gardening puns for the title, but, in the end, pragmatism won. I couldn’t keep wracking my brain forever – otherwise it would never get published! Garden Match: Seasons is a match-3 game with gardens in it. It does what it says on the tin. Search discovery is a bit of a problem in the App Store, so I’m hoping that a title that tells you exactly what you’re getting will help.

Here’s a tranquil, autumnal scene for you to enjoy whilst you wait for the game to come out 🙂

Match Threes and Ghibli-esque Trees

I dropped the sci-fi adventure game prototype I’d been working on at the end of March. There were a couple of reasons for this decision: firstly, the scope was far too big – I didn’t see how I could cut it down to a reasonable size without compromising the project as a whole. Secondly, I realised that I’d set out to make something that I wanted to play, rather than something that has an established market waiting for it. As developer Winterwolves can attest, sci-fi doesn’t sell (very well, to women).


I was raised on Star Trek: TNG, so I’m a bit of an outlier. For my first game, I can’t afford to innovate. It hurts to have been so invested in something that’s never going to see the light of day, but that’s the games industry for you. Fail early, fail fast, fail often.

I decided instead to lean on my (not insubstantial) experience of building match-3 games to make – wait for it – another match-3 game. No matter how many of them I build, it never gets old, and there’s a market ready and waiting to snap up the latest titles. Selling to a saturated market has it’s own challenges. But better that than trying to sell something no one wants.

I expect to have the game on iOS at the beginning of September. If all goes to plan, I’ll follow up with an Android build in short order, and then, maybe, a PC build for the Big Fish crowd.

I’ve finished the core game programming, in-game graphics, the music, most of the sound effects, the user interface art and game animations (I’m on a tight budget, so I’ve been doing everything myself). The (slowed down) GIF below shows one of the match animations, animated in After Effects. (It’s a borage flower – they’re fantastic for pollinating tomatoes :))

I’m currently struggling with the last of the graphics. I’m vaguely pleased with how the trees for the level map turned out – not too shabby, for developer art. I absolutely did not know how to paint before June. Necessity, it seems, is the mother of getting sh*t done. I look forward to the day when I can afford to hire an artist.

Here’s another screenshot from the level map, part of a garden allotment.


Can you tell where I draw my inspiration from? :p


My tomatoes aren’t doing too badly, either :p


Perseverance vs The Sunk Cost Fallacy

I’ve just had a quick flick through my blog posts from last year. It makes me laugh, how much of a song and dance I made about learning Unity. It took a few months of struggle, but I’m in a comfortable spot with it now. Any game I want to create with it, I could do. Anything I don’t know how to do, I can learn. It’s amazing how much confidence you get from writing your own shaders 🙂

Don’t get me wrong – I still feel like I’m going to give myself RSI, what, with all the pointing and clicking you have to do in the interface (give me a Sublime Text any day!) The UI, being entirely alien to a text-editor jockey like myself, was the main cause of cognitive dissonance – not, as I had expected, the move from JS to C#. Unity is very opinionated in how it does things; in the end, it was simply a matter of agreeing to disagree, and doing things Unity’s way. Sometimes you have to write less than perfect code, rather than the glorious, perfectly encapsulated abstraction you had in mind. Does it grate? Yes. Does it matter? No. (Or, it might, later on, but you were going to go back and refactor anyway, weren’t you?)

You might wonder why I put myself through the trouble. I know JS pretty damn well, I could have easily written a mobile game (from scratch, with Impact.js, using Phaser (or whatever)) in half the time; wrapped it in Cordova and plonked it on the App Store, job done. So why didn’t I?

I’ve written a few HTML5 mobile games for clients. Some pretty big clients. And, clients being clients, they’re not bothered how much of a feat of engineering it was to get the same game working perfectly cross-browser, cross-platform, on desktops, tablets and mobile phones. They only care that sound doesn’t play in the Android stock browser on a (manufacturer modified) Jiazu N3 running Android v1.36.34x alpha-something or other when they hold the phone in landscape orientation whilst standing on one foot and hopping in a circle.

If it was painful for one client, I reasoned, what would it be like when your ‘clients’ are the general public? I don’t want to deal with one-star reviews and irate emails from players experiencing bugs on niche devices that I can’t possibly lay hands on. I’d rather spend more time up front and trust Unity to deliver a consistent cross-platform experience.

I appreciate that this rationale is contrary to my usual, lean-development minded take on things. There’s a lot to be said for getting an MVP released, and iterating on quickly based on customer feedback. But I’ve heard enough horror stories from fellow developers working on both desktop and mobile wrapped HTML5 games to confirm my views on this. Once my game is out, I need to be focused on player acquisition and implementing retention-focussed features – not firefighting edge case bugs and negative reviews.

So! That’s why – despite the fact that I love it to bits – I will not be using HTML5/JavaScript to build native(ish) mobile games.

In other news: PEAS! 😀

My lovely little veg garden is coming along – it’s already bigger than the herb garden I created last year. It’s amazing how a tiny plant – something that I could fit into the palm of my hand – is now almost as tall as I am, and provides me with fresh, delicious peas whenever I venture outside.

Chiptune Earworms

Have you ever heard a song or piece of music that you still think about years later – but for the life of you, you can’t remember the name of?

For me, the song came from a computer game. It’s driven me mad for years.

Every now and again, I’ll spontaneously hum the melody from one of the (usually Rob Hubbard’s) classics. Thing on a Spring, Monty on the Run, Druid, Ghosts n’ Goblins. I pop it into YouTube, listen for a while, and then carry on about my business.

It’s pretty difficult to find a song on YouTube when you can’t remember the name of the game that the song is from. And trying to find the name of a C64 game on Google is like searching for a lighter that works in a power cut.

Both you and your productivity are inevitably, inescapably, lost – again – down the rabbit hole of the internet. Trawling the same tired old blogs, broken and abandoned forums, and even *gasp* Reddit, in the vain hope of a shred of a hint of a clue that might point you in the right direction. All whilst exasperatedly humming the song that you can’t get out of your head because you can’t remember it’s damn name.

Well, I’m happy to report that my years of intermittent searching have finally dredged up a result. The name of the game is Willow Pattern by Firebird.



What happened to PlayZap?

A couple of years ago, I developed a HTML5 mobile game portal. Built with Node.js at the backend, and Ratchet.js (something like a precursor to Bootstrap, but specifically for mobile devices) on the front end, it was one of the first of it’s kind.

It was reasonably successful – successful in so far as it achieved the initial goals I set for it, but unsuccessful in that I couldn’t (or didn’t know how to) pivot and turn that success into a self-sustaining business.

In 2012, HTML5 games were in their infancy, and, being a web developer with a keen interest in games, I wanted to do something to push the technology – to show what it was capable of. I’m not going to pretend that my motivations were entirely altruistic – as a freelancer, growth in adoption of HTML5 meant that I could write games for clients instead of websites, which at that point I had been doing for years. The new tech was exciting, it had promise, all the right noises were being made, I wanted to work with it. I was going to work with it (I did work with it!), but it’s even better if you can get paid for it.

I decided to create a games portal, solely for HTML5 mobile games. Developers would be able to show off their games and profit by the adverts shown in them, and I’d have something to point to to prove how awesome HTML5 really was. I shipped PlayZap in early 2013.

After a slow launch, adoption quickly picked up as I spent a bit of time on marketing. I had thousands of users each month – both players and developers seemed to really enjoy the site. The stumbling block arose when I tried to think of how to turn it into a business. Server costs were negligible (I was hosting a dedicated instance on EC2), but I didn’t want to self-fund it forever.

As the tech was new, there wasn’t a business model as such to follow; but it was supposed that it would work in a similar way to how the Flash ecosystem used to work. Developers would integrate advertising APIs into their games, which were then (in lieu of an exclusive licence bought by a portal) shared widely on portals. It was a mutually beneficial relationship – portals provided the platform and the traffic, developers provided the games. The more eyeballs, the more gameplays, the more ad revenue for both the developer and the portal.

It didn’t quite pan out that way. In fact opposite happened – ad providers like Mochi, rather than pivoting, simply shut down.

There was – and, as far as I’m aware, this is still the case – a total lack of HTML5 ad providers that cater to mobile web games. Without providers like Mochi, early adopters turned to AdSense, on the assumption that, as HTML5 games are basically the same as web pages, they’d be able to use AdSense in their games. Some tried to use the square banners as interstitials, and many were banned for it. No one tried to fill the gap in the market, and the few that did have a suitable API placed such restrictions on their APIs’ use as to make implementation infeasible.

Without an interstitial ad provider on the horizon, all I had was banner ads that didn’t cover the bills.

In the end, PlayZap was very much a project without a business model. Others have pivoted to providing games for messaging apps, or used the partnerships they forged with developers to move into the mobile space. HTML5 has landed, but it found it’s footing elsewhere.

For me, the portal served it’s original purpose. I shuttered PlayZap earlier this year.

Do I regret doing it? Not at all. PlayZap started as a learning experience, and ended as a learning experience. I learned more about responsive user experience. I learned Node.js. I learned about hosting MongoDB in a production environment (hint: Monit is your friend). I learned that, if you want to turn something into a business, you need to know what your business model is *before* you build it. All valuable lessons.