Monday, October 29, 2012

The Essence of Air Fortress

So recently, I was going through my box of my old NES games and came across Air Fortress. I remember getting a lot of enjoyment from this game but you wouldn't guess that from looking at a few screenshots. The graphics are simplistic, the play control is straight forward but fairly basic, there's only a few songs in the game and they aren't very extravagant. But it's still a catchy game in a rather niche style. In fact there's only a couple games I can think of that are similar and none of the have it all.


What is it that makes it unique? It's three games in one: a side scrolling shooter, an endurance platformer, and a maze game. It's like a mini Iron Man competition. Each level/fortress starts as a side scrolling shooter representing your approach to the air fortress. While the combat is simple, the real goal is to collect as many powerups as possible because you'll need them inside. Once inside the goal is to find the core, destroy it, then find your way to the exit and escape. Inside is an endurance game. It's nearly impossible to completely avoid all the damage, and flying around with your jetpack also consumes energy. Once you destroy the core you have to find your way to the exit which you've hopefully planned a route to because you have a limited amount of time until the fortress explodes.

I've always had a fondness for dual mode games such as Blaster Master or The Guardian Legend, but Air Fortress brings something special. In Blaster Master the over world and lairs are like two separate games that you play in alternating turns. However, in Air Fortress they modes are intimately linked; the better you do on the approach, the easier the fortress is. Plus, Air fortress taxes your navigation ability.

Considering the recent trend of making retro styled games, I was thinking about how I could take the basic template of Air Fortress and spin it into something new. Ultimately, because of its mixed format, I would have ultimately needed to make two games and I didn't want to spend the time necessary to make two good games. So instead I'm going to give out my notes for all you intrepid game designers who are up to the task.

First lets restate the template of Air Fortress; there's three phases to each level: 1. Play a game that's easy to finish but the goal is not to win so much as win with the highest score/supplies possible. 2. Play an endurance based exploration game where the required skill is based on the supply levels from the first. 3. Navigate back through the level to the exit. Note, part three also adds some tradeoffs. Spending more time in part two to better learn the path will consume more resources.

Randomization is important for the level designs. It will stress short term memory and reflexes more than memorization. The first part could be assembled from a collection of chunks with some easy, med, hard powerups to collect in each segment. This part doesn't have to be a side scrolling shooter, it could be a something like Doodle Jump or even Infinity Blade, but it should not allow backtracking. You only get one shot at this. Other, less themeable, options are a puzzle game where you get points for combos, or a DDR like timing/reflex game. Just remember that the point is to measure how good the player is at a certain task, and reward them with a proportionate amount of resources for the next section.

The second part should also be randomized. If the player memorizes the maze, it takes away all the challenge. The type of game for this part is a bit more constrained because it has to allow backtracking and exploration (it is a maze after all). It doesn't have to be a platformer though. It could be a top-down game like Zelda (or The Binding of Isaac).

The last part is just a basic game of backtracking/maze navigation. If you wanted to up the challenge you could add some damage to the level to block off paths that were previously available.

By designing the game like this, the difficulty can be automatically balanced. For each segment of the level statistics can be kept on average energy earned/lost. With that information your algorithm can generate levels that reach a desired size (max energy) and difficulty. For example if you have a level where the 90th percentile energy collected is equal to the 10th percentile damage taken, it is going to be nearly impossible. But when you have a level where the 10th percentile energy collected is equal to the 90th percentile damage taken, then it will be exceedingly easy. You could even calculate the players skill over time and generate a level perfect matched to the skill level.

One last thing I saw in Air Fortress: it used a neat trick to balance out the difficulty of the rooms. Every action as well as getting hit drained your energy, but getting hit also drained your max energy. When you completed an area, your life was restored to maximum. This way you still have to conserve your movements because if you waste your energy you'll be an easy target, while at the same time each room provides a more consistent challenge because of the energy reset.

If you have any thoughts on game styles to use for the various parts, please leave them in the comments section. If you go ahead and make a game like this, be sure to send me a beta invite.