[MUD-Dev] Modelling combat

Travis Casey efindel at earthlink.net
Mon Jul 17 13:24:17 New Zealand Standard Time 2000

Friday, July 14, 2000, 12:16:06 PM, Vladimir Prelovac <tomcat at galeb.etf.bg.ac.yu> wrote:

Various random comments...

> It is interesting to speak about combat systems because no one knows for
> sure what is the formula that "nature" uses in real combat to check if one
> hits another. I think it might be intersting to discuss.

If you're interested in game systems, you might want to check out the
rpg-create list on egroups.  It's a mailing list for RPG designers to
talk to each other.  The focus is mainly on paper RPGs, and some
people on there don't like computer RPGs, but if you just talk about
systems and don't mention that they'll be implemented on a computer,
no one will probably even notice.

> For example if you look at two very powerful and skillful characters engaged
> in combat, it may last for very long time with both of them dodging and
> parrying other person's blows until they both fall to the ground exhausted
> (a combat in "Red Sonia" movie betwee Arnold and the girl comes to my mind).

Comment:  movie combats are not a good place to look to see how real
combat works.  Now, for a mud, you're probably more interested in
making it "seem right" than *be* right, so movie combats can be good
examples, but I just wanted to point that out, since a paragraph
before you were talking about how real combat works.

> My idea was that two equally skillful fighters would hit each other 50% of
> the time. That is a starting fact that I based my model on. Equally skilled
> fighters are for example two total newbies or two most powerful players in
> the mud (of lets say same level)

> so this is how I did check_hit(attacker, defender) function


[snip lots]

> Then the crucial part comes.
> I felt like that in combat you can not MISS your opponent. This was very big
> step to make but after some thinking (and some simulations of combat with my
> friends - that was fun) we agreed. So you always want to hit your opponent,
> and you cant not miss them, but rather they will avoid your attack with
> dodge, parry or block.

There are ways to miss an opponent in combat without the opponent
actively defending.  Here's a few:

 - Misjudgement.  In real combat, one of the most important things to
   do is to maintain proper range.  What this is depends on how much
   reach each of you has, but in many cases you'll end up with a
   situation where you have to step in to attack.  Beginners sometimes
   misjudge the range, and in doing so attack when they cannot
   possibly hit their opponent.  This happens because they're trying
   to stay out of reach of a counterattack while attacking.

 - Coincidence.  Not all movement in combat is part of a defense.
   Sometimes it simply happens that you attack just as your opponent
   moves -- either to attack you, or to shift position, or for some
   other reason.

 - Accidental stop-hit.  That is, you launch your attack, only to find
   that your opponent attacks at the same time and is faster.  This
   can result in a double-hit, but it can also result in your missing.

 - Distraction/interference.  In a full melee environment, where you
   are not fighting one-on-one, there's always a chance that something
   someone else is doing will mess you up.  This blends into the next
   and final method...

 - Bad luck.  Sometimes things just happen, especially once you move
   out of the controlled environment of a dojo.  You step in to attack
   and step in a woodchuck's hole.  You swing and the tip of your
   sword hits a nearby tree and sticks.  Your opponent trips and your
   thrust goes right over him.  And so on.

Between two fighters in a controlled environment, when one can be sure
that the other fighter is not going to attack while you try to, it's
all but impossible to miss, yes; but how many mud fights take place
under such circumstances?

That's not to say that the chance of hitting should be very low --
against someone who's not defending, I'd say it's 90% or more.  Just
that in a real environment, nothing is 100%.

One final note here:  I'm assuming you're only talking about melee
attacks.  Missile attacks are subject to a lot more variables.  Try
throwing rocks at a telephone pole from 20 yards away and you'll see
that right away.

> So after attacker's bonuses are calulated a roll is made to randomly
> determine what kind of a blow was that - kind that is best dodged, parried
> or blocked. This maybe arguable, but this is a model and it is made to work
> in big numbers.

> there is 40% chance that the blow is of that kind that it would be best to
> dodge it.
> 35% is for parry, and 25% for block.

>From what you give below, it seems that you're using "parry" to mean
"parry or block with a weapon" and "block" to mean "parry or block
with a shield".  I'm proceeding on this assumption below.

(A couple of notes here:  a "block" is generally taken to be a method
of stopping a blow by absorbing the full force of it -- this is best
done early in the attack before it has much force behind it.  A
"parry" deflects a blow, applying force to redirect it to somewhere
other than the intended target.  "Dodging" is moving yourself to avoid
a blow.

It is possible to parry or block with either either a shield or a
weapon -- shields can be used to deflect blows, and weapons to take
the force of a blow.  It's also possible to parry or block *without* a
shield or a weapon, though it's often dangerous to do so against a
weapon.  However, if you have good armor, you may be able to do an
"unarmed block" (or parry) against many weapons safely.  For example,
in the Renaissance, rapier-and-glove was a style of combat -- the
glove being an armored glove that could be used to parry an opponent's
rapier, or even to grab it.

In reality, these three aren't solidly divided -- someone parrying a
blow will often move their body to take it out of the blow's new path,
and a counter may both deflect a blow somewhat and take some of its
force.  Also, it's possible to subdivide "dodge" into a few different

> These numbers are of course personal preference, and I "felt" them like
> those.


> there is a dodge, parry and shiled skill. bonuses are similar to those
> already described. Note: if parry was chosen and defender had no weapon to
> parry that attack, he would try to alternatly dodge it, but would have a
> certain penalty. That apllies to shiled block as well. I also made some
> compensation to those percentages (40%, 35%, 25%), so if a character does
> not have a weapon or a shiled, I assume he would make such moves that most
> of the coming attacks would be of type dodge (for example those numbers
> would become 65%, 20%, 15)

You might want a sort of heirarchy -- if something comes out with
block being best, but the character doesn't have a shield, then he/she
can parry at a penalty.  If he/she doesn't have a weapon, then he/she
can dodge at a greater penalty.

> SKILL varies from 0 - 100. bonuses may add another 100 or more.

> RESULT = ( (ATTACK - DEFENSE) + 100) / 2;

Another possible method would be to make it a skill vs. skill test.

  ATTACK + roll    vs.    DEFENSE + roll

If the attacker's total is better, the attack succeeds.  This gives a
50/50 split when ATTACK and DEFENSE are equal, and allows you to
manipulate how much of an advantage a point is.  For example, if it's:

  ATTACK + 1d4     vs.    DFEENSE + 1d4

Then a 4-point advantage is decisive.  However, if 1d100 is used
instead of 1d4, it takes a 100-point advantage to be decisive.

Yet another method would be to use the ratio:

  Chance to hit = [(ATTACK / DEFENSE) / (ATTACK + DEFENSE)] * 100%
> lets take a look at this. When two newbies fight, their skill is more or
> less 0, their bonuses are also around 0 (considered two average humans for
> example).
> result = ((0 - 0) +100) / 2 = 50

> I got a 50 % chance of one hitting another. The chance stays the same given
> that ATTACK and DEFENSE are not much different. Should ATTACK go up a bit,
> or DEFENSE go down,  chance for hitting raises, and other way around..

> I also put a 3% chance of making a certain miss, or incredibly well hit.

A common method in RPGs is to make how good a hit is (or how bad a
miss is) be tied into the margin of success/failure -- this is, how
much above or below the needed roll you were.  This has a couple of
effects:  First, it means that higher-skill attackers tend to do more
damage.  Second, it helps reflect the fact that defenses are not
all-or-nothing:  a dodge can make an attacker hit a less vital spot
instead of making him/her miss entirely, and the same with a parry.  A
block may still let some damage through.

> So that is how done it. Any comments welcome.

My comments above are meant as mostly minor criticisms; you've got a
solid core idea there.  Please consider the invitation to rpg-create;
if this is the sort of thing you enjoy thinking and writing about,
you'll fit right in there.

       |\      _,,,---,,_    Travis S. Casey  <efindel at earthlink.net>
 ZZzz  /,`.-'`'    -.  ;-;;,_   No one agrees with me.  Not even me.
      |,4-  ) )-,_..;\ (  `'-'
     '---''(_/--'  `-'\_)   

MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list