January 25, 2005

The Ramble Chronicles: Combat 1

Driving home today, I made a number of decisions about the future evolution of Ramble. So far, I've been patterning it after games where it's easy to die...and when you die you have to start over from the beginning. That's OK for me, after all; I have a longer attention span, and I know how the game works. But Dave, I think, finds it annoying. So I'm going to change things so that if you die in the dungeon you wake up back in town, ready to go--but having been penalized seriously enough to give death some sting.

Second, I think I'm going to re-randomize most or all dungeon levels each time you visit them. That makes the game harder, but also more interesting and less predictable; it also improves the game economics in ways I'll go into another time.

But the big change is that I'm going to abandon the Advanced Dungeons & Dragons combat model for that used by Angband. The AD&D rules are copyrighted, of course, and while I don't think Wizards of the Coast are going to come after me if I use their combat model I'm still uncomfortable about releasing a game on the internet that uses copyrighted rules. But that's by the way.

The main reason is one of complexity. To be blunt, the AD&D rules are too simple, largely because of the dungeon economics I keep talking about and not defining. As an example, let's look at the "to hit" computations.

Making a hand-to-hand attack involves two steps. First it's determined whether you hit your opponent; then, if you hit it's determined how much damage you did. In AD&D (2nd Ed.), the "to hit" decision is determined by a number of factors:

  • Your opponent's Armor Class, or AC. This is a number from 10 (no armor) to -10 (astoundingly good armor). The better the armor, the harder they are to hit.
  • Your own THAC0 ("To Hit Armor Class 0") score. For a warrior (the only kind of character supported by Ramble at the moment), THAC0 is (21 - Level), with a minimum of 1. Thus, a first-level (i.e., novice) warrior will have a THAC0 of 20.
  • One roll of a 20-sided dice, marked 1 to 20.
    • If you roll 1, you always miss.
    • If you roll 20, you always hit.
    • Otherwise, you hit if you rolled higher than (THAC0 - AC). For example, if you're a first-level warrior fighting a monster with armor class 7 you need to roll higher than 20 - 7, or 13.
  • A small number of factors can influence this result. High strength can decrease your THAC0, making it easier for you to hit. High dexterity on the monster's part can increase its AC, making it harder to hit. Magic swords and armor can have similar effects.

You may well ask, "How can that possibly be too simple?" In two ways: first, it's too difficult to improve; second, there are too few gradations.

In a game like Ramble, there are two opposing forces that contribute to the fun of the game. The first is a sense of danger. The monsters really have to be able to hurt you, and maybe kill you. You have to be alert and pay attention. The second is a sense of improvement. As you play, you need to feel you're getting better -- that the monsters that gave you so much trouble early on are no more than a nuisance. Then, of course, you need to move on to more difficult monsters, and so on in a cycle.

Creating a sense of danger is no problem--just make the monsters a little more powerful, if things are two easy. No big deal. It's that sense of improvement that's the issue. So how can the player improve in combat? According to AD&D, he can improve in these ways:

  • He can increase in rank. Each level he gains decreases his THAC0 by one and improves his chance to hit. But after level 20, it's all over.
  • He can increase in strength or dexterity, which is a blunt hammer. These stats affect so much that they should be allowed to increase only rarely. In particular, they should never be allowed to increase early in the game.
  • He can gain a magic weapon. But even a minimal +1 magic sword has the affect of decreasing his THACO by 1; it's like gaining an entire level

In short, if I use the AD&D rules I'm presented with a serious problem. All of the possible improvements are really too strong. More than that, the total number of gradations in ability is low. I can either make improvements frequent and have the player top-out quickly (which makes for a shorter game than I have in mind) or I can make improvements extremely rare and increase the player's frustration.

The root problem is that the AD&D rules are designed for playing with pencil, paper, and real dice at conversational speed. Battles can take anywhere from minutes to hours. The total number of monsters a player slays during a session is usually going to be small. In Ramble, by comparison, a battle with a monster can take just a few seconds, and (as the game is currently written) you can fight 30 of them in just a few minutes. More than that, the computer can easily do computations that would become really annoying if you had to do them by hand.

The Angband combat model differs from AD&D in taking many more things into account, and in offering a much finer set of gradations. Your armor class, for example, starts at 0 and can go up almost indefinitely (one recent character of mine had an AC around 150). A new character might have an AC of 4, but with the benefit of a little gold that can quickly be increased to 16 or 20 after a short time playing. Similarly, a sword with +1 to hit isn't nearly the advantage that it is in AD&D, and so it can be much easier to acquire.

In short, the Angband model provides for a wider array of much smaller improvements, which allows the player to improve frequently over the course of a very long game.

Those who are interested can find details about Angband's "to hit" and damage computations here.

Of course, I could just go ahead and develop a whole new combat model; but Angband has been carefully honed over more than 20 years, resulting in a carefully tuned and well-balanced model. Anything I'm like to come up with along the same lines isn't likely to be as good. And I don't need to implement it all at once; I can add features as Ramble grows and evolves. I'll doubtless have more to say about that as I adopt things bit by bit.

Posted by Will Duquette at January 25, 2005 06:45 PM