Archive for January 24, 2013

Zombie Outbreak Simulator for iOS: Sales report

As an indie game developer, I find it very helpful reading articles by other indie game developers about what did and didn’t work for them. This is a great source of ideas for things to try, and helps to get a feeling for the kind of results to expect. For example this great post by The Game Bakers summarizes their experience as well as the experiences of a number of other indie developers.

So in the spirit of ‘giving back’, I thought I’d write up a post on how sales have gone for Zombie Outbreak Simulator on iOS.

Zombie Outbreak Simulator for iOS version 1.0 (iPad)

Jay and I started Binary Space way back in February 2009. In November 2009 we released the original Zombie Outbreak Simulator for the web, and then in April 2010 we released the original Class 3 Outbreak. In April 2011 we went into open beta of the new Class 3 Outbreak, which is based around editing your own maps.  All up these web versions of our games have been played over 3.8 million times.

Up until that point we’d been developing everything in our spare time. In mid 2011 we started to ramp up development as we’d been awarded funding from SA Film Corp, but then everything went downhill when the funding fell through. We decided to put the web version of C3O on hold for a while, and in September 2011 announced that we were going to focus on porting Zombie Outbreak Simulator to iOS. We chose to port ZOS first as it was the simplest thing possible, and we figured we would see how it went and then go from there.

After about 7 months of development we started beta testing in March 2012. During this time we asked a number of reviewers if they’d be interested in reviewing a beta via TestFlight, but we got virtually no response – most said to get back to them with a promo code when it was ready to release. I suspect most reviewers are busy enough, that they’re not very interested in reviewing beta apps which may never get released. We did however get a nice ‘coming soon’ writeup from

After a couple of weeks fixing issues reported by our beta testers (thanks testers!), we submitted the app to Apple for them to review. There were a few hiccups with the review process, but finally it was approved for sale on the 4th of April 2012.

We set the release date for the app to the 11th of April, to give us a bit of time to try to send some promo codes to reviewers. We sent off a bunch of promo codes, but again we didn’t get a huge response – although we managed to get some good writeups from and

On the 11th of April 2012 we went live on the App Store!

Zombie Outbreak Simulator on the App Store!

We decided to initially release with a price of $1.99. Although it was a pretty simple app and there wasn’t a lot to do besides tweaking some parameters, we had put a lot of effort into it over the years so figured it was worth pricing it above the minimum of $0.99. Also starting at $1.99 gave us some room to put it on sale if we wanted to.

We got a few more reviews, such as on PocketGamer, although some weren’t very favourable, such as App Advice “absolutely overpriced at $1.99” or TekShot5 “Please, whatever you do, stay far away from this app”. Oh well, I guess it wasn’t for everyone!

The following is our daily revenue (in $US) and rankings (in the US app store), for the first 5 and a bit weeks.

iZOS profit April to May 2012

iZOS rankings April to May 2012

On day 2 our profit peaked at $870. We had been used to receiving a few dollars a day back when we had ads all over our web games, so this was huge! On that day our US rankings also peaked at #11 in the iPad Simulation Games category.

As expected after the initial peak our revenue steadily declined over the following couple of weeks. By the 23rd of April it settled at about $150 a day.

Then suddenly our revenue jumped up to about $400. For the first couple of days we didn’t know why. Then we discovered that we’d been featured by Apple in their Staff Favorites section, in the all-important US as well as in Canada, Brazil, Mexico, Spain and 14 other countries! Woohoo!! Thanks Apple Staff!

iZOS featured in Apple Staff Favorites!

We decided to capitalize on the feature by dropping our price from $1.99 to $0.99. We figured that while we were visible this would help push us further up the rankings, hopefully increasing our visibility and ultimately resulting in more sales.

The experiment worked – our revenue rose up towards $500 per day, and our rankings kept going up too. We peaked at a ranking of #3 in the iPad Strategy Games category. We got up to #34 in iPad games, and #131 in all games. We even made a run at the Top Overall rankings, reaching #301.

My crazed refreshing of iTunes during this time didn’t quite manage to catch our peak of 3rd place; here’s a screenshot of when we were 4th. I had signed up to appFigures to keep watch on our rankings – their stats say we made it to 3rd that day… To be ranking up with games like Plants vs Zombies and Flight Control was amazing!

iZOS rankings peak

Our goal with iZOS was to release the simplest thing possible, see how it went, and then go from there. So the first release of iZOS contained only a single map in the Netherlands, much like the original web version of ZOS only had a single map in Washington DC.

One of the common complaints from players of iZOS was that it only supported one location, so we decided to keep the web version of C3O on hold and develop an update to iZOS to expand the number of maps to 10. We submitted this to Apple right before we noticed the Staff Favorite feature. After noticing the feature we thought it would be great if people seeing the feature could get the updated version with more maps, so we put in a request for an expedited review. Apple granted our request (thanks Apple!), and our new version went live before the feature ended.

After a week we were removed from the Staff Favorites section, and our sales and rankings promptly dropped.

We had a bit of a bump around May 10th when we momentarily jumped up to 1st place for iPad Simulation Games in Japan, even ahead of Minecraft and Sim City!

iZOS rankings in Japan May 2012

By the 5 week mark our revenue had dropped to about $80 to $100 per day. Up until that point we’d made a total of around $11,500 – a good result, but not enough to make a living from. We were inspired by a great series of posts describing the sales of Flower Garden (post one, two, three), where the developer described how he turned an app with a typical sales chart like ours (initial peak, falling off to not much) into a decent income. So we decided to try experimenting with some things, to see what we could do.

The first thing we tried was setting the app to free for the weekend of the 19th to 20th of May. We’d heard that dropping an app to free would result in a large number of downloads, due to all of the automated sites which watch for price drops. With luck the people who got the app for free would tell some of their friends, and we’d see sales pick up after we went back to paid. We gave away about 37,000 free copies of the app that weekend. But it had exactly zero effect on our declining revenues and rankings.

iZOS profit May to June 2012

iZOS rankings May to June 2012

Other than a momentary spike in early June (no idea what caused that!), we were heading down to around $25 a day.

One of the techniques which Flower Garden had used to great effect was to add some in-app purchases – with IAPs resulting in around 80% of monthly revenue. So we thought we’d try adding some IAPs too. We had a few ideas for IAPs, but the first one we decided to try was to add bombs. The player could bomb the zombie hordes from above, and keep track of zombies killed – and the collateral damage of unfortunate civs. Given that ZOS is just a sandbox app with no objective, the bombs didn’t really achieve anything, they were just for laughs.

Bombs in ZOS for iOS

We had two types of bombs (Mk81 and Mk82), and we decided to give the player 100 Mk81 bombs for free each day (via a nightly supply drop). Mk82 bombs could be purchased, and extra Mk81 bombs could be purchased if the player ran out. For both types of bombs we had four price points, offering a discount per bomb for the higher price points.

iZOS bombs

We released the update with bombs on the 22nd of June 2012. Here’s the effect it had on our combined revenues:

iZOS profit June to September 2012

On the second day after release our revenue spiked up over $200! But clearly the novelty soon wore off, and it started to drop again. During July and August the revenue for sales of the app itself stayed fairly constant around the $20 to $25 per day mark. The bomb IAPs managed to double the revenue to around $50 a day through July. During August IAP sales dropped further, to the point where our total revenue was closer to the $30 to $40 range – still better than without IAPs, but only marginally. Moving into September, both the app itself and the IAPs began heading down to new lows.

With IAPs in place, we thought it might be worth trying switching the app to free again. In theory we’d get another burst of downloads, and with luck some of those people would want to buy some bombs. This time we switched the price to free for a whole week, from the 6th to the 12th of July, during which we gave away 27,000 free copies of the app. IAP sales volume did increase, but only approximately double – so roughly enough to cover the normal sales of the app itself that we were no longer making. We therefore switched back to paid when the number of downloads dropped (from approx 8000 on the first day, to approx 1000 on the last day).

It’s interesting that the second free promo gave away less free copies than the first, even over a longer time frame (27,000 copies in seven days versus 37,000 copies in two days). Maybe apps don’t get picked up by as many sites when they drop to free more than once. Maybe a lot of the people who like free apps already got it the first time. Maybe we were less visible because our rankings had dropped by then. Maybe people are wary of free apps with IAPs in them. Who knows!

Another idea we had to potentially increase revenue from ZOS on iOS was to release a free version with limited content, with an in-app purchase to upgrade to the full version. The theory was that a free version would be downloaded by more people, with some small percentage of them purchasing the upgrade. If the volume was high enough, we might make a decent return.

We released Zombie Outbreak Simulator Free on May 24th 2012. By default a single map was enabled, with limited infected options. There was a single IAP for $0.99 to upgrade to the full version, enabling all 10 maps and all of the options.

Zombie Outbreak Simulator Free for iOS version 1.0

ZOS Free for iOS

On the first day downloads peaked at about 500, then gradually dropped, settling at around 100 per day by July and August. We also added the bomb IAPs to iZOS Free, releasing them on the 5th of July (delayed a bit from the release of bombs in the paid version of iZOS, due to the iZOS Free update being rejected by Apple the first time). However, sales of both the upgrade and bomb IAPs from iZOS Free were consistently low, averaging around $5 to $10 per day.

iZOS Free profit May to September 2012

In June 2012 Apple announced iOS 6 – including the announcement that they were removing Google Maps and replacing them with Apple’s own maps.

I downloaded the beta version of iOS 6 to try out the new maps, but they weren’t good enough for iZOS. So we decided to remove the Google Maps, and replace them with some embedded aerial photos. Due to the size of the embedded photos we had to reduce the total number of maps to five.

We released the update on the 13th of September, just after the iPhone 5 was officially announced, about a week before iOS 6 was due to be released. Here’s the combined revenue of iZOS and iZOS Free (including all IAPs) for the next three months:

iZOS and iZOS Free sales September to December 2012

After releasing the embedded maps update, sales went up to about $50 per day (from about $25 per day before hand). Sales from iZOS went up around 50% (from about $20 per day before to about $30 per day after). Most of the growth has come from iZOS Free, where sales were about $5 to $10 per day before but jumped up to about $20 per day after.

What’s interesting is that for a game which was meant to be about “zombies on Google maps”, it seems to be more popular without Google maps! Maybe people appreciated that it no longer required an internet connection (especially people with iPods who can only use WiFi). Maybe people noticed that there was an update and so were reminded to play the game again. In the update we also changed the supply drops of free bombs from every day to every hour – maybe people liked having more bombs to play with. Maybe lots of people with a shiny new iPhone 5 were looking for an app to buy. Who knows!

Finally, here are the combined sales for the rest of December 2012, through to now:

iZOS and iZOS Free sales December 2012 to January 2013

So, still mostly around the $50 per day mark. There was a nice boost at Christmas from all those shiny new iDevices and iTunes gift cards, but nothing earth-shattering. When developing an app it always seems like it would be a good idea to get it out by Christmas. We started ZOS for iOS around July/August 2011, and without any real idea of how long it would take I had been thinking “it would be good if it was out by Christmas”. The reality was it took longer – we weren’t ready until March the next year. But the blip in sales from Christmas suggests that targeting Christmas may not be worth it – especially when taking into account the increased competition from all of the other apps being released at that time of year.

On the 3rd of January I released an update to add support for the iPhone 5 to both iZOS and iZOS Free. This doesn’t seem to have had any obvious effect, although it’s early days to see any longer-term impact.

Here’s a summary of sales to date:

Zombie Outbreak Simulator

  • 84,000 downloads (20,000 paid for and 64,000 in free promos)
  • $17,500 in sales of the app itself
  • $3,800 in sales of bomb in-app purchases
    • 18% of total sales
    • 46% of sales since bombs were added

Zombie Outbreak Simulator Free

  • 2,900 upgrades to the full version for sales of about $2,000
  • $1,300 in sales of bomb in-app purchases
    • 39% of total sales
    • 45% of sales since bombs were added


  • $19,500 in sales of the app or full version upgrade
  • $5,100 in sales of bomb in-app purchases

So all up, Zombie Outbreak Simulator on iOS has earned about $24,600. Not exactly “let’s quit our jobs and be full-time game developers”, but still a decent result.

It’s also still bringing in around $350 per week, and still hovers around the low end of the rankings (currently #226 for strategy games in the US, woo!). So I think this is a good base to build from, and I plan to keep releasing updates and see what happens. The update I’d like to release next is to bring back support for Google Maps, somehow. So players could choose from the 5 offline maps which are there now, or the 10 Google maps which used to be available in the older version. And then eventually expand the Google maps to offer the 2000+ maps which are available in the web version of Class 3 Outbreak. It will be interesting to see what effect (if any) this has, since removing Google Maps in September seemed to improve sales. Only one way to find out!

So, while $24,600 is not exactly enough to make a living, that’s real money, right? You could buy a (smallish) new car with that, couldn’t you?

A car which costs less than $24,600

Well for starters, Jay and I live over 2500 km away from each other, so we can’t exactly share a car! So maybe we could each buy a somewhat older, used car?

A car which costs less than $12,300

Still, not quite. iZOS has earned around $24,600 according to appFigures, but we’ve only received about $21,000 from Apple in Binary Space’s bank account. The main reason for this difference is that Apple take about 2 months to pay (after the end of each month they total up the payment for the previous month, and then pay it about a month later). We’re probably also losing a bit in currency conversion and bank charges.

But revenue is only one half of the picture – the other half is costs! Most of the big costs of developing iZOS (like buying Macs, iPhones, iPads, etc) were actually covered by the approx $10,000 grant we received from South Australia’s Creative Industries Program in April 2011. We owe huge thankyous to Creative SA, as their grant was what enabled us to build ZOS for iOS in the first place!

However by the time we received our first payment from Apple in June 2012, Binary Space was heavily in the red – owing Jay and I about $8,000 dollars in total. This was mostly due to us over-spending on development of Class 3 Outbreak, back in mid-2011 when our funding fell through. With that first payment from Apple we were finally able to pay ourselves back!

After a few more payments from Apple, Binary Space was even able to pay us a bit of profit! We drew out about $8,000 in September 2012.

That leaves about $5,000 – where did that go? When Jay left Binary Space at the beginning of December, the agreement we had was that I would gradually buy out his share of the company by giving him a share of the revenue for the next several years. We have a complicated formula for working that out, but so far Binary Space has paid him about $2,000. Since we started receiving revenue from Apple we’ve had about $2,000 in further expenses. This has included worthwhile things like buying aerial photos for the iZOS update, and important things like hosting the websites for and, but the bulk of it has been on boring things like accounting.

So that now leaves Binary Space with about $1,000 in the bank. I’ll have to pay about half of that to Jay at the end of the quarter, and I’m expecting about $400 in expenses this month. So, Binary Space is not exactly swimming in free cash at the moment. Bring on next month’s payment from Apple!

Still, Binary Space paid Jay and me $8,000 in profit in September last year, and so I got about half of that. I guess I could buy a really old used car, maybe?

A car which costs about $4,000

Well, no. Although iZOS has made some profit, Binary Space’s history goes back further than that. With the original ZOS from 2009 and original C3O from 2010, Jay and I tried to make a bit of money by plastering ads all over them. All up they earned about $5,700, against costs of about $2,200. So we made a profit of about $3,500, of which I got about half. So far it’s looking like I could afford a slightly better car…

But then mid 2011 comes back to haunt me again. Although Binary Space paid Jay and I back for our fixed costs, I had also taken about 2 months time off from my job as a software developer, in order to work on the game with the funding we were expecting to receive. When the funding fell through I ended up having to dip into my mortgage to cover what I would have received in my usual salary, which worked out to a huge loss.

Adding up everything I’ve spent on Binary Space over the last four years, and everything Binary Space has paid me, works out to a grand total profit of $120. Woo! Here’s the awesome car I could buy with that:

Lego car, yeah!

Actually, I think I would rather buy the Lego car and take the bus, than buy that ’93 Corolla :)

Back when Jay and I first started work on Binary Space in February 2009, I thought it’d be interesting to keep track of how many hours I put into developing our games. So far across all our games I’ve spent over 2,400 hours. So the $120 I’ve made works out to an average of 5 cents per hour…!

Despite seeming like not much of a result for 4 years of effort, I’m actually really happy that Binary Space has now roughly broken even. During late 2011 / early 2012 when it was running at a huge loss I was quite demotivated by the whole project, so it feels good to be back in (slightly) positive territory.

Maybe one day Binary Space will actually make some money, or maybe it won’t. The whole project started out as a fun hobby, and if it only ever remains as a fun hobby, with the bonus of paying for itself, then I think that’s cool. I’m looking forward to it!



C3O Update: Default objective

Hi everyone,

As I mentioned a couple of weeks ago, the next feature I’m working on for the web version of Class 3 Outbreak is adding the ability for the map author to choose an objective for their map. As I said in my post on the forum, based on everyone’s feedback I decided to start with the following:

  • Default objective is to kill all the zombies (and infected).
  • Get to a location, which is a building selected by the map author, requiring all currently controlled civs to be inside the building, and none of them to be infected.
  • Rescue a person from a building chosen by the map author, with the doors locked until the first controlled civ walks through a door. The person to rescue will be randomly selected from the named civs, and they are rescued when they become controlled (ie another controlled civ walks close enough to them).

I’ve just released a minor update which adds the first of these, ie the default objective.

So now if you manage to kill all of the zombies, instead of nothing happening, you’ll see a win screen!

Default objective win screen

You might recognize this image as some of Jay’s artwork from the original Class 3 Outbreak, where it was used as the end screen in survival mode.

With the default objective it’s not enough to just kill all of the zombies. If any civs are infected (either living or dead), you need to wait for them to turn into zombies so you can kill those as well. To make it easier to track how you’re going, I’ve added the number of infected to the stats displayed at the top-left of the screen.

Game stat showing the number of infected

As well as being able to win the map, it’s now also possible to lose. Before the game would just fade out and nothing would happen, but I’ve now added a screen when you lose.

Class 3 Outbreak lose screen

As an added bonus, if you’re not in the mood to play again after losing, you can just watch your zombified corpse roaming the map for a while if you’d prefer :)

Also in this update I tweaked the text at the beginning of the game to hint at the default objective of killing all the zombies.

Default objective starting text

I figure on most maps (especially the 2000+ which are already on the world map, most of which probably still have the default infection settings) the default objective of killing all of the zombies will be close to impossible. It will probably be primarily future maps where the map author has intentionally chosen this objective from the available options (and possibly made a smaller more manageable outbreak) that killing all the zombies will be an achievable objective. So I figured the starting text should just hint at the goal of killing all the zombies, rather than demand the impossible :)

Finally, as an added bonus in this update I added a random map button to the top-right of the world map:

Random map button

The random map button will take you to a map randomly selected from the maps featured on the world map. This feature was recently suggested in the forum, and it received some support from others and also it seemed like it would be pretty simple to add, so I figured I might as well.

If you notice any bad maps while you’re browsing maps randomly, let me know via the contact page or in the forum, and I’ll remove them from the world map. Thanks!

Next up I will be adding the first real objective to choose from, ie getting all survivors into a building. The default objective took much longer than I’d expected, mostly because I haven’t had a lot of time recently as I’ve been busy with a bunch of personal stuff. Hopefully the next update will be a bit faster! Also, I’m going to continue to tinker with Zombie Outbreak Simulator on iOS, to see if I can find a way to bring back Google Maps.


What Objectives Would You Like?

Hey everyone,

Ever since we added the ability to control the civs to the new version of Class 3 Outbreak (way back in May 2011!), there’s been no actual goal to the game. All you could really do was try to hold out as long as possible, or make up your own goal. Even if you killed all of the zombies, nothing would happen. And when you died, the screen would just fade out, without even as much as an “oops you’re dead” :)

The last two updates for Class 3 Outbreak (editable infection settings and map start position) have been about how the game begins. Now that they are done, I’d like to start focusing on what you actually do in the game.

So as I’ve mentioned a few times, the next update I’m planning for Class 3 Outbreak is to allow the map’s author to choose an objective for their map.

This is a very open-ended task, as there are lots of possibilities for a map’s objectives. So I’m planning to implement this gradually – I’ll start with a few simple objectives, and then add more over time. After a while I may take a break to work on some other features, then come back to adding additional objectives later.

So before I start on this I’d like to know: What kind of objectives would you like to see? What would you like to add to your own maps, or like to play in other people’s maps? Of those, which ones would you like the most? This will allow me to work out which objectives I should work on first – based on a combination of how popular they are, and how quickly I can implement them.

Some possible ideas to start with:

  • Kill all the zombies
  • Stay alive for X minutes
  • Get to location X
  • Find person X
  • …?

Initially I will make it so that each map has a single objective, but in the future I’d like to make it possible to chain together objectives, like get to location X, then location Y, then location Z, or find person X and then get to location Y.

Also, do you have any specific thoughts on how you’d like these objectives to work?

For example does “stay alive for X minutes” mean you need to keep all three of your initial survivors alive, or just you, or any named civ under your control?

Does “get to location X” mean get to a selected building, or get to within N pixels of a selected point, and does your whole group need to get there, or just one?

To “find person X”, should person X be at a random location on the map, or in a predefined location, should they be stuck to the ground so they can’t walk away, should they be in a building, should the building’s doors be locked, what happens if they’re already a zombie by the time you find them?

To “kill all the zombies” do you need to wait for all of the infected to turn, as well?

Finally, do you think the default objective (if the map author doesn’t choose one) should be “kill all the zombies”, or something else?

Let me know your thoughts on the forum, or in the comments below!

Thanks :)


C3O Update: Map start position

Hey everyone,

I’ve just released a new update to Class 3 Outbreak, which lets the map author set the map’s start position (where the initial group of survivors starts at the beginning of the game). Previously this was always just the centre of the map.

To set your map’s start position, load the map in the editor and then click the Start Position button at the top.

You can then move the map to the desired location.

Class 3 Outbreak map start position

While you move the map, the editor shows the position of the three starting survivors. Usually this is in a standard pattern, but they will be moved to the nearest allowed location if there’s something in the way like a wall.

Once you’ve chosen the position you want, click Done, then save and re-publish your map. Then you’re ready to play!

A minor change in this update is that you can now also pan the map outside of the map’s playing area. This is so that you can see your starting survivors if the map’s start position is set to near the edge of the map. This also solves the problem of being able to see or control people under the minimap / weapons / build / search UI at the bottom of the screen.

Let me know what you think :)

In a case of inconvenient timing, the servers which C3O run on are doing some maintenance tomorrow. This will start at 1:00 am on Friday the 4th of January UTC (5:00 pm Thursday the 3rd of January PST, see here for your timezone), and run for about 2 hours.

During this time the website will be in read-only mode. So you’ll be able to play existing maps, but the editor will be disabled – and so you’ll be unable to set the start position of your map :( If you see a message about the editor being unavailable, just try again a bit later.

The next feature I’ll be working on for C3O will be adding objectives which the map author can choose – such as kill all the zombies, or survive for X minutes, or get to location Y, etc. And on the mobile side, I’ll be trying a few more ideas to get Google Maps back on Zombie Outbreak Simulator for iOS.


iZOS iPhone 5 Update Now Available!

Hi everyone,

Apple have just approved version 1.4 of Zombie Outbreak Simulator and Zombie Outbreak Simulator Free for iOS!

The major change in this version is that it adds support for the iPhone 5 (and 5th generation iPod touch).

Also as an added bonus in this update, you now get 10 free Mk82 bombs every hour!

After getting rejected so many times in the past, ZOS can now boast a rejection rate of only 4 out of 9 submissions! That’s less than half, yay! ;)


How to Get Your App Rejected by Apple

Hi everyone,

Since Binary Space first entered the world of iOS development, we’ve made seven releases – four versions of Zombie Outbreak Simulator and three versions of Zombie Outbreak Simulator Free.

As you might know, whenever you release an app or update on the App Store, you have to first submit it to Apple. Apple then review the app to check that it passes their criteria – this usually takes about a week. If you’re lucky your app gets approved and you can release it. Or if your app gets rejected, you have to fix the problem and then go through the whole cycle again.

Of the seven releases we’ve made on the App Store, four of them were rejected the first time. Not exactly a great success rate! :)

While I’m waiting for Apple to review my latest submission (to add iPhone 5 support to both versions of iZOS), I thought I’d write up what it was that got us rejected each time. If you’re a developer on iOS, you might find this useful so you know what to avoid! And if you’re not, it might be an amusing behind-the-scenes look at the ups and downs that go on at Binary Space :)

ZOS version 1.0

After about 8 months of development, we submitted version 1.0 of ZOS to Apple on the 17th of March 2012.

On the 24th of March, we were told it had been rejected. This is what the rejection message said:

We found that your app icons, screenshots, and/or Application Description includes content that is not appropriate for all age groups, as required by the App Store Review Guidelines.

This content must meet the requirements for a 4+ rating (must not contain objectionable material) since this content is visible on the App Store by all users, even when purchasing is restricted by the app’s rating.

It would be appropriate to revise or remove the following content: App icon

This is the icon we had submitted:

We had rated our app 9+ due to the animated violence, but it turns out that the app icon needs to be suitable for viewing by 4+ users, as kids can see the app icons even if the rating blocks them from installing the app. Apparently the bloody handprint was too much. Item 3.6 of the App Store Review Guidelines says:

3.6 – Apps with App icons and screenshots that do not adhere to the 4+ age rating will be rejected

A quick search for ‘zombie’ and ‘blood’ on the App Store revealed a number of apps with gory icons – many far worse than our handprint. We replied to Apple with links to all of those other games. We received a response along the lines of “just because we’ve approved other apps which break the guidelines, doesn’t mean we should approve yours”.

In the end Jay and I decided to change the handprint to green and try again. It made no sense, but green blood worked for Carmageddon, so we thought we’d give it a try. We were keen to just get the app released, and didn’t want to delay things any further.

Besides the icon, the app was also rejected because we’d written the following in our App Store description:

Zombie Outbreak Simulator is a sandbox app where you customize your own zombie outbreak, on Google Maps (R).

The word ‘sandbox’ caused the app review team to query whether it was a complete app, or just a test or demo version. Item 2.9 of the App Store Review Guidelines doesn’t allow test apps:

2.9 – Apps that are “beta”, “demo”, “trial”, or “test” versions will be rejected

To clarify this, I just put a message in the Review Notes section of the app to say that by ‘sandbox’ we meant that players could customize the outbreak parameters, and not that it was a test app.

We resubmitted the app with the new icon on the 28th of March, and on the 4th of April it was finally approved by Apple! We spent a bit of time sending promo codes to reviewers and getting organised for the release, and then released the app on the 11th of April!

ZOS version 1.1

When developing iZOS we thought we’d start with the simplest thing possible, see how it went, and then go from there. This meant the original release only supported a single map in the Netherlands (much like the original web version of Zombie Outbreak Simulator released in 2009, which only had a single map of Washington DC).

One of the common complaints from players of iZOS was that there was only one location. So almost immediately after the initial release we started working on an update to include more maps. We considered integrating it with the maps from the web version of C3O – so that iOS players could play any of the published maps from C3O. But in the end we decided it would be easier if we started by just including a selection of 10 maps. If more maps turned out to continue to be a popular request, we could always extend it further in the future.

We submitted the update to Apple on the 25th of April 2012.

A few days later we noticed that our app sales had suddenly doubled. After some investigating, we realized that we’d been featured by Apple in their Staff Favorites! We were featured in the US, Canada, Brazil, Mexico, Spain and 14 other countries. Thanks Apple Staff! :)

When we noticed the feature we figured it would be great if the extra maps could be in there for everyone to see while we were being featured. However we expected that it would take about a week for our app to be reviewed as normal, by which time we’d probably no longer be featured. So we put in a request for an expedited review, saying something along the lines of “thanks heaps for the feature, it would be great if we could have our new version up there, please!”. Apple granted our request (thanks Apple!), and our new version went live on the 30th of April, a couple of days before the feature period ended.

ZOS Free version 1.0

After we released the maps update to iZOS, we decided we’d try creating a free version of iZOS with only one map and limited infection options, with an in-app purchase to upgrade to the full version. The theory was that a free version would be downloaded by more people, with some small percentage of them purchasing the upgrade.

We submitted iZOS Free version 1.0 to Apple on the 15th of May 2012. It was approved on the 23rd of May, and we released it straight away. Our first (and only!) app submission with zero dramas! :)

ZOS and ZOS Free version 1.2

For our next update we decided to add bombs. The player could bomb the zombie hordes from above, and keep track of zombies killed – and the collateral damage to unfortunate civs. Given that ZOS is just a sandbox app with no objective, the bombs didn’t really achieve anything, they were just for laughs.

We skipped version 1.1 of ZOS Free, synchronizing the versions by making the bombs update version 1.2 for both ZOS and ZOS Free. The updates were submitted to Apple on the 15th of June 2012.

On the 23rd of June we got our response from Apple. ZOS v1.2 had been approved, but ZOS Free v1.2 had been rejected, doh!

The upgrade to the full version in ZOS Free is a ‘non-consumable product’, meaning once a player buys the upgrade then they own it forever, even if they delete the app and re-install it later, or even if they install the app on another device.

However in either of those cases the app doesn’t automatically know that the user has bought the upgrade. The iOS Store Kit API which we use to handle in-app purchases has a method to restore previously completed purchases. However it’s not obvious when to do this. The majority of people won’t buy an upgrade, and then of those that do, the majority of them won’t be restoring old purchases. There didn’t seem to be a good place to stick a button which so few people would be using.

So instead in the first release of ZOS Free we didn’t implement anything special. If a player tapped the Upgrade button, they would be prompted with “are you sure you want to buy?” as normal. But if they said yes, the App Store would respond with “you’ve already bought this item”, and the app would enable the upgrade at zero cost. This seemed like a pretty simple way of supporting something which few people would be using.

This got through okay with ZOS Free version 1.0, but Apple rejected version 1.2, saying that we needed to provide a method for purchases to be restored.  The Restoring Transactions section of the In-App Purchase Programming Guide says:

However, if your application supports product types that must be restorable, you must include an interface that allows users to restore these purchases.

We figured we were probably just lucky to get version 1.0 approved, so there wasn’t any point trying to respond to Apple with something like “but you approved this last time”.

We decided not to hold back the bombs from the paid version of ZOS to wait for ZOS Free, so we released version 1.2 of ZOS right away on the 23rd of June.

We then started adding a button to ZOS Free to restore the upgrade. We submitted the new version to Apple on the 25th of June, they approved it on the 5th of July, and we released it for sale that day.

ZOS and ZOS Free version 1.3

As I described in my blog post of about a month ago, in June 2012 while we were working on the bombs update Apple announced iOS 6. One of the major new features in iOS 6 was that Apple were removing Google Maps, to replace them with their own maps.

I downloaded a beta version of iOS 6 to try out the new maps, but they weren’t good enough for iZOS. So we decided our only option was to remove the Google Maps and replace them with embedded aerial photos. Due to the size of the embedded photos we decided to reduce the total number of maps to five.

We submitted version 1.3 of ZOS and ZOS Free to Apple on the 8th of August 2012. On the 17th of August we received the verdict from Apple – both updates had been rejected!

In the “What’s new” description for the update, we of course wanted to explain why the maps had suddenly changed. So we had written this:

Due to the removal of Google Maps for iOS 6, Zombie Outbreak Simulator now uses aerial photos that are stored within the app itself. Therefore we have lost most of the old maps and added 4 new maps across the UK and Australia.

Apple rejected the updates with this explanation:

We found that your Release Notes contain references to a pre-release version of iOS/SDK in the metadata. Referencing a pre-GM version of the iOS/SDK is not in compliance with the iOS Developer Program License Agreement:

Section 2.3 – “…Apple may provide You with pre-release versions of the SDK that constitute Apple Confidential Information and are subject to the confidentiality obligations of this Agreement.”

Your Release Notes state: “Due to the removal of Google Maps for iOS 6, Zombie Outbreak Simulator now uses aerial photos that are stored within the app itself.”

It would be appropriate to remove any references to the pre-release version of iOS from your app metadata.

I responded to Apple saying that I understood the policy about referring to pre-release software, but asking if we could refer to iOS 6 in the way we had, as the removal of Google Maps was publicly announced (in their own keynote!), and so would be common knowledge. They responded by saying that the reference to iOS 6 had to be removed to be compliant with the guidelines.

So, we changed the update description to:

Due to circumstances outside of our control, we have had to remove Google Maps. Zombie Outbreak Simulator now uses aerial photos that are stored within the app itself. Therefore we have lost most of the old maps and added 4 new maps across the UK and Australia.

We put the apps back into review with the updated description on the 18th of August. The update to ZOS Free was approved on the 21st of August, and the update to ZOS was approved on the 29th of August (not sure why that one took longer!).

Since version 1.3 felt more like a downgrade than an upgrade (dropping from 10 to 5 maps), we figured we’d wait a while to release it. On the 12th of September Apple announced their new iPhone 5, and that they’d be releasing iOS 6 on the 19th of September. So we released version 1.3 on the 13th of September, to give people a bit of time to download the update before iOS 6 dropped.

ZOS and ZOS Free version 1.4

Version 1.4 of ZOS and ZOS Free is a quick update to add support for the iPhone 5. I submitted this to Apple on the 21st of December, so about 11 days ago.

I’m hoping that this is taking longer than normal to review because of Christmas etc, not because Apple are getting ready to reject it again. Hopefully the rejection rate of ZOS and ZOS Free drops from here on – cross fingers! :)

ZOS and ZOS Free version X

In the future I’m hoping to be able to bring Google Maps back to iZOS. I tried the new Google Maps SDK for iOS recently, and it was close, but not quite there. With luck Google will release a new version of their SDK which makes it possible for me to bring maps back to iZOS. Otherwise I’m going to try to figure out some other way to get it to work.

In the meantime, I’m currently finishing up an update to the web version of Class 3 Outbreak, to allow map authors to change the map’s start position. Should be ready soon!