Having covered the map generation and the AI, let’s wrap up the Extraction series with an overview of the game itself, how the previous topics feed into the gameplay, and just where it might go in the future.
While emergent behaviour the procedurally generated content can make a game interesting and keep it interesting, without gameplay mechanics, you don’t have a game. Since Extraction was always “fun with AI and map generation” first, “programming a game” second, and an actual game third, I’m not going to claim Extraction is anything astounding. It’s not. I probably have more fun writing it than anyone would have playing it, but we’ll not let that stop us from looking into the mechanics anyway.
Starting Out
When the level opens, you see the terrain, the survivors and the first few zombies, all of which are essentially random. From the word go everything is in motion. The first thing you do is decide where to set your extraction vehicle down, and while you are deciding the zombies are growing in number. In the screenshot above, that’s only a few seconds into the game, but because the map has funnelled most of the actors into a central column and the majority of the zombies spawned in the middle, they spread fast. The central area is a write-off, but you can probably pull a good few survivors from the bottom. Sorry, you guys at the top.
Setting down takes a few seconds, during which time you can only watch and hope the situation hasn’t changed.
Get Me Out Of Here!
Once the extraction zone is down any nearby survivors will make a break for safety. As we saw in the last post, both zombies and survivors will prioritise the extraction vehicle above all else.
Give Me Options!
Of course you don’t just have to sit there and wait for the survivors to blunder into you, that would make a poor game even by my standards. A good screensaver perhaps, but not a game.
The first thing you can do is bug out. Flee. Leg it. Leave. You can click that button whenever you want, take the survivors you’ve already rescued and move on to the next level. At some point you will be in the situation where you’ve rescued everyone you’re going to – either you’ve done well or there are too many zombies and you’re taking a beating. Leave, and start on a new level, rack up your score.
The next option, open fire. You have a cannon available, though it’s reload rate is very slow, as is the targeting time. If you’re aiming at a zombie or group of zombies, you’ll have to get lucky or be in a position to predict their actions. More likely, you’ll use it for terrain clearing to carve a path for survivors. Currently the cannon is all but useless, though very satisfying if you get a bunch of zombies clustered in a choke point.
Third, you can relocate the extraction vehicle. Run out of survivors in the local area? Need to get to a bunch sealed off by terrain? Too many zombies getting close? Just move somewhere else. Of course it’s not that simple. Packing up takes several seconds, during which time you aren’t picking up survivors and you aren’t defending against attacks. Likewise, flight time is another few seconds as you redeploy. Each time you relocate you lose time, and the situation you land in is potentially very different to the one you thought you were heading to.
Lastly, and most importantly, you have a selection of beacons you can use to guide survivors towards the extraction vehicle. The first beacon has to be placed near the vehicle, the next beacon near the first, and so on forming a guiding chain of beacons.
Alas, beacons can be destroyed easily by the zombies, and the chain is abandoned if you relocate, leading survivors away from safety. If you aren’t careful, they can work against you very easily.
Where Next?
As previously stated, my main interest lies in new map generation algorithms and exploring new AI ideas, but there are three gameplay concepts still to introduce.
First, I plan to include more offensive capabilities for the player. The main one here is obviously guns. They will simply kill anything that comes within a short range of them. Total area denial. Fitting in with the tone of the game, where nothing comes for free, they’ll target indiscriminately, firing on survivors as readily as zombies, and can’t be undeployed. Once you’ve dropped a gun in a location, it’ll stay active until it runs out of ammunition. The second is more complex, less predictable and potentially more lethal. A single deployable gas attack, where the effect will spread from the impact zone in a random manner, becoming less deadly as it diffuses, swirling past terrain and losing intensity over time. If you’re lucky, it will neatly clear out that mess of zombies in the bay to the north. If you’re unlucky, it will drift out across your beacon chain…
Second, a sense of progression. Story type missions with set goals; they don’t have to advance a plot or anything, just break up the standard levels. Rescue a certain survivor, kill all the zombies, this is all very much still in the air.
Finally, and I think most importantly, is the research lab. Between missions the survivors you rescue will be translated into a bonus which you can save or spend on power-ups. Better cannon, faster reloads, more beacons, reduced flight time, and so on. This is the mechanic that allows for the player to adopt a strategy and provides for different play styles, or even conducts. It also has the happy side-effect of driving the player to try to get those last few survivors before the zombies close in. So close to that cannon damage upgrade, just one more…
Wrapping Up
I’m not trying to sell a great game here, just describe something I did for fun. The AI and the map generation are by far and away the most important parts of this process to me personally, and the parts that will get the most work if I ever pick up development again, but the core of a fun little game is in there. This whole post might come off as very self-deprecating, and let’s be honest – it is, but writing it has helped clear up a lot of this game and where it’s going in the future.