on Mar 31, 2006
In KOTOR, bringing down Darth Malak with a lightsaber is like felling a tree with a herring.
A few weeks ago, I talked about how the d20 system (You know: Hit points, damage rolls, and health potions) was great for tabletop games but terrible for video gaming. I suggested that developers would do well to come up with a new system for dealing with deadly combat rather than using the d20 system when it doesn’t really suit.
The entire system collapses into nonsense when the player finds themselves fighting other large foes armed with deadly weapons. I find it difficult to imagine how a ten-foot ogre could hit you with an axe in such a way that it did not kill you, much less allow you to continue fighting. You get away with this when a DM is narrating the game, but when you see it happen on the computer screen it just looks silly.
The worst abuse of this system happens in the various Star Wars games where you engage in lightsaber combat. In all the games I’ve played, what you end up with is two champions standing toe-to-toe, hacking away at each other with lightsabers. They stab each other and the player downs the occasional health pack, and this continues until one of them finally accumulates enough lightsaber wounds to die. It looks utterly ridiculous. It doesn’t make sense. It doesn’t even feel like a swordfight. We need a new gameplay mechanic that allows for one-on-one duels. Here are some requirements:
- We need a system that allows two characters to do battle with things like lightsabers, which deal lethal or near-lethal damage in a single blow.
- We don’t want to re-create the mechanics of ACTUAL swordplay, where the two combatants fight a long stalemate while waiting for their foe to make a single mistake that can be exploited. We never want the player to just hammer away at the attack button, waiting for the random number generator to give them a break and let them strike down their enemy. That would be tedious and frustrating.
- Like the system of hit points, we need a system of PROGRESS, where steady effort can be used to bring down your foe.
- The battle should have strategy. In movie swordfights, the characters move all over the scene, using the environment to try and gain some advantage. In video games, there is no reason to move around, so the fighters just stand there and trade blows. Yawn. We need to keep the fight mobile.
- The system needs to make sense and be intuitive. While my explanation might be long, my goal is to create something that can be understood in a few minutes or less. Ideally, the system should be obvious and require only minimal explanation for the newbie.
Let’s start simple. We assume that we have a game with one-on-one combat using deadly weapons. From here on I’ll mostly discuss the system in terms of lightsaber fights, although all of this can apply to everything from rapiers to battleaxes. Let’s also assume we are dealing with player vs. computer combat here, and not player vs. player.
Aside from the attack button, you can press forward to move closer to your enemy, and back to step away from them. Right and left will cause you to circle them, slowly. (No FPS-style circle-strafing here.)
Right now we don’t need any high attack / low attack buttons, or a block button, a duck button, or anything else. A lot of these functions will be superfluous, and others will be emergent.
The Focus Meter
The first step is to throw away the hit point bar. We don’t need it. If someone gets hit, they die. Instead of hit points, we have “Focus”. You can call this whatever you like: Balance, focus, concentration, defense, ki, zen, or whatever label you think best conveys to the player “this is your ability to defend yourself”. When your foe takes a swing at you, your character will deflect the blow with their weapon, and you will lose a bit of Focus. If your Focus runs out, you will fail to stop their attack and they will fatally run you through.
With this small change we now have a system that works just like the old hit-point system, except the game will no longer show the combatants hacking away at each others’ midsections until one of them falls over. The gameplay will work the same, but look a lot more reasonable.
But we can do even better…
The Stamina Meter
Boxing games have this. Every time you take a swing, your stamina goes down a bit. You can take between five and ten swings before this meter is empty. At that point you need to stop and recover for a few seconds, and your foe will have the opportunity to strike back. If you continue to attack, your exhaustion will cause your swings to be slow and clumsy. Your foe will be able to fend off your blows easily, and you will not damage their Focus.
Furthermore, pressing the attack when you are drained will damage your stamina, meaning your meter will either fill more slowly or not fill all the way, thus reducing the number of useful attacks you can make in the future. This is a gradual thing: Occasionally taking an extra swing is no big deal, but relentlessly abusing your arm will seriously weaken you and put you at a great disadvantage.
Fighting for position
Let’s get our fighters moving:
If you are above your foe (on a ramp or steps) then your attacks will be stronger (take away more of his Focus) and his attacks will drain more of his stamina (thus limiting the number of attacks he can usefully deliver). So, the high ground is something to strive for. You want to press your advantage when on the high ground, and give way when your foe does. There are other situations that also create a disadvantage:
- Having your back to a wall.
- Being blanced on a narrow ledge, beam, or tightrope.
- Having your back to an abyss, dangerous machinery, flames, or other area where you cannot retreat.
- Standing on unstable ground, like crumbling rock or a swinging rope bridge.
When you are attacked, you will be slowly pushed back. Much like a real duel, every odd blow will force you to take a small backward step as you defend yourself. Meanwhile, your opponent will be chipping away at your Focus. You can choose to back away from your foe while he attacks. This will cause you to give up ground more quickly, but also gives you a defensive advantage that will reduce the Focus damage you will take. You can also do the reverse, and push forward (against your foe) as he attacks. This will cause you to hold your ground at the cost of taking more Focus damage. Note that fighters can always walk forward faster than they can retreat, so it’s no good trying to run away.
As an attacker, you can choose to press forward as you attack, which will lessen the focus damage you inflict but allow you to push them back faster. This combines with whatever they are doing. So, if you are pressing forward while they are retreating, then they are going to give up ground very quickly, but you will be doing almost no damage. A smart attacker will use this to his advantage, and maneuver their retreating foe into a tough spot.
You can circle your foe much faster when attacking and much slower when defending. This means the attacker has the most control over where the fight is headed, and can steer an overly-defensive opponent into a corner. To put it another way, whoever spends the most time attacking will have the most control over where the fight is headed.
In the lightsaber games I’ve played, every once in a while the combatants will randomly lock blades for a few seconds. This is done for visual effect, and usually has no real bearing on the battle itself. But now we have a system where saberlock is an emergent part of the system. If the attacker is pressing forward and the defender is refusing to give up ground, then they lock blades and start pushing. Their stamina bars begin to drain. (Note that you cannot see your foes’ stamina bar.) You can release the controller and allow yourself to be shoved back, or you can keep pressing forward into your foe. Now it’s a game of chicken. Whoever runs out of stamina first will lose and get pushed back. The longer the saberlock lasts, the bigger the fall the loser is going to take. If it lasts only for a moment, the loser will move back a few steps. If the contest lasts a long time, the loser is going to get knocked off their feet and tossed onto their butt.
Adding depth and strategy
What I’ve outlined so far will make for a far more interesting swordfighting system than what we have now. Battles will look like real battles, with the combatants moving all over the area, vying for position, and looking for tactical advantages to exploit. Swordplay is no longer a button-mashing stab-fest where the player downs a healthpack or potion every few rounds. Boss battles can be long and varied without simply pitting the player against a guy with eleventy billion hit points. Battles should be exciting and look “real”. (Real as in: how it looks in the movies.)
But we can add some more depth to the game if we like. The following are a number of ideas to give the game even more interesting properties. Note that some of them won’t work well together.
- Each successive hit you deliver to your foe will be a little stronger (take away more of his Focus) than the previous, as long as your stamina meter isn’t empty. So, to maximize your efficiency you will want to get as many consecutive hits as possible, without going over. Lots of quick one-and-two hits in a row will do almost nothing to your foe. Too many “extra” swings will weaken you later in the fight.
- It costs extra stamina to attack when your enemy is in the middle of a chain of attacks. Generally you’ll only want to interrupt a chain of attacks if it’s really important, like your focus is nearly gone or you’re about to get backed into a bad spot.
- The power behind a swing should be both seen and heard. Potent swings should produce increasingly more high-pitched impacts and sparks, while weak attacks produce more muffled or subdued impacts.
- If you’re out of stamina and you attack, your character should give a very broad and heavy-handed swing. Instead of deflecting it with their weapon, your foe will lean or duck out of the way (basically they will dodge without giving up ground). This gives the player a visual clue that they need to stop swinging without needing to look at the stamina meter.
- All of this would go very well with a system of self-balancing gameplay. If you make Stamina, attack power, and Focus into stats that the player can improve over time, then you’ll have a very flexible system that can entertain gamers of all skill levels.
- This system works for fighting multiple enemies as well. Just like in the movies, your character can swing their weapon to intercept attacks coming from behind, even if they really shouldn’t know those attacks are coming. Heroes in the movies do this all the time and we accept it. Lesser foes would have very little focus and would require only a few swings to dispatch. Doing so can refill some of your lost focus, thus removing the need for healthpacks altogether.
- If you want more “twitch” in your game (you want to aim the game at hyperactive 13-year-olds with awesome reflexes) then you can go that route as well. You can add special combo moves and counter-moves and complex button sequences that will unleash devastating attacks. I won’t play such a game, but lots of gamers really enjoy this sort of thing.
- A more mild twitch idea: tapping the attack button in the right rhythm will give attacks more power. Just hammering away on the attack button as fast as you can will cause you to burn stamina more quickly. Hitting the button more slowly gives your foe the chance to counterattack and end your chain of attacks before you really get going.
- Add a taunt button. If you knock your foe away for a second you can hit this button and attempt to anger them. Doing so may enrage them, causing them to over-attack and abuse their stamina. Suddenly the dialog has real strategic value in the battle! The reverse could be fun as well, with the computer-driven enemy goading the player with taunts. If the writers are good and have crafted an interesting and believeable villian, then the player is going to be tempted to hammer away at the attack button carelessly.
I’m convinced there is money in this idea, but I lack the resources to do anything with it. Maybe someone will find themselves in a position to put these ideas to use. I really think someone needs to get ahold of the team behind the next Lucasarts Nerf-Lightsaber game and get them to read this thing over.
Shamus Young is an old-school OpenGL programmer, author, and composer. He runs this site and if anything is broken you should probably blame him.