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.