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! ;)

cya,
Saxon

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!

cya,
Saxon

 

Testing the new Google Maps SDK for iOS

For the last few days I’ve been trying out the new Google Maps SDK for iOS, to see if I can use it to bring Google Maps back to Zombie Outbreak Simulator for iOS. The SDK isn’t yet fully available to all developers as Google are handing out keys progressively, presumably so they can test it to make sure it works okay before going for a full release. I applied for access and Google sent me a key a few days later – thanks Google! :)

I was able to get the new maps SDK into iZOS without too much trouble, but unfortunately it doesn’t quite do what iZOS needs. I can get the zombies and civs to draw okay over the map:

However the zombies/civs don’t synchronize properly with the map. When I pan/zoom, the map lags behind the zombies/civs a bit, so it looks like the zombies and civs are sliding around on the ground.

This is Google’s first release of their new Google Maps SDK for iOS, so I’m hoping that they’ll update it in the future to add support for overlays, which should make it possible to properly synchronize content with the map.

Otherwise, before Google announced their new SDK, I had been planning to try to get iZOS to work by turning it into a hybrid native / web app (since it is possible to embed the Google Maps JavaScript API in a web browser in an iOS app). So if Google don’t add overlays to their iOS SDK, I still have that option to fall back on. The performance of hybrid apps is not great, and there’s a lot of technical issues with integrating web content with native content, and so the Google Maps SDK for iOS would have been a better option. But if hybrid is my only option, then I’ll give it a shot :)

cya,
Saxon

Work in progress: Map start position

Hi everyone,

Since I released the editor infection settings update for C3O a few weeks ago, I’ve been held up a bit by boring things like moving the C3O forum and setting up a new Binary Space website. But now that those are done I’m spending a bit more time on actual game dev, hooray! :)

My current plan is to work on both the web and mobile versions of C3O and ZOS in parallel. On the mobile side I submitted an update to add iPhone 5 support to iZOS to Apple about a week ago, and am now waiting for them to review it.

For the web version of C3O, the next feature which I’m working on is the ability for the map’s author to set the map’s start position – ie the location on the map where the initial group of survivors is placed at the start of the game. This is to replace the current default, which is just the centre of the map.

I just thought I’d post a quick work-in-progress screenshot of how this is coming along:

Class 3 Outbreak set start position

I have this working in the editor now, but not yet in the game itself, so it’ll be a bit longer before it’s ready for release.

While I’m finishing up this feature for C3O, I’m also planning to start trying out Google’s new iOS SDK for Google Maps, to see if I can use it to get Google Maps back into iZOS.

cya,
Saxon

 

New Binary Space Website

Here’s another post from the “boring things indie game developers do which aren’t game development” file.

A couple of weeks ago I wrote about how I had moved the C3O forum. This was because the old forum was running on Jay’s server, and since Jay left Binary Space a few weeks ago, I needed to move C3O off his server.

Everything for binaryspacegames.com was also running on Jay’s server, so I needed to move that too.

For the forum I decided to go with Forumatic who provide managed phpBB hosting, rather than having to set up and look after my own server. I wanted to avoid maintaining my own server for binaryspacegames.com too.

First, to host the DNS for binaryspacegames.com I’m using Namecheap FreeDNS. It’s hard to argue with the price :) As Binary Space’s domains come up for renewal over the next year or two, I’ll likely switch to having them registered with Namecheap as well.

I moved the email for binaryspacegames.com to Google Apps. If I’d done this three weeks ago it would have been free, but now I have to pay $10 per month. Google used to offer a free version for less than 10 users, but recently removed that option. Oh well!

That just left the main www.binaryspacegames.com website, which was running on WordPress. Just like with our old forum, this was something which Jay set up ages ago, and which neither of us had wanted to spend time maintaining – and so we were running a version of WordPress which was about 3 years old.

I could have installed the WordPress.org software on my own new server, but I looked around at the options which would allow me to avoid doing that.

The first option I experimented with was WordPress’s own hosted blog service, WordPress.com. This is a very easy way to get a simple WordPress site up and running quickly, although it’s less flexible than running WordPress on your own server. This looked as though it could do most of what I needed, but there were a few small limitations which made me decide it wasn’t quite right for Binary Space.

In the end I decided to go with page.ly. They do managed WordPress hosting – so they handle the installation and updates for WordPress, including the themes and plugins and so on. And they also manage a farm of servers to keep the site running fast.

Unlike WordPress.com, which only supports a limited number of themes and built-in plugins, page.ly can support almost any WordPress theme and plugin. I could have tracked down the theme we were using on the old version of www.binaryspacegames.com – although from a quick search it looks as though it hasn’t been updated in 3 years either, and their site is now infected with malware. Here’s how the old website looked:

Instead I figured I’d make a break from the old version of the website, and go with something different. Rather than complicate things, I just browsed the numerous themes available within the theme browser of the WordPress dashboard, eventually settling on a simple theme called zeeSynergie. This is how the website looks now:

The new site is probably not quite as good looking as the old one (Jay had spent a bit of time customizing the graphics on the old one), but it’s functional.

But most of all, it works, it should look after itself, and now I can get back to game development! :)

cya,
Saxon

 

iZOS iPhone 5 Update Submitted to Apple

Hey everyone,

I’ve just submitted the updates to Apple for Zombie Outbreak Simulator and Zombie Outbreak Simulator Free for iOS to add support for the iPhone 5 (and 5th generation iPod touch)!

ZOS for iOS on the iPhone 5

Now I just need to wait for Apple to approve it – I’m guessing this will take a couple of weeks. Normally it takes about a week, but iTunes Connect shuts down for about a week over Christmas, so I presume my updates will have to wait until they get back.

For those of you more interested in the web version of C3O, I’ve started adding the ability to change the map’s start position. Hopefully I’ll have a work-in-progress screenshot of that up soon, and then release it soon after.

Back with ZOS on iOS, there was some big news about a week ago when Google released their new version of Google Maps for iOS. Along with that they also announced a new Google Maps API for iOS! I’m hoping this new API will make it possible for me to bring the Google Maps back to ZOS on iOS.

Google are currently gradually rolling out access to the new API. I applied for a key and was approved a few days ago. So soon I’m going to jump in and try to get ZOS to work on Google Maps again! :)

cya,
Saxon

Wanted: iPhone 5 beta testers

Hi everyone,

In my blog post of a couple of weeks ago, I said that I wanted to try to bring Google Maps back to Zombie Outbreak Simulator on iOS. Eventually I want to bring the approx 2000 maps available on class3outbreak.com to ZOS on iOS.

It’s been a few months since I last touched XCode, so to get back into the swing of things I thought I’d do a quick update before tackling Google Maps. So I’m going to upgrade iZOS to support the iPhone 5 which was released a few months ago (just after our last update).

ZOS for iOS - doesn't fit on the iPhone 5 (yet)

All I need to do is stretch iZOS by another 176 pixels. This shouldn’t be too hard, as most of the sizing and positioning is calculated dynamically already. There’ll just be a few full-screen images which I’ll need to update, like the map selection screen.

However, I don’t own an iPhone 5 to test it with – so I’m looking for a few beta testers.

If you’re interested in being a beta tester, send me an email via the contact form. It would be good if you’ve already played iZOS before (either on your iPhone 5, or another iDevice), so you’ll know what to expect, and will notice if it’s doing something strange.

Thanks!

Also, as I mentioned in my blog post a couple of weeks ago, now that I’ve released the first update to the web version of C3O, I’m going to be working on both mobile and web updates in parallel. The next update I have planned for the web version is to let the map author choose where you spawn at the beginning of the game – instead of always being the centre of the map as it is now.

cya,
Saxon

New Class 3 Outbreak Forum

One of the joys of indie game development is… how little time you actually spend developing games!

In addition to the obvious parts of game development (like game design, programming, art, sound, music, etc), there are so many other things to do. ‘Fun’ things like accounting, marketing, running websites, moderating spam, and so on.

One of these things is the Class 3 Outbreak Forum. Jay first set it up about a week or two after we first released the original Zombie Outbreak Simulator, way back in November 2009. But maintaining forum software is not really something Jay or I felt like spending our time doing. I know enough about sysadmin to be dangerous – I first tinkered with Linux around 1997, back when you had to recompile the kernel to add sound support, and by 1999 I was running 4 Linux servers at home. But for Binary Space I mostly concentrated on programming, and let Jay fill the roles of art, sound, music, design, and “everything else”. This mostly left Jay doing the cursing whenever he had to try to set something up on a server, and it inevitably went wrong :) So mostly, we left good enough alone. Which meant we were running a version of phpBB which was about 3 years old.

phpBB Logo

Back when we were getting ready to release the original ZOS and Class 3 Outbreak, Jay suggested we rent an expensive-ish (approx $150 per month) dedicated server from SoftLayer, instead of cheap shared hosting, “just in case we got Dugg“. We did get on the front page of Digg – and the server still crashed anyway, but SoftLayer were great in helping us through it. But after that initial burst of traffic, and after the additional spike of traffic when we released the original Class 3 Outbreak in April 2010, our traffic dropped to levels where it wasn’t worth continuing to spend so much on hosting the server.

So, we decided to move class3outbreak.com onto the cheaper VPS server which Jay already had for his other business Hyperfocal Design, with Binary Space splitting the cost with Hyperfocal. This included moving the forum.

Fast forward to today, and the forum was still running on Jay’s server… which is a bit awkward now that Jay has left Binary Space. So, I needed to move the forum to some other server.

I could have found another host, set up phpBB on it myself, and then moved the forum to it. But then I’d have another server to look after. I’d rather spend my time making games!

So instead I’ve decided to go with Forumatic. They provide fully managed phpBB hosting – so they set up the servers, install the updates, and make sure it’s running properly. Forumatic is run by a couple of the core phpBB developers, so I presume they know what they are doing – far more than me :) This way I can just use the forum, and I’m free to spend more time on game dev.

One minor downside of Forumatic is that they only offer a limited choice of five styles. They are currently running a custom pre-release version of phpBB, which makes it time consuming for them to add more styles. Hopefully they’ll be able to offer more styles in the future.

Our old forum used the pronight style:

Old C3O Forum Style

Goodbye pronight, old friend, you’ve served us well :)

I tried a few of the styles offered by Forumatic, but settled on the redsilver3 style:

New C3O Forum Style

Hopefully the transition isn’t too traumatic :)

Anyway, the new forum is now live – see you in there!

Back to game dev now! Actually, I think I have a bit of accounting to do first…

cya,
Saxon

C3O Update: Editor infection settings

Hey everyone,

The editor infection settings are now here!

Just click the big infection settings button at the top of the editor:

Infection Settings Button

Choose the infection settings you want for your map:

Class 3 Outbreak editor infection settings

Click OK, then save and publish your map, and you’re done!

Let me know what you think :)

cya,
Saxon

Editor Infection Settings: Work in Progress

Hi everyone,

As I mentioned in my last blog post, the first update I’m working on is adding infection settings to the editor. So instead of your map always using the same infection settings as every other map, you can choose the settings which make sense for your map.

I thought I’d post a quick screenshot of how the infection settings are coming along:

Class 3 Outbreak editor infection settings

In my dev version I’ve built the UI which you can see in the screenshot, and the settings are also being saved and restored with the map. I now need to include the settings when the map is published, and then make the game itself use the modified settings. So I’m probably about half-way there at the moment.

cya,
Saxon