Skip to Content

Attack rolls for a D20 like system

12 replies [Last post]
larienna's picture
Joined: 07/28/2008

I first posted on BGG, here is the original message


It's not really for a board game, but rather a video game RPG with a system very similar to the D20 system (Wizardry).

The objective is to avoid the following problems found in many video game RPG:

- Weak players cannot touch very strong creature because even with their maximum roll, the result would be below the target number to hit.
- Strong players cannot miss because their value are so high that even rolling the smallest value is a hit.
- Better stats is not that significant since a character can always catch up by raising levels or getting a better weapon.

I though of a combat system that looks elegant and simple to implement, but I wanted some feed back first.


The attacker use his attribute (1-20) as his "combat skill" + 1D20 + his level.
He must exceed/equal the defenders passive defense determined by: 10 + passive defense from equipment (1-20)

If the attack succeed, the player can perform multiple attacks. He substract 8 points from his combat skill and roll again for his 2nd attack. The process is repeated continued until the character fails (the -8 is cumulative for each additional attack).

In the system above combat skill increase with level and equipment, defense increase much slower only with equipment. The equipment modifiers gives generally up to +5. It could be possible to add only 1/2 level for less skilled characters in combat (ex:wizards). Of course, 20 are critical hit, and 1 critical failure.


- A weak player has little chance to hit a strong enemy and vice versa. So it does not fix the problem mentioned above.

For example, a player with a combat skill of 10 , level 1 vs a creature with a defense of 20:
(10+1)=11 - (10+20)=30 = -19. So the player need to roll 19-20 to hit. 10% chance.

A strong player with a skill of 18, level 10 vs a creature with a defense of 5:
(18+10)=21 - (10+5)=15 = 6, the have the following odds for each attack: 100%, 95%, 55%, 5%.
The player is almost sure to make at least 2 hits all the time.


Now I thought of an alternative way to manage this to avoid extremes.

- The maximum probability to his is always 80%, and the minimum probability to hit is always 20%.

This has the effect of avoiding impossible or auto hit.

- The maximum level is capped to 20.

This make sure that a character cannot catchup another character by simply adding more levels since he will eventually reach a limit. So basic stats are more valuable.


What do you think?


Most people said that it was realistic to use the original rule idea method, but I argued that playability was more important to me than realism.

Some people also suggested that I could use very complex system since it was for a video game RPG and the computer could do all the calculations. But since the game does not focus on story, and I want the game to be playtestable as a table top RPG, I insisted that the rules needed to be simple to implement and must be easy to understand/calculate by a real player.

Greggatron's picture
Joined: 04/21/2012
One way I could see getting

One way I could see getting around this is a lower level character is boosted up to the level of the creature they fight.
Offer max XP and loot drop chance for even match or 1 level difference creatures but anything stronger (and weaker) give xp/loot penalties.

Buffing should be simple. A lvl 5 in all lvl 2 gear is a shade stronger than a lvl 20 still in lvl 10 gear but the lvl 5 would get low xp and very very low chance at good loot if they win fight.

Some people do not like auto buffing but with levels usually granting new spells and abilities that offers advantages to higher creature and gear is just a hamster wheel while lvling anyway.

MarkKreitler's picture
Joined: 11/12/2008
To be, or not to be...

The problems you describe:

> - Weak players cannot touch very strong creature
> - Strong players cannot miss
> - Better stats is not that significant

are not so much a result of the dicing system as of the advancement system and the D20 mindset over all. D&D and the many games it inspire offer a very particular type of gameplay:

1) Start very weak
2) Level up a bunch
3) Become ridiculously powerful relative to where you started

You will fight a losing battle if you try to use D20 systems for a different kind of gameplay. It's possible, but you'll have to do things like this:

> - The maximum probability to his is always 80%, and the minimum probability to hit is always 20%.

to offset conventions like this:

> The attacker use his attribute (1-20) as his "combat skill" + 1D20 + his level.

If you picture the graph of your "to hit" system, it will contain lots of sharp edges where you impose limits like "minimum chance to hit is always 20%." You'll feel these edges in odd places, like low level characters learning that level doesn't matter against tough opponents, but makes a huge difference against weaker ones, or high level characters finding that there's no difference between kobolds and ogres.

In the end, you can't have it both ways: level either makes an appreciable contribution to combat, or it doesn't. If it does, leveling up will eventually make you incredibly powerful. That's not a bad thing, but if it's not what you want, build level out of your to-hit math.

There are excellent alternatives to D20 out there (see the Hero System, for example), that are better at modeling gradual increases in power as players earn experience. Maybe you'll have more success implementing models like those to get the gameplay you want.

I've been reading the posts about your RPG-in-the-making and think it sounds neat. I'd love to hear what kind of gameplay you want and brainstorm mathematical models that create that gameplay. It may be that starting with D20 won't get you what you're after.

Good luck!

larienna's picture
Joined: 07/28/2008
The original wizardry was

The original wizardry was very similar to AD&D. This is why I wanted to keep it in the same mechanic philosophy.

I could reduce the min/max% to 10%/90% if people find it too strong.

Else I could try to make multiple random generation and make graphs out of it and see the results.


My original idea was that combat skill did not increased with level up, but your multi-hit penalty was reduced. Giving you more chances to make multiple hits, but your first attack would always have the same chance to hit.

The problem with that is that it was too complicated for nothing to implement. The solution above was much more elegant, but it lead to a situation where a player would eventually get 100% to hit probability.

MarkKreitler's picture
Joined: 11/12/2008

I loved Wizardry, and it's great that your remember it and want to make something inspired by it -- but it's gameplay was almost exclusively about leveling up. If you downplay the effect of leveling, you are making a different game.

In your original post, one of the problems you identified was "stats don't make much difference." So, why not start there, and have stats, rather than level, be the basis of your combat formula. You could give players a small stat bonus per level (maybe even based on class), but you could cap it or make the bonus diminish with increasing level. Something like:

Combat Skill = Dexterity / Encumbrance

Where encumbrance is always 1 or greater.


Required Hit Roll = 10 - Attacker's combat skill + defender's combat skill

If you stick with Wizardry's 3-18 stat range, it's still possible to get 100% chance to hit with this formula. If you dislike that, you could modify it as follows:

Chance to hit = 10.5 - (Attacker's combat skill - Defender's combat skill) * 2 / 3, and round in favor of the person with the lower stat.

So that an attacker with 18 DEX vs a defender with 3 DEX only needs

10.5 - (18 - 3) * 2/3 = 10.5 - 15 * 2/3 = 0.5 which rounds in the defender's favor to 1,

And an attacker with 3 DEX vs a defender with 18 DEX needs

10.5 - (3 - 18) * 2/3 = 10.5 + 15 * 2/3 = 20.5 which rounds in favor of the attacker to 20.

Of course, encumbrance and stat bonuses could screw this up, changing the range of possible skill ratios to be outside [1/6, 6]. Also, it's not ideal if you convert to a tabletop RPG.

Another way to deal with the problem of vastly different skills is to increase combat skill non-linearly with the stats involved. For example, make a chart like this:

Attacker Dex / Defender Dex >= 1 and < 2--hit roll: 10+
Attacker Dex / Defender Dex >= 2 and < 3--hit roll: 9+
Attacker Dex / Defender Dex >= 3 and < 4--hit roll: 8+
Attacker Dex / Defender Dex >=4 and < 5 --hit roll: 7+
Attacker Dex / Defender Dex >=5 and < 6 --hit roll: 6+
Attacker Dex / Defender Dex >=6 and < 7 --hit roll: 5+
Attacker Dex / Defender Dex >=7 and <8 --hit roll: 4+
Attacker Dex / Defender Dex >=8 and <9 --hit roll: 3+
Attacker Dex / Defender Dex >=9 ------------hit roll: 2+

Defender Dex / Attacker Dex >= 1 and < 2--hit roll: 11+
Defender Dex / Attacker Dex >= 3 and < 4--hit roll: 13+
Defender Dex / Attacker Dex >= 4 and < 5--hit roll: 15+
Defender Dex / Attacker Dex >= 5 and < 6--hit roll: 17+
Defender Dex / Attacker Dex >= 6 and < 7--hit roll: 19+
Defender Dex / Attacker Dex >= 7 ------------hit roll: 20+

With a system like this, you can be more liberal about giving stat bonuses with items.

Consider a DEX 12 cleric attacking a DEX 15 thief. The defender has a higher DEX, so you use the second chart. The stat ratio is 15 / 12 = 5 / 4 which is greater than 1 but less than 2, so the cleric needs an 11+ to hit. Conversely, the thief only needs a 10+ to hit the cleric, so his DEX gives a slight advantage.

Now assume you included encumbrance. Maybe the cleric wears chain mail that reduces his effective DEX to 5. Now the ratio is 15 / 5 = 3 in the thief's favor, which requires the cleric to roll 13+. Meanwhile, the thief needs only 8+, giving him a 25% advantage. Note that in this system, armor reduces incoming damage, rather than increasing the hit requirement.

Now imagine the cleric goes up against a blink dog with an effective DEX of 25. The ratio becomes 25 / 5 in the dog's favor, meaning the cleric needs 17+ and the dog only 6+.

As the cleric advances in his career, he finds loot which includes these items:

Boots of Agility: +15 DEX
Ring of Speed: +5 DEX
Hermes' Blood (potion bestowing a permanent +6 DEX)
Limited Wish (which he used to increase his DEX by 3)
Magic Chain Mail (+3 DEX and no encumbrance penalty)

The cleric's DEX is now: 12 + 15 + 5 + 6 + 3 + 3 + 3 = 47

He once again runs up against blink dogs, only now, he has the advantage with a ratio of 47 / 25 which is slightly less than 2. He needs a 9+ to hit, and the blink dogs need 11+.

Now, these numbers may not be to your liking, but consider the system as a whole. The cleric would have had to play for a *long* time to get those items, and he can look at them and see tangible benefits ("Oooo! +5 DEX! Awesome!"). And he feels the difference when he revisits old monsters...BUT...the monsters are still a threat, hits aren't automatic, and combat remains interesting.

Of course, you could still use level as the main combat stat and scale it non-linearly, but that has some issues. First, players expect to have a limited inventory, so if you tie stat increases to inventory items, there is a natural mechanism to cap how many bonuses a player can stack. Players expect level to go up to 50 at least -- and then they expect expansions to raise the cap. Also, players have been taught that level makes an *overwhelming* difference to combat. If you go that direction, you run the risk of disappointing your core audience.

You have a lot of options, and your complaints about the D20 system are on target. Math is rich with possibilities to address them, but most of the solutions depend on breaking away from D20 assumptions.

larienna's picture
Joined: 07/28/2008
Quote:In your original post,

In your original post, one of the problems you identified was "stats don't make much difference." So, why not start there, and have stats, rather than level, be the basis of your combat formula.

This is what I did. Combat skill, and save and other things use directly attribute values. Modifiers like D&D 3rd are only used for damage and hit dice.

I did not have the time to check the rest of your post, but I will.

MarkKreitler's picture
Joined: 11/12/2008
larienna wrote:This is what I

larienna wrote:
This is what I did. Combat skill, and save and other things use directly attribute values.

I saw that, I think. Is this the formula you mean:
> The attacker use his attribute (1-20) as his "combat skill" + 1D20 + his level.

The difficulty is that it still includes the level. It's exactly what you pointed out: if you include the level at all, eventually, the player becomes un-hittable. By using *just* the attribute and leaving level out of it, you reduce this problem.

As for the rest of my "wall of text" (sorry about that), it's a big departure from normal D20 math, so it probably won't suit your needs. :(

Joined: 06/13/2010
You should check out the game

You should check out the game BESM, thats the only game I can think of that has the possibility of undermining the point of getting more powerful, without screwing up the game. It has no levels, instead characters spend points on 3 stats and a plethora of abilities.

MarkKreitler's picture
Joined: 11/12/2008
And Hero

mindwarper10 wrote:
You should check out the game BESM, thats the only game I can think of that has the possibility of undermining the point of getting more powerful, without screwing up the game. It has no levels, instead characters spend points on 3 stats and a plethora of abilities.

The Hero system works the same way. Stats and abilities instead of level makes for a very different, but equally viable, type of game.

larienna's picture
Joined: 07/28/2008
Quote:Players expect level to

Players expect level to go up to 50 at least -- and then they expect expansions to raise the cap.

Levels are capped to 20 permanently. When characters reach level 20, the game should end. I rather have multiple shorter adventures that can be finished in 20 hours of game play max than having very long epic adventure.

Your other suggestions seems create a ratio/proportion system. Personally I don't like it for Wizardry but it's not a bad idea for other games.

As for level being the source of the problem, in a design I made many years ago, it worked like this:

Combat skill fixed by class (maybe modified by attribute)
Base multi hit penalty fixed by class
Attack multi hit penalty fixed by weapon.

The way combat skill was calculated for the 2nd attack was:
Combat skill - base multi hit - weapon multi hit

Then each additional attack reduced again the value by weapon multi hit. For example a fighter would have

Combat skill: 18
base multi hit: -7
weapon multi hit: -5

So the attacks were made at: 18 / 6 (18-7-5) / 1 (18-7-5-5)

Now when you raised a level, the base multi hit penalty was reduced (The value increased) by 1. But the total multi hit penalty could never be positive. For example:

Base multi hit: -7 + 10 levels = +3

so the attacks were made at: 18 / 16 (18 +3 - 5) / 11 (18+3-5-5)

With a method like that, you get more chance to make multiple hits but you are always capped by your basic combat skill. So a character with a +1 bonus to hit would always be in advantaged.

The problem is that it's much more complex to implement. By adding the level to the combat skill, I realized that it created almost the same effect with less variables to keep track. The only problem was the auto hit/miss situation. This is why I though of capping the odds to 20%/80% to fix this minor detail.

MarkKreitler's picture
Joined: 11/12/2008

I understand what you're going for better, now.

I'm somewhat confused why you say one system is harder to implement than the other, since they are pretty much mathematically equivalent. In one case, you add the level to the base multi-hit and cap the result. In the other, you add the level directly to the combat skill and cap the level, but it's the same:

Combat skill - (base-multi-hit - level) <-- capped - weapon multi-hit
Combat skill + level <--capped - base multi-hit - weapon multi-hit

As far as implementation goes, it doesn't seem like there are any more variables, and in any case, 1 or two more variables doesn't significantly increase the development cost in a variable-heavy game like an RPG.

If you've already chosen a system with linear progression which includes level in the to-hit roll, your fate is set. Your game is going to feel like a D20 system within some level range. Wherever you cap the numbers, it's going to feel like progression stops -- because it does.

Good luck with your solution and the game. I hope you you enjoy the development experience more this time around.

larienna's picture
Joined: 07/28/2008
I realized that I had some

I realized that I had some other bugs in my stat system. While doing some redesign I came up with new ideas.

Abstracted multiple attacks

The idea of doing multiple attack is primarily to make more damage. The damage formula I am using for damage is "X (Dy + Z)". Note that the parenthesis locations are important. For spell casters, higher level spell has a greater X value. So I thought that I could do the same with attacks.

Instead of making multiple attacks, I would simply increase the X value with level up. Each class will have sort sort of combat progression that will make the value X increase as the level progress. It's possible that some weapon type change the progression speed.

So by simply equipping a weapon, you are going to see directly the results. So you know in a glance that 8 Dy + z is better than 5 Dy +z. It will be much more convenient to the user and easier to implement.

It also solve the problem that when capping to 80%, the odds to make 2 attacks is capped at 64%, while 3 attacks is capped at 51%. Now, you will always have 80% to hit, and the damage roll will determine how well you did.

Level Difference

One idea I had for saving throw is using the level difference between the attacker and defender to resolve the roll. For example, if you save is 15, you need to roll 15 or less to succeed. If the monster is 2 level higher than you, then you get a -2 penalty to your roll. So a mage that cast sleep will have more chance of success on low level enemies when his level is higher.

Now my idea was to use the level difference for everything even combat skill. So you'll get a bonus when fighting weaker creature and a malus when fighting stronger creature. Keeping a 0 average all the time.

This relative modifier system could help solve the illusion of not progressing because of being capped. And level progression would have more impact on many variables through the game. Because now it also increase defense versus weaker creatures which was not the case in the original system

A another way to do this is to increase all stats with level up. The advantage is that I can increase some stats by only 1/2 level instead. The goal is to advantage some class for certain stats. But for monsters, probably they will always increase by 1 per level.

If I do this, capping would be even more important, because you could get out of range more easily. I am still thinking to cap as 15%/85% or 10%/90% rather than 20%/80%.

Attribute Modifiers

I am thinking to use modifier instead of attribute = value. The goal is to increase the number of elements that can affect a stat. For example, if DEX = combat skill, then there is nothing else that can influence combat skill. If it's base class value + DEX modifier = combat skill, then I have 2 different variables in the process.

I am also thinking of standardizing the type of influence. For example in the new system, it would seem that:

Race determine attribute minimum Attributes only give modifiers. -4 to +5 Class determine base value for Combat skill, saves, defense, initiative, etc. Class determine Y value of HP and MP

In the old system I had a bug where race determined HP/MP dice and attribute minimum. But the attribute also added a modifier to HP/MP. So race was double influencing HP/MP. Now I'll put HP/MP die into the class (like in D&D) and the race will influence it through attributes.

larienna's picture
Joined: 07/28/2008
Final verdict The level

Final verdict

The level difference is a very interesting mechanic, but it's the opposite of "making sure a low level character can hit a strong one". So I discarded it.

The only impact for level up now is having more HP and doing more damage. So a weaker character will die more rapidly and require more attacks to kill his ennemy, but it will not affect his odds to touch him.

Since I am now using attribute modifiers like in D&D 3rd edition, I decided that each level up add 1 point in an attribute of the player's choice. The idea is to allow players to round up their stats to get access to modifiers.

Even if monsters and ennemies does not have access to these bonus stats, it's normal that the heroes are slightly stronger since they need to defeat multiple group of ennemies through the game while monsters only need to defeat 1 group of heroes.

I don't really like increasing attributes in RPG, but it seemed like the most elegant choice here. Second, since attributes cannot be raised by more than +10 the race basic level, and since the level is limited to 20, I don't think it will create any abuses.

Syndicate content

forum | by Dr. Radut