Saturday, February 18, 2012

More insight on combat mechanics

Here's a little more insight on the combat mechanics in my search for the holy grail of roleplay damage calculation.  As posted previously I'm looking for a balanced system that creates an incentive for actual roleplay on the battle field rather than a stand and deliver  + cure light wounds mechanic.  All this around a game system based on Rifts and D&D.  Allowing for technology and magic, mechanics and supernatural beings to coexist at some time and thus do battle in real terms without instantly obliterating half the population with a blast.

In this post I'll review the basic combat between a dagger and leather armor.  We start off from the basics that the hit has been achieved and it is done by some d20 roll that has no armor modifier involved (as in classic D&D and AC/THACO).  It is a basic hit the object roll that includes skill, ability and some luck.

Now as you might recall a dagger does 1d4 and a leather armor protects with 2d4.  Running the numbers on a computer we get the table below.  Before you jump to it let me explain it a bit.

Each section is labeled for example  "Roll 1d4 * 1 + 0 vs 2d4 * 1 + 0".  This means a 1d4 with a identity (x1) multiplication modifier plus 0 bonus attacking a 2d4 defense also with a 1 multiplier (identity) plus cero bonus.  Below that are the probabilities of outcomes:

  • Full : means all attacking rolls breach defense rolls (aka max damage done)
  • Partial : means not all attacking rolls breach defense rolls (aka some damage done)
  • Blocked: means no attacking roll breaches defense rolls (aka no damage done)

The computer runs 100000 combat rounds and totals the outcome.  For the first entry (Roll 1d4 * 1 + 0 vs 2d4 * 1 + 0) 22.03% of all attacks breach the armor defense.  If the armor roll is deducted from the damager roll an average of 1.43 hit points of damage are delivered.  If we play by a passthrough all or nothing rule and no damage is deducted from the attack roll then an average of 3.57 hit points of damage are done.  To clarify:

Dagger roll : 4
Leather roll : 3, 2

The dagger overcomes the leather.  In a passthrough rule the dagger does the full 4 points to the character, otherwise the 3 is deducted for a 1 hp damage to the character.  This leads to the difference between 1.43 hp for blocked damage and 3.57 for full (passthrough) damage.

The next entry (Roll 1d4 * 1 + 0 vs 2d4 * 1 + 1), the armor is slightly better.  Maybe its magical or maybe its special dragon skin leather or just hardened futuristic stuff.  In this case each roll is benefited by an extra 1.  For example:


Dagger rolls: 3
Leather rolls: 2, 1 ( that become 3, 2 with the +1 bonus)

Leather then blocks the dagger's roll and the character receives no damage.  In this scenario the leather armor becomes more resistant and only 7.69 of all rolls breach the armor.  But when they do and you're playing with all or nothing then more damage (3.8 hp) is delivered on the average.  Further down you see +2 and +3 leather armor which become impenetrable to daggers (at least conventional ones).

Roll 1d4 * 1 + 0 vs 2d4 * 1 + 0





Stats: rounds % hits blocked damage
full damage
Full: 22029 22.03% 1.43 hp 3.57 hp
Partial: 0 0.00% ? hp ? hp
Blocked: 77971 77.97% 0 hp 0 hp
Roll 1d4 * 1 + 0 vs 2d4 * 1 + 1





Stats: rounds % hits blocked damage
full damage
Full: 7689 7.69% 1.2 hp 3.8 hp
Partial: 0 0.00% ? hp ? hp
Blocked: 92311 92.31% 0 hp 0 hp
Roll 1d4 * 1 + 0 vs 2d4 * 1 + 2





Stats: rounds % hits blocked damage
full damage
Full: 1538 1.54% 1 hp 4 hp
Partial: 0 0.00% ? hp ? hp
Blocked: 98462 98.46% 0 hp 0 hp
Roll 1d4 * 1 + 0 vs 2d4 * 1 + 3





Stats: rounds % hits blocked damage
full damage
Full: 0 0.00% ? hp ? hp
Partial: 0 0.00% ? hp ? hp
Blocked: 100000 100.00% 0 hp 0 hp



Now lets run a sword (1d8) against the same batch of armors.  A sword has a starting 60.61% chance of going through the armor.  As the armor is hardened magically it becomes harder 48.73%, 35.80% and 23.41% respectively.  And you notice how the damage increases when it actually does go through from roughly 6 to 7.3 (aprox 25% increase).  Which is also realistic in terms that the force delivered in such blows should be higher thus only high damage hits achieve any damage at al.



Roll 1d8 * 1 + 0 vs 2d4 * 1 + 0





Stats: rounds % hits blocked damage
full damage
Full: 60612 60.61% 3.03 hp 5.98 hp
Partial: 0 0.00% ? hp ? hp
Blocked: 39388 39.39% 0 hp 0 hp
Roll 1d8 * 1 + 0 vs 2d4 * 1 + 1





Stats: rounds % hits blocked damage
full damage
Full: 48726 48.73% 2.55 hp 6.45 hp
Partial: 0 0.00% ? hp ? hp
Blocked: 51274 51.27% 0 hp 0 hp
Roll 1d8 * 1 + 0 vs 2d4 * 1 + 2





Stats: rounds % hits blocked damage
full damage
Full: 35802 35.80% 2.08 hp 6.91 hp
Partial: 0 0.00% ? hp ? hp
Blocked: 64198 64.20% 0 hp 0 hp
Roll 1d8 * 1 + 0 vs 2d4 * 1 + 3





Stats: rounds % hits blocked damage
full damage
Full: 23413 23.41% 1.67 hp 7.32 hp
Partial: 0 0.00% ? hp ? hp
Blocked: 76587 76.59% 0 hp 0 hp



Now lets take a bastard sword 2d8 vs improving armors 1d6 for thick cloth armor, 2d6 for scale leather (bit better than 2d4 basic leather seen before), 3d6 for chain mail and 4d6 for scale mail armor.

As you can see basic cloth armor has no chance whatsoever at stopping a bastard sword.  The best it can do is a partial block (23.68% of the time) and stop one of the swords die.  Scale leather has a 25% chance of stopping all damage from the sword.  Chain mail aprox 35% and scale mail 40%.

Roll 2d8 * 1 + 0 vs 1d6 * 1 + 0





Stats:





Full: 76321 76.32% 6.91 hp 9.99 hp
Partial: 23679 23.68% 2.15 hp 2.15 hp
Blocked: 0 0.00% 0 hp 0 hp
Roll 2d8 * 1 + 0 vs 2d6 * 1 + 0





Stats:





Full: 41083 41.08% 5.68 hp 11.56 hp
Partial: 33878 33.88% 2.17 hp 5.82 hp
Blocked: 25039 25.04% 0 hp 0 hp
Roll 2d8 * 1 + 0 vs 3d6 * 1 + 0





Stats:





Full: 28846 28.85% 5.07 hp 12.31 hp
Partial: 36246 36.25% 2 hp 6.47 hp
Blocked: 34908 34.91% 0 hp 0 hp
Roll 2d8 * 1 + 0 vs 4d6 * 1 + 0





Stats:





Full: 22478 22.48% 4.58 hp 12.84 hp
Partial: 36731 36.73% 1.89 hp 6.82 hp
Blocked: 40791 40.79% 0 hp 0 hp


So how does all this fit into combat.  Well lets say you always work on a 10 to hit on a d20 for an unskilled character.  I roll and get a 6 then I miss, but if I roll a 16 I hit.  I then roll damage and let the defender's armor roll damage to stop the damage.

Of course there are skills and abilities to consider.  A proficient swordsmaster would get +4 to hit plus say -2 for the targets dexterity.  If so an 8 not a 10 would be needed to hit.  Yet once the hit to the target is achieved then the weapons and armors sort it out.  I think this gives out some very nice numbers as to the probability to do damage and the amount of damage delivered.  It also invites the character to actually try to dodge, parry and take cover not just stand and deliver.

What do you think? I'd love to hear feedback on this.

Getting back to RPGs

Ok so here we go. It's been quite a while since I posted to this blog and mostly on tech topics when in fact Saurondor comes from a role-play adventure setting. After some years of not playing much I finally got back to Rifts which I hadn't touched in a decade. I'm starting off by sorting out the mess Rifts might seem to be and laying out a more magic centered scenario. I'll be posting updates of my updates and playability adjustments as I go along.

Key elements in my campaign setting are:

  • Recreate a Dungeons and Dragons type setting with magic, fantasy and swordplay 
  • Use a mana based magic system, I really really really hate AD&D's precognositive learn everything in the morning spell system. I'm looking for something more dynamic. 
  • Solve the Mega Damage issue in Rifts. One hundred to one MDC to SDC is way too much. I'll either take it down to 10 to 1 or 5 to one or put some limitation like MDC weapons needed to damage MDC equipment, but MDC = SDC point by point. Something like magical weapons needed to hurt certain beings in D&D, but HP stay the same.
The campaign setting starts off in the Andes.  The southern most parts of the Andes.  I'm starting off with a little outpost named after an actual town in the area called "El Sordo".  The setting is starting to look like something out of Avatar.  Lots of magic, a big Millenium Tree, elven population, forest setting, etc.  If all goes well I'll have this campaign rolling in a week or two and update.

UPDATE: I found an interesting article regarding damage and armor systems.  The following post will address that.

Alternative Damage System

After reading over Jason's post I've been giving it some thought about the system he proposes there and how to keep it simple as clearly so much die matching can become a real pain.  Previously I've played with AC (armor class) systems that require a die roll to hit (D&D's THACO), or on the other hand some AR (armor rating) the damage roll needs to exceed to overcome the armor and inflict damage.  Jason's proposal seems a lot more granular albeit a bit more complex to handle.  In the next few posts I'll be going over this model with some statistical data to see how well the game balances out.

The objective is to create a balanced combat system that can support medieval weapons, modern age weapons, magic and future weapons as well as mecha and fantastic creatures.  Now lets get started on what I've got so far.

Overall the idea is that you have weapon and armor die ratings.  For example:

Weapons have the classic ndm*p + q description.  Where n is the number of die to roll, m the die type, p the multiplier and q the bonus (magical weapons for example in D&D).


dagger 1d4
sword 1d8
arrow 1d6
bastard sword 2d8
magic missile 1d6
lightning bolt 3d6
fireball 3d6
.22 pistol 2d6
.223 M16 round 2d8
napalm 6d4
white phosphorus 4d4
flame thrower 5d6
hand granade 3d6
sniper round 2d10
50 cal 2d12
20mm cannon 1d10*10
HEAT round 2d10*10
AP round 2d10*10+2


leather armor 2d4
chain mail 3d6
plate mail 3d8
balistic vest 2d8
balistic vest+ceramic 2d10
blast vest 5d8
APC armor 50mm 2d10*10
Tank armor 100mm 3d10*10
Chobham armor 5d10*10+3


As you can see from the last entries on the table armor also has a die roll.  What is defined is the number of die rolls it has available to match the damage rolls on an individual level.  For example a dagger can roll between 1 and 4.  The leather armor can roll two values between 1 and 4, not one single value between 2 and 8 as is common in 2d4 rolls (as explained in Jason's blog).  Example

Dagger rolls : 2
Leather rolls: 1, 3

We order from highest to lowest:

Dagger : 2
Leather : 3, 1

The leather effectively stops the dagger.  It has in a way two opportunities to stop it.  This concept of opportunities or statistically speaking of another event occurring given a prior event is what makes this mechanism interesting.  The leather armor still has a good chance of rolling a high value after it rolled a low value on the first roll.  Now lets match the leather against the sword.

The sword rolls 1d8.  The leather has two opportunities to stop it, but it can only roll up to a 4.  For example:

Sword rolls : 3
Leather rolls: 2, 3

The leather once again stops the blow.  Since after we order the values the leather's 3 stops the sword's 3.  But the sword could very well have rolled 5, 6, 7, or 8.  Values the leather can never stop.  For example:

Sword rolls : 6
Leather rolls: 4, 4

Even when the leather rolls two 4's (the best it can) it can not stop the sword.  The sword still defeats the armor because it is simply a better weapon.  Actually 50% of the swords rolls (5,6,7, and 8) defeat the armor.  You want better protection get chain mail (3d6) that's three opportunities at stopping the sword, but the sword can still defeat you cleanly 25% of the time (rolls 7, or 8).  Want better than that get plate mail which is the first that can totally stop a sword dead on its track.

Now after having the computer run some number crunching on 100000 combat cycles per weapon armor pair we have the following table with odds of perforating the armor and causing damage:




leather chain mail plate mail ballistic vest vest+ceramic
Examples





dagger 1d4 22.00% 4.00% 2.00% 5.00%
sword 1d8 61.00% 38.00% 19.00% 27.00%
arrow 1d6 48.00% 17.00% 7.00% 8.00%
bastard sword 2d8 87.00% 65.00% 41.00% 58.00%
magic missile 1d6 48.00% 17.00% 7.00% 8.00%
lightning bolt 3d6 100.00% 62.00% 45.00% 100.00%
fireball 3d6 100.00% 62.00% 45.00% 100.00%
.22 pistol 2d6 78.00% 38.00% 21.00% 25.00% 19.00%
.223 M16 round 2d8 88.00% 65.00% 41.00% 42.00% 32.00%
napalm 6d4 100.00% 100.00% 100.00% 100.00% 100.00%
white phosphorus 4d4 100.00% 100.00% 100.00% 100.00% 100.00%
flame thrower 5d6 100.00% 100.00% 100.00% 100.00% 100.00%
hand granade 3d6 100.00% 62.00% 45.00% 100.00% 100.00%
sniper round 2d10 92.00% 78.00% 62.00% 61.00% 47.00%
50 cal 2d12 95.00% 85.00% 74.00% 73.00% 62.00%
20mm cannon 1d10*10 100.00% 100.00% 100.00% 100.00% 100.00%
HEAT round 2d10*10 100.00% 100.00% 100.00% 100.00% 100.00%
AP round 2d10*10+2 100.00% 100.00% 100.00% 100.00% 100.00%


This table shows the odds of the given weapon penetrating the given armor.  For example the dagger has a 22% chance of causing damage to a character wearing leather armor.  Chain mail and plate mail go down to 4 and 2 % respectively.  A bastard sword has a high probability of causing damage to leather (87%) vs plate mail (41%)

What I find interesting is that ancient armor also has a good chance of stopping modern weapons.  A .22 cal can penetrate plate mail 21% of the time.  Which sounds reasonable to me.  Some of you will notice it has a better chance of penetrating a ballistic vest even when it is more modern.  And that is a good point, but plate mail is bulkier and covers a great deal more of ones body than a vest which is lighter and covers only the chest area.

This difference is seen in the number of die or overall coverage the armor provides, 3d8 for plate mail and 2d8 for the vest.  Each die represent more cover capacity by the armor while the value of the die itself represents penetrating power.  Napalm, flame throwers and general area of effect weapons always achieve some degree of damage and are marked as 100%.  For example plate mail against a flame thrower ( or dragon !) has a good chance of stopping 3 of its rolls, but 2 will certainly go through uncontested.  Example:

Dragon breath (aka medieval flame thrower) roll : 5 4 3 3 1
Armor Plate Mail roll : 7 6 5

The dragon breath's 5, 4, and 3 rolls are stopped by the armors 7, 6 and 5 rolls, but being engulfed in flames the character still takes 3 + 1 = 4 points of damage from the lower die rolls.  This is sheer heat the armor can't stop as it isn't air tight.

Beyond that we have the BFG rounds which have a multiplier and just beat the **** out of everything else, but enough for today.  I'll do some more math on this and see how it works out.  We still need to cover bonuses like the +1, +2, etc.  Which significantly change the balance of play as you'll see in a later post.  Making technology and magic so much more fun.  A 2d4+1 leather armor in this mechanism isn't as crappy as you'd believe if you come from D&D based systems.  I'll keep you posted!