Brand New: Recreating Call of Duty: Zombies on iPhone

by danhon

Brand New: Recreating Call of Duty: Zombies on iPhone
Russell Clarke, Call of Duty: Zombies

Some background: Ideaworks Game Studio. Founded in 1998. In Bayswater, London, ideaworks3D, cross-paltform mobile games and technology, split in 2004 to studio division and labs supporting Airplay. IGS starting developing for iPhone in 2008, then several hit titles involving Zombies.

Takes CoD into arcade style survival horror, unlockable bonus game in CoD:WaW. Made during lunch breaks. Bunch of designers at Treyarch in lunch break and in randomness came up with something so fun they put it in the release of the game.

Around March 2009 started talking to us about taking this onto the iPhone. Clear potential to the game – arcade style, pick up and play, less story-driven. But, big questions about how to adapt it to the iPhone. For one thing, no good examples of first person shooters done well – lots of people asking if controls could even work on the platform. Also: who’d buy it? Known audience for CoD, but would they theyn get their iPhones out to play CoD:Z on the way to work?

Not really sure how they could be sure of success. CoD – one of the biggest brands in gaming history – maybe the biggest. How could we fail? Branded experiences are more prevalent on the appstore, and they do not automatically succeed. Even high quality offerings tend to decline rapidly. GTA Chinatown, Sims 3, Sonic 2, Streetfighter 4 – you drop down into the long thin tail quite quickly. The period of success is fairly short-lived.

That data is not sales data – I’d love to have sales data for those titles. This is calculated from publicly available top-grossing rank data. Assigning a score for an app’s position and then multiplying by size of country, etc. You then have a theoretical maximum of 1. Very strong initial scores for these titles, but they fall off quite quickly.

Games that have a sustained success profile are casual games. These are consistent performers. Easy to get into, satisfying, addictive, replayable. Success begets success: discoverability is crucial. Tetris, Doodle Jump, Bejeweled 2. People get into them, play them for a while, quite a long time until you get bored. Other people can see it, etc. The buzz sustains.

If you look at the dates on this, this is 6 months after the launch of Zombies. This isn’t data we had when we shaped the game for iPhone. We instinctively understood the casual game appeal that we needed.

The arcade gameplay seemed to fit, we didn’t have historical data, but it wasn’t exactly casual. Not just any old zombies, but Nazi zombies. Quite a few risks. Our focus was to push design goals to the casual audience – quality, the authentic CoD experience to the platform and replayability.

Controls: FPS controls. Run, look and shoot. We didn’t have many reference points when looking at this. When playing an FPS on a console or a PC – you’re running around, looking around and shooting. That’s fine for a console game controller – 2 analogue sticks, 2 triggers, spare finger. Brilliant. But not on the iPhone. We looked at all the ways you could hold an iPhone. You come down to two ways. In one hand using other hand’s fingers, or classic game pad controller grip. That’s fine, it’s natural, you’ve only got two thumbs though but you’re never going to do three things at the same time. 2 inputs at most.

Compromise: doubling up functions – aim around and shoot with right thumb, some loss of freedom is acceptable. You can provide a choice, one size does not fit all. There is a proper solution – you can use the accelerometer. In theory it should work briliantly. One analogue input independent of what your thumbs are doing. The first time we tried this, it was impossible to use and it made people feel sick. Even when we tweaked it and people liked it, it was always going to be something with a learning curve that a lot of people would not have the patience for. Although it was a tractable problem, it was an imperfect solution.

Multiplayer: This was a big deal. A big factor in adding replay value to the game – once you’ve finished single player, you can get into multiplayer afterwards, and because co-operation is the essence of the original game. You can play Nazi Zombies by yourself, you get eaten straight away, the real fun is holing up with your buddies and protecting each others’ backs. We didn’t ahve much choice about that. But, this was a quantum leap for our technology at the time. Previously we’d done racing games.

So, with five months to turn that into a full-on FPS multiplayer architecture, I wouldn’t recommend doing that. We didn’t have much of a choice. The only piece of advice I’d have would be reliability. There’s a difference between something that works pretty well in your lab and something that works in the wild and is releasable. So many variations and factors, routers, all the things to make a handshake, never mind latency and bandwidth to model in a lab environment. All about testing, testing, testing.

Quality: an authentic CoD experience relies on details. This was a key area. We had to make it authentic and when people are familiar with the original game you’re reproducing, they notice that detail. All about trying to reproduce detail and give good performance and experience. A classic tradeoff and difficult to judge. In blanacing detail against performance, retain detail where it’s felt, cheat where you can get away iwth it, and this applies to tech as well as assets. Don’t blanket reduce detail, hold on to it where it’s valuable and everywhere else, cheat as much as possible. That’s a classic tenet of games architecture.

Some examples in a minute, but a quick wrod about performance. The original game has 4 maps – a new map with each DLC, not just the first released one. The original maps would get bigger and bigger. The first map is an L-shape with 1 up 1 down on each arm of the L. The second map is quite a lot bigger. If we’re making our prototype and deciding detail levels and FPS we can drive, if we have to push a bigger map through that engine, then we have to start again. Here’s the outline of the second map. You can see that it’s more than double the size. Worse than that, the open area in the middle is an open courtyard, you can see all the way from one corner to another and you can be looking at 1/3 of the geometry of the whole level. I would love to be able to say we allowed for that, but I can’t say that. We got there in the end. The third map – Shi No Numa – the day our lead artist saw that, he cried a little bit.

Back to detail. Visual examples. Side-by-side visual comparison to console versus highest level of detail on mobile version – one on the right is low detail – silhouette, angles of fold. To understand how much detail we save, there’s a vast amount of savings. The one on the right is 1/7 the geometry of the one on the left, that’s cutting out detail where it’s not felt. Buckles and metal, that’s geometry on the original, and texture on the mobile. We preserve detail around the head and hands, but less than the original version, our Zombie is an inch and a half across in real life.

Here’s another example: one model, more geometry in model than whole model of first game in mobile version. Able to make a massive saving with that. One more example. Scene from third level – trees have roots. That’s for the bonus game mode that was never put in. Actual difference in Xbox 360 is negligble and not worth time to prune that out.

Video taken from in game engine in Windows emulation mode. Debug information. Shapes that you’re seeing are collison surface of world in blue and bright things are collision volumes attached to bones. In a console you would do raycast tests against the animation mesh, we stick big dumb obvious shapes on top of everything. Hands, limbs, torso and head. All blue lines are collision – world is 2D. All of our theoretically complex collision logic is all 2D. One final example, a zombie rendered through the wall becausae debug code doesn’t do depth testing. He isn’t animated until we can see him. Fairly obvious saving. When you can’t see the zombie, don’t bother to update mesh, skeleton, let him slide along.

Here’s some final footage.

Success: #1 grossing in US store, 6 out of first 8 weeks. Stayed in top grossing US top 10 for 5 months. 4.5 star average, and US 29k ratings. And rated one of Snopp Dogg’s top apps. That was a red letter day.

To refer back to the initial data plots, I’ve superimposed GTA, Tetris, Bejewelled 2, and if on there, you don’t have the start. It spikes not up the same as Streetfighter 4. Didn’t sell as well in Germany. Shows that we recaptured the casual sustainability. Slow decline over time.

That’s it from me – questions?