Thoughts On A Combat System



Yes, roll your eyes and yawn: it’s another article about combat systems in Adrift games.
.
.
.
.
.
.
Still with me? Good. Then I’ll proceed.

After having a bash at various ideas for combat systems in one game or another, I was left with the conclusion that combat systems just aren't very interesting. In graphical games, they're great because you get to look at all the fancy special effects going off, you can work on your strategies, plan tactics, etc, etc, but in a text adventure all you’ve got to look at is, pretty much, this kind of thing:

> hit goblin with sword
You hit the goblin with the sword and inflict 2 points of damage.
The goblin hits you with its axe and inflicts 3 points of damage.

> hit goblin with sword
You hit the goblin with the sword but miss.
The goblin hits you with its axe and inflicts 1 point of damage.

> hit goblin with sword
You hit the goblin with the sword and inflict 5 points of damage.
The goblin hits you with its axe but misses.

No matter how you vary things, how you change the text to make the basic descriptions more exciting, what you're left with at the end of the day is still just lines of text scrolling by on the screen and which just isn't very interesting.

So I got to wondering how best to write a game that uses combat and yet make it so the player doesn’t end up quitting the first time they're forced to fight. I came up with the idea of some descriptive text for each round of combat, probably something along the lines of:

You and the goblin attack each other, your sword whistling through the air as it hits your enemy, knocking it backwards. The goblin roars in anger and attacks on its own; fortunately the blow fails to land as it missed your arm by a fraction of an inch.

Better than before, but still a long way from being workable. This also introduces the problem of there needing to be a lot of descriptive text for even a relatively short combat. Above, you have a single round of combat in which the player hits and the goblin misses. Ideally you'd need to allow for:

* the player and the goblin both hitting
* the player hitting and the goblin missing
* the player missing and the goblin hitting
* the player and the goblin both missing

Four lots of descriptive text for each round of combat, and the combats might last for half a dozen rounds or more. So each combat in the game would require at least twenty-four different sets of text for it. A lot of work indeed. Then, too, you're faced with the problem that the descriptive text in itself isn't really that interesting for the player when it’s scrolled past their eyes for the tenth time in succession. Using the ALR to vary the descriptions would work to some degree but you’d still be talking about a considerable amount of time and effort.

So back to the drawing board: how to make a combat system that works but isn't boring?

I decided to go back to the basics of what a combat system is: namely, a way to determine who wins a fight. Ideally this doesn’t need to take place over a number of rounds because it ought to be possible to determine who will win and who will lose based on the respective abilities of each combatant before the combat even begins. If the player has better fighting abilities, better weapons and better armour than his adversary, he’s going to win. If on the other hand, he’s weaker than his adversary and with worse weapons and armour, he’s going to lose.

Simple.

You could even put in some descriptive text for winning and losing. With just two possibilities, it wouldn’t require a lot of text for each combat and would be an easily manageable amount.

Of course, the obvious problem with this is that there's no real sense of adventure in it. If the player is tougher than his adversary, he wins. If he’s weaker, he loses. It’s also kind of depressing from the player’s point of view to know that if he loses a combat once, he’s going to lose it every time because his adversary’s tougher.

So to keep things moving smoothly, we need to introduce a randomness element. Probably in the following format:

* If the player and the adversary are of equal powers, there ought to be a 50/50 chance that the player wins.
* If the player is slightly tougher than his adversary, the odds ought to be 60/40 on the player’s behalf.
* If the player is a lot tougher than his adversary, the odds ought to be 70/30 on the player’s behalf.

And so on…

Likewise:

* If the player is slightly weaker than his adversary, the odds ought to be 40/60 on the player’s behalf.
* If the player is a lot weaker than his adversary, the odds ought to be 30/70 on the player’s behalf.

And so on…

So the randomness is back but is this the ideal combat system? No. Why not? Because this way the combat is over with too soon. It’s basically a one second combat that ends with either the player dying or the adversary dying with no way of affecting things beyond that.

How to get around this? A round-by-round combat system isn't going to work, and nor is a combat that is decided in a second. Being killed due to purely random elements would annoy most people; if it happened right at the end of the game, it'd be the kind of thing that would get people quitting the game in droves.

A game I'm working on now – provisional title Shattered Memory but likely to change before (if) it gets completed – uses a combat system in which everything is decided in a single round. Originally I had it that the player died if they lost the combat round; then I decided that was a bad idea because it either meant starting the player off with great fighting abilities and/or weapons to give them a decent chance of pulling through, or risking everyone quitting the first time they found themselves killed by a randomly rolled variable. One way I saw past this was to introduce one of two ideas:

* The player can’t die no matter what. Either he’s got some kind of power that returns him to life if he does die or simply prevents him taking enough damage to kill him. Nice idea in theory but how long it is likely to be effective for? Sooner or later, you're going to realise you're playing a character who can’t die. After that, the edge that the combat system is intended to introduce is lost because the player is aware he can’t die and so starts taking unnecessary risks.

* The player can die… but with consequences. Say, each time the player dies, he suffers a score penalty, or loses an item, or a part of the main game quest is cut off for him. Nothing fatal in itself but enough to convince whoever’s playing the game to be more careful and to take less risks.

In all honesty, it’s likely to be impossible to design a combat system that’s ideal. You either have endless amounts of text scrolling past the player in the format listed first above, or you have a combat that’s over in the blink of an eye. Saying that, I still think the combat systems are fine in principle. It just needs someone to go and make a really good one.