From Idea to App Store: My Adventure in App Development

What follows is a reasonably lengthy account of how my first ever game went from a vague idea to breaking the top 25 apps in the App Store.

Introduction

Over the past year I’ve learnt to program and have successfully released a reasonably popular iOS game, Pumped: BMX. It’s been a crazy year and I’ve learnt so many lessons, from solving programming problems to communicating with press, avoiding pitfalls, and dealing with money. Hopefully you’ll read something interesting, or even useful, but be warned: any insight you gain from reading this may be dangerous, it could all just be blind luck. Read on at your own risk!

The Place

In the Summer of 2011 I was living on Reunion Island in the middle of the Indian Ocean where I’d moved a few months earlier to try my hand at teaching English.

Unfortunately there wasn’t much work available, so I fell back on my basic web skills and did some freelance web development. It kept me in baguettes, but unfortunately it didn’t rush me off my feet… I got bored fast.

The Idea

A long time ago I used to play ‘Dirt Bike’, a game made by a guy called Brad Quick – you can still get a (less than stellar) version of it for Android. There was a basic level editor and an awesome bike editor, so being a BMXer I obviously used it to make BMX jumps and BMX bikes. It was a bit of an obsession for at least a year, at least until girlfriends and beer came along. I emailed Brad a fair number of times begging him to put a BMX sprite in place of the motocross rider, but he never got back to me. I soon gave up and forgot all about it.

An early prototype of my main character

Fast forward ten years and there I was, loads of time on my hands, on a desert island with almost zero distractions: why not make a video game?

Engine

Even the thought of Xcode scared me half to death, so when I stumbled across Corona SDK I was thrilled. For the next two months or so I did tutorials, learnt what I could of Lua and made myself a very simple ‘pop the bubble’ type game, but with falling boxes. It was a great learning experience (especially the tutorials by Peach Pellen), and I was keen to start working on my BMX game.

I had an incredible fear of this icon.

I returned to the UK shortly after, and decided to get down to business. Unfortunately I stumbled at the first block: the physics joints I needed to make my bike refused to work properly, which turned out to be a serious issue with Corona. I was screwed!

Except I wasn’t, not entirely anyway. After a lot of internet research and speaking with friends I ditched Corona and switched to Cocos2D… so I had to learn Objective-C and use Xcode. Shit.

Learning Materials

At this point in other projects (e.g. time lapse photography, learning guitar) I’ve been known to lose interest (i.e. give up) and move on to the next thing, but this time I made a conscious decision to push through. I bought a couple of books – “Programming in Objective-C” and “Learning Cocos2D” – and started reading.

Learning Cocos2D – the Viking game!

Well, I read for a bit. I got a few chapters into both of them (and therefore a short way into the “Learning Cocos2D” project) before I got itchy feet and started doing my own thing. I quickly learnt that hitting the internet was the quickest way to solve problems, and the Cocos2D forums, Stack Exchange and Ray Wenderlich‘s website quickly became my top visited sites. I think in the year I’ve been working on Pumped I’ve started maybe 3 threads asking for help, 2 of which I’ve then gone on to answer (and post the answer to) myself. There are so many people out there doing the same thing, the chances are that several people have already encountered your problem. Always search before you ask!

Splitting Problems

I spent a lot of time worrying about where to start – I vaguely knew what I wanted to do, but had no idea where to begin. I kept drilling down through the game idea to find what was essential, until I finally got to ‘drawing lines’. It seems ridiculously obvious now, but to get there actually required me to think a lot about how the game would function.

I was insanely pleased with myself after this.

That technique – splitting the desired result up into tiny, tiny pieces – gave me a lot of confidence, and was how I worked for the entirety of the project. If I was stuck on something it was normally because I was trying to solve one problem that was actually several smaller problems.

So once I’d got to the idea of lines, I spent a whole day writing some code to allow myself to draw a line on my iPhone with my finger. The next week it was redrawing lines, then editing lines, then deleting points, then dragging the screen around, then zooming, etc. A few weeks later and I realised I had the beginnings of a level editor.

That was it, I was off!

Months Fly By

I’d love to have some great anecdotes about what happened during the development process, but the truth is that a whole lot of not very much happened for the majority of the time. Mostly I got stuck a lot, I read a lot, I kept a very loose “to do” list that would get massive, I’d stop ticking things off it and start a new one. My Evernote is like a “to do” list graveyard.

I was working full time, getting home from my day job and doing another full days work on Pumped for… oooh, 8 months? It was knackering. If you want to make a game you have be prepared to put the time in, and that time is measured in hundreds, not tens, of hours.

The beginnings of the level editor.

There were several periods where I felt like I was getting nowhere and started losing motivation – this is where having a development blog really comes into its own. There’s nothing like seeing / reading how far you’ve come to kick yourself back into gear. All of the images you see here are from my development blog, which is hidden somewhere deep in the interwebs.

Gameplay – it looked like this for a long time.

Slowly but surely the game got closer to completion, and as it started to shape up I decided to invest some money in some professional artwork. As it was really just a hobby project I’d been doing all of the artwork myself, so the decision to pay (out of my own pocket obviously) for some art changed how I saw the game. It wasn’t a huge amount of money, but it was enough for me to take things a bit more seriously. It took a couple of tries to find the right artist, and I still had to slice the character up and do all of the animations, but having awesome artwork really helped make the game feel ‘proper’.

Game Testing

I roped in some good friends to help test Pumped very early on in the development process. Having their input early on really helped shape the way the game plays – including some big decisions on game mechanics.

Testing, testing and more testing.

For example, during very early prototyping my plan was to essentially use the same mechanic as Tiny Wings where you hold ‘pump’ on the downhills and let go on the uphills. I tried hard to get it working and I got reasonably good at it, but during testing no-one else could get the hang of it. One of the testers suggested trying a more classic “hold to go” control scheme, which I was dubious of, but it was immediately apparent during the next testing session that it was the way to go. The final mechanism ended up being a weird hybrid blend of the two (for that “authentic BMX feel”), but had it not been for play testing I probably would’ve persevered for months with a control system that wasn’t going to work.

Early art, and a ‘grizz air’, a trick that didn’t make the cut.

The guys were great throughout the development of the game, and have definitely played Pumped more than anyone else in the world. Aside from a few free beers they did it out of the goodness of their hearts too. However, they’ve been so useful I decided it’s a probably a good idea to keep them sweet, so I bought them stuff to say thanks!

Marketing Begins

Some initial art I commissioned. I was not a fan.

At some point during development there was a brief flash of chat about Pumped on Twitter – I think Lima Eltham (a professional BMXer) showed a test version to someone else and it sparked a brief bit of buzz. I got very over-excited and created a terrible prototype video, posted it on Reddit and sent it to a gazillion people on Twitter. I got a retweet from another pro BMXer called Mike Aitken – a bit of a legend – and I felt like a superstar!

The second attempt at commissioning a character – jackpot!

That was months before Pumped was finished, but putting the video made me realise I had to finish the game. I’d showed people now, it was a ‘thing’, and I started feeling the pressure! I went quiet after that, aside from setting up a Facebook page and posting the occasional screenshot.

Submission

After endless weeknights of coding and endless weekends of testing the latest level tweaks, the game was finally finished. I tweaked my app description, readied my screenshots and submitted the game, and had several thousand beers to celebrate.

The Waiting Game (or, Marketing Continues)

The longest 11 days of my life.

I spent most of this time creating and tweaking the release trailer (waiting for a release date), and checking my emails every 5 minutes. I’m not normally one to lose sleep, but I was waking up at 4am and checking my emails on a nightly basis. I was tense! Thankfully it was accepted first time, and I could really get to work. It had been accepted just in time to hit my target of the Olympic BMX finals, giving me 5 days to get people to watch the trailer, get out promo codes, and generally whore myself out as much as humanly possible.

I’d collated a list of game websites that I emailed with promo codes, very few of which got back to me. I definitely could’ve handled the games industry side of things a lot better – I wrote a template and emailed the same thing to everyone, with a few lacklustre screenshots. It felt a bit shoddy, and I’ll be making a big effort to do better next time.

However, I did OK with my main target, the BMX industry. I secured interviews on two big BMX websites (Ride UK and Props BMX). I also hit up Twitter and Facebook with a passion. One afternoon I sent so many messages to BMXers that Facebook decided I was a spammer: I had to prove who I was by identifying friends!

 

I hit every forum I could think of, went cross-post crazy on Reddit, and tried to be as active as possible on Facebook and Twitter.

The day before release, I double checked everything. Good job I did too – I’d somehow forgotten to set the release date! If I hadn’t double checked the details the app would be releasing on 31st December 2013.

Oops.

Absolute disaster averted, marketing done, there was nothing left to do but wait.

Release Day

I had some early reports from Australia that Pumped installed and ran, so that was one worry out of the way.

It just so happened that on release day I was off to watch some Olympic rowing, so I was up and away from my computer by 5am. The first I knew of any success was a friend who texted me something along the lines of “You’re at no. 97!”. I was thrilled! Top 100!

About 30 minutes later, “70! Bastard!”

Another 30 minutes, “57!”

And another, “Top 50!”

My heart going at a thousand miles an hour, I got back to Oxford and I got in front of a computer. I spent most of that day refreshing iTunes, commenting on instagram photos of my game and responding to tweets.

I ended the first day at no. 27 in the UK charts, no. 21 in Australia and no. 20 in Latvia (the winners of the Olympic BMX racing). I was also featured as “New and Noteworthy” in Australia. It was surreal.

I boasted about “beating Angry Birds”, but really it was “Angry Birds: Seasons”. Almost.

Pricing

I released the game at £1.49 / $1.99. My rationale behind the pricing was that it was a niche game, and therefore anyone who wanted to play it wouldn’t mind paying the slightly higher (but let’s be honest, still very low) cost, and I wanted to make back the money I spent on art (around £400/$600).

Secondly I think even the modest increase from £0.69/$.99 rules out a lot of impulse purchases, which would have no doubt increased the number of “it’s too hard!” and “I don’t understand!” reviews no end – this was a game made for BMXers after all.

However, had I believed for a second that I would get as high up the charts as I did I may well have released at £0.69/$.99 – who knows how high I would have climbed?

The Present

So, that brings us up to now, sort of. The reception has been awesome, it’s actually turned out to be popular with a wide variety of people, and I have hundreds of 5 stars reviews on App Stores around the world. I’ve seen countless photos of people playing my game rather than actually riding their bikes, and best of all I can go to skateparks and boast about being the guy who made Pumped!

I did have a brief period of ‘post game depression’ – I’d finished the game, what was I supposed to do next? Thankfully that didn’t last too long, and for the most part I massively enjoyed the success of the game.

I’ve tried to stay very active on Twitter, Facebook and Instagram (I love checking out Instagram photos) and I think I’ve mostly succeeded. I often get called ‘you guys’, have had a bizarre number of business proposals, and have built up a nice collection of photos of professional BMXers playing the game.

Pumped: BMX features in an Etnies roadtrip article on The Come Up.

Work hasn’t stopped though – there were a number of bugs in the game that came out pretty quickly, and I decided that I’d add some extra levels in a free update, which I released today.

Money

I don’t want to go into specifics, so I’ll just say this: it’s ‘new car’ money, not ‘new house’ money, and it’s all going straight back into my next project (minus a new iMac when Apple get around to updating them). The graph below shows what I’ve read and seen countless times – a day one spike followed by a long decline. That’s one month of sales figures – it’s been pretty consistent since.

Android

The Facebook page could be renamed the ‘Where’s the Android version?’ page. I’m not in a position to talk about that at the moment, but watch this space!

Final words

So. I made a game. It’s been insanely hard work, I feel like I’ve had to learn so much, not just about programming but a whole host of things including dealing with outsourcing, design, marketing, social networking, finances and generally acting like a professional. I’m still trying on the professional part.

Matt Priest plays Pumped: BMX backstage at the Olympics

It’s definitely hard work, but also the most satisfying thing I’ve ever done. As mentioned a long way up the page, I’ve been guilty of jumping from project to project in the past, and I’m so proud of myself for seeing this one through to end.

I’m by no means done with games – this is just the beginning! Eventually I’d like to be able to dedicate a year to making a game, but for now I’m happy working two jobs, slowly building up the war chest that will finance that year. I’m in no rush.

Pumped: BMX is available now from the iTunes App Store.


16 Responses
  • richtaur Reply

    Thanks for sharing your gamedev story, lotta great info here. And congrats on releasing your game!

  • Colby Ludwig Reply

    Excellent post, a great read. Been trying to get into Objective-C development myself for the last while, but high school has been hitting me hard lately and am hoping to get back into it winter break.

    I wish you luck on your next project (whenever you decide to embark on it), and congratulations on making an awesome game!

  • Rommel Reply

    Great Blog! Thanks!

  • Kyle Shankin Reply

    Excellent write up! I really appreciate you taking the time to share this information. I’m getting into game development (from web development) and have the same issue with picking up and dropping projects, you’ve also cleared up a lot of questions I had about marketing. I think one message rings clear in this article, hard work and discipline pays off!

  • Mike D Reply

    Great work on the game Adam. Super impressed. I think I was also one of the first people to beat “The comp” (New level update) and I can say I love it. Works well and tons of people are using it. Good to hear your story behind it!

  • mike Reply

    Thanks for sharing your story!
    I’m happy to hear you made it so high in the rankings, which requires not only a good game, but a lot of work in marketing it too! I too have had this same experience, we made a good niche game (www.myvirtualgirlfriendgame.com) then promoted the hell out of it, to get it exposure, and some major press was published on it. MSNBC, Kotaku, and Even Comedian George lopez did a 1 min monologue on it. It’s such an awesome feeling when you hear about a celebrity that plays with your game.

  • Aidan Rooney Reply

    Really interesting to read :D

    I personally love this game, it’s so well done and I couldn’t think of any improvements needed.
    Can’t wait to see more from you!

    Aidan Rooney

  • Margalus Reply

    Incredible read and so inspiring too! Great Job Adam :)

  • Jeremy W Reply

    I love the game! I play it so much, it just feels so good. I’m too old to ride big lips anymore, but this gives me some of the same satisfaction.

  • Collin Reply

    Wow, thanks for sharing this story in so much detail. I’ve recently become interested in getting into the iOS dev scene. I might take a different approach though – learn what can be done and basic theory, then wireframe ideas and outsource the coding and do the design myself.

    Anyone seen any stories of people doing it this way?

  • Sagar Reply

    Thanks mate for the whole story. That surely helps when you are about to abandon the boat thinking there are no shores… thanks once again.

  • jon Reply

    by far the sickest game i play but we can do so much more for the interest of bmxers keep in touch i got some sick ideas

  • Mustafa Reply

    Thanks mate. great story. Inspired me!

  • Mustafa Reply

    I donot play game so much. But I just bought your game to support you. Keep going.

  • Bharat Reply

    Stumbled upon this today. Wish you good for all the future adventures and hope you will achieve many ‘new house’ levels.

    I too was scared of that particular icon but slowly coming to terms with it. Apart from being inspirational, your blog has also introduced me to many tools and tutorials. Thank you.

Leave a Reply


nine − 2 =