Mobile Game Developer

Hurdles Are Only Hurdles ‘Til They’re Not

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 care to venture outside. It's silly how much it enthrals¬†me. And slightly worrying. The whole process feels new and exciting to me, which is great - but doesn't this demonstrate how far removed we are generally from the methods of food production? That ziplock¬†bag of peas that you buy from Sainsbury's on your food shop every couple of weeks? It's easily the entire crop of five times the plant you see here. Just something to think about.

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 bloody game that the bloody song is bloody from. So instead of searching for, listening to, and ultimately closing the browser window on your earmarked (hah) earworm, you search for the name of the game. Which is like searching for a lighter that works in a power cut. (I'm currently awaiting a delivery of lighter fluid). 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 bloody 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. willow-pattern Happily, I can find the song at a moment's notice now that I finally know it's bloody name.

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.