Timeline for How to design a damage formula in an RPG which keeps weapons with different attack speeds balanced?
Current License: CC BY-SA 3.0
21 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Sep 29, 2017 at 23:14 | comment | added | Chris | I was thinking very similar thoughts. One thing to note is that if you give DPS for a weapon as being against a reference of 100 armour then your fast weapons will actually do better damage against lightly armoured targets while the slower weapons will perform better against heavily armoured targets. This seems like it could be quite a nice feature... | |
Sep 29, 2017 at 15:34 | comment | added | Philipp | @marcg11 If you want to know more about how the exact damage formulas of Diablo 3 work, you could ask about them on gaming.stackexchange.com. I would be surprised if the Diablo community didn't reverse-engineer every single mechanic of that game by now. | |
Sep 29, 2017 at 15:32 | comment | added | marcg11 | Ah well, your table is in the case the weapon base damage changes depending whether i if its a sword or a dagger, how I have it right now. But yes, if a weapon has a base damage of 50 and a dagger 25, the dagger will be weaker, it will take more hits. If I use what I said in my previous comment it won't be that way. I think I prefer a linear way since having a high weapon damage already gives you more powerful skills (since they go by weapon damage %). It would be to over powered that skills do massive amounts of damage and normal attacks as well. I don't know the way diablo 3 does it | |
Sep 29, 2017 at 13:44 | history | edited | Philipp | CC BY-SA 3.0 |
[Edit removed during grace period]; deleted 7 characters in body
|
Sep 29, 2017 at 13:38 | history | edited | Philipp | CC BY-SA 3.0 |
[Edit removed during grace period]; deleted 7 characters in body
|
Sep 29, 2017 at 13:29 | history | edited | Philipp | CC BY-SA 3.0 |
[Edit removed during grace period]; deleted 7 characters in body
|
Sep 29, 2017 at 13:27 | comment | added | Philipp | @marcg11 Exactly. I did another edit which addresses the implications of that which you might find interesting. | |
Sep 29, 2017 at 13:23 | history | edited | Philipp | CC BY-SA 3.0 |
added 274 characters in body
|
Sep 29, 2017 at 13:14 | history | edited | Philipp | CC BY-SA 3.0 |
added 1378 characters in body
|
Sep 29, 2017 at 12:48 | vote | accept | marcg11 | ||
Sep 29, 2017 at 12:47 | comment | added | marcg11 | Okay I think I know the issue. I'll have to make baseDmg be the same for weapons of the same level and just change skillDmg. So lets say level 1 weapons have a baseDmg of 50, a swords normal damage lets say will be 50 at 1.0 atk speed = 25 real dmg, A dagger has damage 25 at 2.0 atk speed -> 25 * 50 / (50+50) = 12.5 dmg. | |
Sep 29, 2017 at 12:35 | comment | added | marcg11 | so in my formula, SkillDmg is always going to be a number that depends on base damage. Eg: if baseDmg = 50, a standard attack gets the 100% of base damage, 50 * 50 / ... a skill that does 1 hit of 50% weapon damage I do 25 * 50 / ( 50 + defense ). Your formula doesn't solve the main issue, that a weapon that is 2x faster cannot hit half damage because it will hit too little, the dps needs to maintain. See my edited first post. | |
Sep 29, 2017 at 12:25 | comment | added | Philipp |
In that case your skillDmg fulfilled the role the weapon base damage should have fulfilled: establishing a baseline for the damage output. You have to choose: Do you want the skillDmg to determine the damage baseline (in which case DPS would be a meaningful metric for skills but not for weapons)? Then keep your formula. Do you want weaponBaseDamage to determine the baseline? Then use my formula above. Do you want both skillDmg and weaponBaseDamage to contribute to the damage baseline equally? then use (SkillDmg + BaseDamage) * BaseDamage / (BaseDamage + Defense) .
|
|
Sep 29, 2017 at 12:21 | comment | added | marcg11 | But my skillDmg was never a percent, a normal attack skillDmg is the same as baseDmg, so it's the same. | |
Sep 29, 2017 at 12:17 | comment | added | Philipp |
@marcg11 No, it's not the same. The main difference is that I multiply with BaseDamage squared (BaseDamage * BaseDamage ), you are only multiplying by BaseDamage once (which means BaseDamage gets reduced away in the formula).
|
|
Sep 29, 2017 at 12:00 | comment | added | marcg11 | I've realised that the formula you gave is exactly the same as mine if I establish skillDamage as a multiplier. So I still cannot half the damage of the dagger if I double the attack speed to maintain damage. | |
Sep 29, 2017 at 11:27 | comment | added | Philipp |
@marcg11 What exactly is your range for SkillDmg ? I assumed it to be a multiplicative factor. So a basic attack has 1.0 and a double-damage special attack would have 2.0 . If you would rather want these to be integers, you might want to add it to BaseDamage instead of multiplying it.
|
|
Sep 29, 2017 at 11:25 | comment | added | marcg11 | Thanks @Philipp, I think that will solve it. The damage will be too high at the moment but I'll tweak it. | |
Sep 29, 2017 at 11:24 | vote | accept | marcg11 | ||
Sep 29, 2017 at 11:52 | |||||
Sep 29, 2017 at 11:18 | history | edited | Philipp | CC BY-SA 3.0 |
added 62 characters in body
|
Sep 29, 2017 at 11:12 | history | answered | Philipp | CC BY-SA 3.0 |