I usually write about recent updates, but today I'll share some thoughts about what I'm about to do: design and implement Firecracker Fight's "Endless Mode." There are three parts to this exercise and I'll try to explain how I'm approaching them. And I'll give you my thoughts on the "ready, fire, aim" approach. Now that I've used the term twice you'll know I wasn't just drinking more than usual when I wrote this.
Okay, straight to the point. The three parts of making Endless Mode, or any level design, are:
Those three correspond to the now-classic strategic approach of "ready, fire, aim" attributed to Michael Masterson. Deliberately rewriting the cliche of "ready, aim, fire," he basically reminds us you'll hit your target faster if you ready yourself, take the shot, and then aim again based on what you learned from the first one. Although it's a good way to play a shooting game like Firecracker Fight, it's also a great way to approach the design of the game.
"Ready." The difficulty ramp
When I say difficulty ramp, I mean the gradual increase and fluctuation of difficulty as the level progresses — and this is important — relative to the expected skill level of the player at that point in the game. Remember that difficulty is on a scale, with frustration and boredom at the extremes, but with the magical state of flow in the middle.
Designing the progression in absolute terms is a starting point. Enemies become faster, more numerous, and harder to kill. But you also have to take your expected player's capabilities into account. At this point have they ingrained the game's combo moves in muscle memory? Or do they even know they are possible? In Firecracker Fight, it makes a huge difference if you expect players to line up one throw at a time and still only get close enough for partial damage, as compared with anticipating each enemy and placing a one shot kill down every tank hatch before they get all the way on the screen. Endless mode will be playable for a novice, but you won't get far unless you're on your way to mastery.
So today as a first step, I'll be visualizing that difficulty ramp in terms of 20-30 second segments of enemy encounters, with ranges of positive to negative 100% difficulty, relative to player skill. This is assuming they were good enough to get that far already. I'll want a minute or two of mindless ease, quickly ramping up to a climax where you might have to die 20 times before you get every shot perfect. Then I might give you a break, before three minutes worth of hard, intense challenge you can get through on the first try, if you don't make any serious mistakes. And so it will go.
At this point I won't be assigning stats, I'll just be graphing the difficulty levels. I very much recommend this as an abstract exercise, so later when you're building and refining, you have a standard by which to measure.
"Fire." Building a first version
Next I'll take a shot at the details that implement the difficulty ramp, through waves and stages. As of today, the finite 20 levels of Firecracker Fight are almost, but not quite, ready to use as a base. We only recently implemented the full damage done by enemies, and that made the game punishingly hard. Too hard is a good place to be though, because it's much easier to scale back difficulty to just-right, than to extend difficulty into untried territory. Think of it this way, if we're playing catch, it's easier for you to tell me, "throw it half as fast," than "throw it so fast I almost can't catch it."
But basically I'll take the finite levels when we have them working right, and I'll stock Endless Mode with variations of them.
I would love to design an algorithm that can extend this experience infinitely. But I discussed this with the developers and we agreed it's not practical. It's possible — try my favorite block breaker, BBTan. But Firecracker Fight is less abstract and has more variables, and I believe here it's better to build a more varied but finite sequence, culminating in a final, high-challenge stage that simply never ends. Like classic arcade games of the 80s, at that point it will be a trial of how long you can play without making a single mistake. Unlike the finite 20 levels, Endless Mode does not end in victory, except as measured against your personal best.
"Aim." Test and Refine
Once that's done, I'll just make adjustments to the system, until it delivers something close to the experience described by the difficulty ramp. I expect to do this similarly to the finite levels, but adjusting the number of enemies of different types, and how long between them.
I hope this has been an interesting journey through level design. If it gave you insights into other experience designs you might be working on, great! Remember to subscribe for more like this, and news of upcoming game launches.
Low Five news. Privacy guaranteed. Cancel any old day.