Damage formulas

Guest article by terepy.

so many of our games involve combat, but even so our damage formulas suck because they don't satisfy the goals we want. here are the goals:

ok so here are the types of scaling I've seen and where they fail.

flat increase/reduction

this is the simplest method and also seems to have the most flaws. the formula is damage = attack - defense

linear percent

this one is used in minecraft, in later versions they added the armor toughness factor, which sacrifices stability for diversity. the formula is damage = attack × (1 - defense)


this one is common in a lot of mmos, as well as league of legends, dota, and probably lots of other games, probably because it appears diverse, a balance of stats seems diverse, but when that's the only way to play it's just another type of min-maxxing. the formula is damage = c × attack / (c + defense) c is a constant, typically 100.

other systems:

my proposed system: exponential

the effects of every stat scales exponentially, the formula is damage = c(attack - defense)
c is a constant larger than 1, I propose something between 1.01 and 1.1.

other issues:

here's the amended formulas after taking the above into account:

max hp = cVt/2
healing = cPa/2
damage = c(Pa - Vt/2 + c2(La * Pt + Pia * Vt) / (Pt + Vt))

note: if you want lethality and pierce to be able to scale, try dividing them by the attacker's power


attack, defense, and hp are not the only stats that exist, we can extend this kind of exponential system to other stats.

This page was last modified 2022-01-03 16:57 (UTC).


Subscribe via RSS feed: https://yujiri.xyz/rss.xml

This site doesn't host comments because that would be against my principles: discussion belongs in a dedicated, decentralized medium like Lemmy (tag me if you start one!).