Archive for February 26, 2013

Work in progress: Google Maps in ZOS for iOS

Hey everyone,

Since getting back into development of Class 3 Outbreak and Zombie Outbreak Simulator a few months ago, my goal has been to alternate my time between C3O on the web and ZOS on iOS. So after releasing the ‘get to a building’ objective for C3O a couple of weeks ago, I’ve been working on ZOS for iOS.

In my last dev post for ZOS for iOS a couple of months ago I had just tried out the new Google Maps SDK for iOS. Although I was able to get the zombies/civs to draw over the map okay, I couldn’t get them to synchronize properly. While panning/zooming, the map would lag behind the people, and so it would look like the people were sliding around on the ground.

Well, after trying numerous approaches I have now figured out a way to get the people and the map to synchronize properly! Here’s a quick video showing it in action:

This Google Maps version of iZOS is currently a bit of a hack, so there’s still a bit of work involved in getting this ready to release. But now that I’ve gotten it to work, bringing Google Maps back to iZOS is just a matter of when not if! :)

My plan for the next update of iZOS is to offer a choice of 15 maps – the 5 offline maps which are in the current version, plus the 10 Google Maps which were in there before iOS 6 was released. Then in the next update after that, I’ll expand the Google Maps further to support all 2000+ maps available on

Unfortunately the Google Maps SDK for iOS doesn’t support iOS version 4.x. So in the next update I’ll have to change the minimum supported iOS version to 5.0 (iZOS currently supports back to 4.0). According to my Flurry analytics, around 6% of ZOS players in the last month were running iOS 4.x:

iZOS iOS versions

The stats for ZOS Free are similar: most players are using iOS 6.x or 5.x, with only about 2.5% of players in the last month using iOS 4.x. So if you’re one of these people who are still running 4.x, you’ll need to upgrade if you want to download the next version of ZOS. However if you don’t want to upgrade your version of iOS you should still be able to play the old version of ZOS. The App Store app on the device should ignore the update, although the app may get deleted if you sync with iTunes.

Also, it looks like I probably won’t be able to get Google Maps to work on the original iPad 1. Although the Google Maps SDK for iOS does work on an iPad 1, and although ZOS itself uses as little memory as possible, when they are combined it’s still too much – and so ZOS crashes too often. According to the Flurry analytics, around 4% of ZOS players in the last month were using an iPad 1.

iZOS device usage

And similarly, around 3% of ZOS Free players in the last month were using an iPad 1.

The reason we originally removed Google Maps from ZOS was because Apple replaced Google Maps with their own Apple Maps in iOS 6. However, the iPad 1 doesn’t support iOS 6 – the highest version of iOS available on an iPad 1 is iOS 5.1.1. Therefore in theory it might be possible for me to bring Google Maps back to the iPad 1 by using the method ZOS originally used – avoiding the use of the new Google Maps SDK for iOS. In practise though, supporting multiple different methods of displaying maps may just be too complicated. However, I’ll keep it in mind as I’m finishing up the Google Maps update for ZOS. So if you have an iPad 1, I might be able to bring back Google Maps in the future – but only if you’re not still running iOS 4.x!

Now that I’ve reached this milestone with ZOS for iOS, I’m going to swap back to developing the web version of C3O. The feature I’ll be working on for C3O is to add a new objective type which map authors can choose. This objective type will require the player to rescue a named civ who starts the game locked in a building chosen by the map author. After that update, I’ll come back and finish off the Google Maps update for ZOS on iOS.


C3O Update: ‘Get to a building’ objective

Hey everyone,

I’ve just released an update to Class 3 Outbreak to add support for the ‘get to a building’ objective!

So the map author can now choose from two possible objectives for their map:

  1. The player has to kill all the zombies (the default), or
  2. The player has to get all of their survivors into a building chosen by the map author.

To change your map to the new objective type, load the map in the editor, and then click the Objective button at the top:

Editor objective button

You can then switch from the default objective to the ‘get to a building’ objective:

Choose Objective dialog

Then click the Choose Building button to select the building which the player must get their survivors into:

Choose Building dialog

Once you’ve selected a building, you can close down the Objective dialog. Then you’ll need to save and re-publish your map.

When playing a map with the ‘get to a building’ objective, the message displayed at the beginning of the game is a bit different (mostly just the last paragraph):

'Get to a building' objective message

The building that you need to get to is marked with a red X on the minimap and on the main map:

'Get to a building' objective

When buildings are next to each other it can sometimes be difficult to tell where the boundary is between buildings. And if the map author has created rooms inside the buildings, it is usually impossible to tell where the walls are between rooms, unless you turn on the Show Buildings button. So to make it clear exactly where the building is which you need to get your survivors into, the building is also highlighted in brown.

To win the ‘get to a building’ objective, the basic requirement is to get all of the remaining survivors (the named civs controlled by the player) into the building. However, it kind of defeats the purpose if the survivors are infected, so the game won’t end if there are any infected survivors. In that case you can wait until the infected survivor turns. Or perhaps you can sacrifice that survivor by running them out into the horde…

The goal of getting to the building is to be ‘safe’ – so it’s not much use if there are zombies roaming around inside the building! Therefore even once you have all of your infection-free survivors inside the building, you also need to clear the building of zombies before the game will end.

To make it easier to keep track of how you’re going with all of the above conditions, if at least one of your survivors is in the target building then the stats at the top-left are updated to display your progress.

'Get to a building' objective stats

In this update I’ve also modified the fog of war a bit. Now at the start of the game you can see the entire map as if you’d already visited everywhere. So now the fog just hides the zombies/civs outside of your field of view. I made this change so that you could see the building that you’re supposed to get to!

Now that this objective is done, I’ll be moving on to adding the third objective – which is to rescue a person who starts the game inside a locked building.

Let me know what you think of the new ‘get to a building’ objective! :)



Work in progress: ‘Get to a building’ objective

Hi everyone,

Since releasing the default objective a couple of weeks ago (to kill all the zombies), I’ve been working on adding support to choose a different objective. The first one I’m adding is the ‘get to a building’ objective – so the player has to get all of their survivors into a building which the map’s author has chosen in the editor.

I’m part-way through implementing this – I’ve just finished updating the editor so that the map author can change the objective, and then choose a building. So I thought I’d post a couple of work-in-progress screenshots:

Choose Objective dialog

Choose Building dialog

Now I just need to update the game itself to support this new objective!