Jump to content

DP20 Overhaul


Cocofang

Recommended Posts

Some of you may be aware that the DP20 values that you find on ranged entities are not always reliable. While it is fine that they are rounded, some cards have values that are impossible for these cards to achieve.

It's been a topic for some time and I started compiling all values the other day in order to finally tackle this problem with the goal of updating tooltips, DP20 values and formulas used to calculate those. Let's begin by establishing what works.

Current formulas

Generic

The typical ranged attack in Skylords has an amount of damage it inflicts on the main target as well as an upper limit of damage it simultaneously inflicts in an AoE. And of course a time between attacks.

Quote

(Single Target DMG + AoE DMG) / 2 / (Time between Attacks / 20)

There are different ways to write this and still come to the same result but it's essentially this.

You take the damage the attack deals to a single target and add the total damage the attack can deal in an AoE. You then average that value out by dividing it by 2. Finally you take the time between attacks and divide it by 20 to get the amount of times the entity can attack within 20 seconds. Divide the previous result through this and you have your DP20.

Alternatively divide 20 by the time between attacks and multiply the previous result by this.

This formula works for the vast majority of ranged entities in the game. Unfortunately It just sometimes uses inaccurate values.

Ranged attacks without AoE and Flamethrowers

Quote

DMG / (Time between Attacks / 20)

Used for any ranged attack that either does not have an AoE component or is purely AoE, in that the fixed damage value is distributed among all affected targets.
In that case "time between attacks" should technically be "Interval between damage application" but same difference.

Squads

Quote

(DMG / (Time between Attacks / 20)) * Number of Entities in a Squad

Used for ranged Squads. There are no ranged squads with AoE but if there were they would use the generic formula multiplied by the number of entities in the squad.
You calculate the damage value as usual and then multiply it by the number of entities in the Squad. This is also the reason why damage output from a squad drops if individual squad members were killed.
 

Inconsistent values

Usually the AoE value of a ranged attack is 150% of the single target damage. So for example, an attack that deals 100 damage to the main target would consequently have an upper damage cap of 150 for its AoE.

Pretty straight forward but unfortunately far from consistent. Many entities in the game are off by a few digits, so they range from 148% - 152% on their AoE. Some of them because the single target damage value doesn't have a clean 150% value, which is fine. The recently released Bedrock for example has 633 single target damage on U3, the AoE being rounded from 949.5 to 950. But in many other instances the numbers are simply off. For example, Armored Tower has 110-170 damage but really it should be 110-165.

Another inconsistency is the attack time. After extensive testing there seem to be three internal values that define this. Cast Steps (the wind-up part of the attack animation after which the projectile fires), Resolve Steps (the wind-down part of the attack animation) and Recast Steps (independent balancing lever and cooldown between attacks), all expressed in milliseconds. The actual attack time appears to be:

Quote

Cast Steps + Resolve Steps
OR
Cast Steps + Recast Steps
whichever is higher.

But take Cannon Tower as an example. It has 200 Cast Steps, 1000 Resolve Steps and 2300 Recast Steps. The highest value being Cast Steps + Recast Steps, which is 2500ms. But the description and DP20 calculation assumes an attack speed of 2000ms, or 2s. Which is of course completely wrong.

Additionally, there is a small random delay added to every attack. This is an important aesthetic choice as it makes ranged battles feel much more frantic and organic. But it obviously affects DP20 and should be included in the calculation. Interestingly, this RNG delay doesn't affect entities that have higher Resolve than Recast Steps. Most airborne entities are in that category.

Abilities

As a general rule of thumb the DP20 calculation ignores abilities like Multishot or effects applied by the attack, like poison or debuffs that increase damage taken. Windweavers are notoriously powerful because their on-paper DP20 is doubled when they get to attack two targets. Same goes for Lost Horror or Rioter's Retreat. Other units like Gemeye P or Spirit Hunters have a powerful DoT attached to their abilities that drastically elevates their damage output.

This makes some entities look worse on paper than they are. Going back to Spirit Hunters, their measly 192 DP20 is actually 792 or 692 depending on the affinity. And that doesn't even consider the ability to attack multiple targets one after another in order to apply the poison to several enemies simultaneously. For Gemeye P the actual DP20 is somewhere around 5250 instead of 3250. But that assumes targets stay within the AoE.

Considering the huge variance it would introduce to DP20 calculations in addition to some affinity-variants getting different base stats they are simply not factored in. Sucks for cards that would get more attractive numbers but it's the most straight forward approach.
 

Outliers

This is where the real fun is. Ignoring abilities is simple enough but what if crazy variance is built into the attack itself?

For these entities there is no established norm as to how to even approach the calculation. The formula has to somewhat reflect the expected damage output when using the card. But how?

Let's look at all the relevant Outliers that are currently in the game and consider their damage output in various scenarios.

Single Target: Only one target available
Small AoE: Multiple targets available, all in one direction. Meaning while AoE is applied the same amount of turrets are active as if there was only one target.
Split Single Target: Multiple targets available, surrounded. Meaning all turrets are active (where applicable) but no AoE is applied.
Average AoE: Multiple targets available, surrounded. Average AoE overlap (Single Target DMG + AoE DMG) / 2)
Max: Full damage application

Battleship
Battleship_Card_Artwork.png
4 directional turrets, each dealing 100-150 damage every 2 seconds. 2 turrets can attack a single target simultaneously. All turrets can attack if surrounded.

Single Target: 2000
Small AoE: 2500
Split Single Target: 4000
Average AoE: 5000
Max: 6000

Ravenship (Ravenheart summons)
Ravenheart_Reassemble_the_Ravens_Ability_Icon.webp
4 directional turrets, each dealing 70-120 damage every 2.5 seconds. 2 turrets can attack a single target simultaneously. All turrets can attack if surrounded.

Single Target: 1120
Small AoE: 1520
Split Single Target: 2240
Average AoE: 3040
Max: 3840

Corsair
Corsair_Card_Artwork.png
6 directional turrets, each dealing 25-38 damage every 2 seconds. 3 turrets can attack a single target simultaneously. Except when the Big Fat Cannon cycles through. At which point all 6 turrets can attack a single target simultaneously. All turrets can attack if surrounded.

Single Target: 1125
Small AoE: 1417
The above values are already wonky because they assume 4.5 turrets firing, as the average between the 3 drive-by turrets and all 6 blasting while Big Fat Cannon cycles.
Split Single Target: 1500
Average AoE: 1890
Max: 2280

Big Fat Cannon (regular formula)
Single Target: 580
Average AoE: 725
Max: 870

Ravenheart
Ravenheart_Card_Artwork.png
6 directional turrets, each dealing 90-120 damage every 2 seconds. 3 turrets can attack a single target simultaneously. All turrets can attack if surrounded.

Single Target: 2700
Small AoE: 3150
Split Single Target: 5400
Average AoE: 6300
Max: 7200

Spitfire
Spitfire_Card_Artwork.png
8 directional turrets, each dealing 75-110 damage every 2 seconds. 2 turrets can attack a single target simultaneously. All turrets can attack if surrounded. Only affects air targets.
Regular ranged attack with an AoE component, dealing 466-700 damage every 5 seconds. Only affects ground targets.

Single Target: 1500
Small AoE: 1850
Split Single Target: 6000
Average AoE: 7400
Max: 8800

Ground Bomb (regular formula)
Single Target: 1864
Average AoE: 2332
Max: 2800

Lost Spirit Ship
Lost_Spirit_Ship_Card_Artwork.png
8 directional turrets, each dealing 80-100 damage every 2 seconds. 2 turrets can attack a single target simultaneously. All turrets can attack if surrounded.

Single Target: 1600
Small AoE: 1800
Split Single Target: 6400
Average AoE: 7200
Max: 8000

Howling Shrine
Howling_Shrine_Card_Artwork.png
4 directional turrets, each dealing 750-1125 damage every 11 seconds. 1 turret, rarely 2, can attack a single target simultaneously, depending on positioning. All turrets can attack if surrounded.

Single Target: 1705
Small AoE: 2131
The above values assume 1.25 turrets firing.
Split Single Target: 5455
Average AoE: 6818
Max: 8182

Primeval Watcher
Primeval_Watcher_Card_Artwork.png
Chain attack dealing 660 - 330 - 220 - 165 - 132 damage as it affects up to 5 targets. Can only hit each target once per attack.

Single Target: 4400
Second Target: 2200
Third Target: 1467
Fourth Target: 1100
Fifth Target: 880
Max: 10047

Rocket Tower
Rocket_Tower_Card_Artwork.png
4 omni-directional shots, each dealing 75 damage every 4 seconds. Cannot attack a single target simultaneously. Can shoot all if 4 or more enemies are in range.
Functionally similar to Multishot.

Single Target: 375
Max: 1500

Stronghold
Stronghold_Card_Artwork.png
8 directional turrets, each dealing 164-246 damage every 2 seconds. 3 turret, rarely 4, can attack a single target simultaneously, depending on positioning. All turrets can attack if surrounded.

Single Target: 3553
Small AoE: 4442
The above values assume 3.25 turrets firing.
Split Single Target: 8747
Average AoE: 10933
Max: 13120

Thunder Wagon
Thunder_Wagon_Card_Artwork.png
1 turret, dealing 350-525 damage every 4 seconds. 1 flamethrower dealing 150 damage every second.

Thunder Bomb (regular formula)
Single Target: 1750
Average AoE: 2188
Max: 2625
Flamethrower (regular formula)
AoE: 3000


What now?

A big problem with some of these outliers it the drastically different damage output depending on how many turrets can shoot at any given time, as they are directional. How do you account for that sort of variance in a static formula? Thunder Wagon is the most straight forward with its current design: Just add up the two AoE values. Rocket Tower could get a nasty low number like 375 DP20 or the rounded average between single target and max, which is 940.

There can be different formulas depending on the setup but ideally several outliers should be covered by one formula.

The questions to solve are:

Once the RNG delay is considered in the DP20 calculation, many ranged entities will end up with a lower DP20 value. This wouldn't affect their functionality at all though. Would that still be something to be concerned about?

Should the relation between single target and AoE be updated across the board to get as close to 150% as possible?

Which formulas could express the DP20 value of the outlier cards most accurately? They are clearly more tailored towards AoE clearing but a needlessly inflated DP20 value would give a false impression about their actual strength.

Do the outliers need expanded tooltips to clear up their mechanics or is the DP20 value enough?

How should the DP20 value be rounded? Single digit? Even 10? Even 100? Different rounding depending on the tier of the card?

Important to keep in mind that this is all just about the visual representation of numbers. The actual mechanical values are untouched (aside from potentially minor changes to achieve the 150% AoE value). But depending on which formulas you use you get a higher or lower number printed on the card. Which is certainly important for the "feel" and first impression.

If you have any ideas or opinions regarding this topic, feel free to share. Especially potential formulas for the outlier cards that can be used going forward would be valuable.

Link to comment
Share on other sites

This is cool that you've figured this out. Thanks for explaining it so clearly. For my part, I always considered the damage listing on the cards to be useless. The only information I would like to have is precise information. For example, Eruption does 300 damage to up to 3 units. That kind of information is useful to me. The "average power" number isn't useful. 

So for example I would love to know the precise number or range of every attack. Having that on the card would be more helpful than any of the averages. So if it were up to me Gladiatrix would say L 118 M 450. Even better if you have the 2.7s attack rate somewhere also. 

-my 2c

Link to comment
Share on other sites

The two biggest benefits I see of having the DP20 value on the cards are:

1. Visual consistency: It makes all unit cards, which can attack look similar.

2. Ease of comparison: If you see the damage per hit and attack speed of one card vs. another and the attack speeds don't match, you would have to so the math in your head to figure out which one is stronger. With DP20, even if it is inaccurate, you can compare those two cards more easily. This is even more true for comparing ranged vs. melee (where the melee DP20 is an average anyways).

I personally prefer to have a lower value for cards like Battleship. If I see something like 2k dp20 and test it 1v1 and the damage is low, it makes intuitively sense. And if I then see, that it has a multishot-like ability, I would test it in AoE/multitarget situations and see, that it is much better there.

If it was the other way around and said something like 7k dp20, but doesn't hit nearly as hard as e.g. Abomination, I would think the card is bugged or I am doing something wrong.

Maybe we could split the descriptions of cards like Battleship/LSS to list their version of Multishot as a passive ability, similar to Windweavers? (Sorry Corsair for yet another ability 😅)

Link to comment
Share on other sites

28 minutes ago, Laertes said:

Eruption does 300 damage to up to 3 units.

Not so simple, Eruption can do only 12 DMG total to 13 targets having: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1000 HP each (in order closest to furthest to the eruption center), so the last target will take no damage, because all the damage was wasted on first 12 targets, and I did not even start on targets being figures of a squad that have more than one figure, that gets even more complicated quite quickly.

Sorry for shattering your idea of simplicity, but you picked my favorite anti-example of damage calculation.

Laertes likes this
Link to comment
Share on other sites

1 hour ago, Kubik said:

Not so simple, Eruption can do only 12 DMG total to 13 targets having: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1000 HP each (in order closest to furthest to the eruption center), so the last target will take no damage, because all the damage was wasted on first 12 targets, and I did not even start on targets being figures of a squad that have more than one figure, that gets even more complicated quite quickly.

Sorry for shattering your idea of simplicity, but you picked my favorite anti-example of damage calculation.

That's interesting, ty for the clarification! 

Link to comment
Share on other sites

Posted (edited)

for the gun ships im leaning toward leaving as is with their single cannon dps. if people care much about the numbers they can just use the rule of thumb of double damage when targets are at or lower than half the max. This will also work fine with leaving mutlitarget units' dp20s alone too, if we had more card space or descript space it might be helpful for new players to show the major dps cases but we dont so as long as similar cards are consistent it will be fine with base numbers.

howling and stronghold should probably follow the gunships, especially if we stick with base, rocket should definitely stick with base unless all multitarget cards are overhauled as well. 

for watcher id actually be in favor of treating the bounces as splash in the current calc bc it doesnt have splash. i could also see keeping it with just the primary base too for consistency with the other outliers.

thunder ofc as you said just add those up and that is fine

also maybe while fixing card values for damage maybe spore launchers descript could finally be fixed to reflect his base projectile is actually a cluster of 3 spores that each do 140 damage (420 damage per attack) instead of currently which just says 1 spore for 140 damage

 

for splash i personally like the current +50% and would be in favor of possible card changes to balance around making this a consistent number (the ~few percent deviation is not a big deal imo) so like if anything has something weird like 100% of base being splash then maybe that should be rebalanced to 50% by adding some to base or considering multitarget or chain.

 

I do think attack rate is probably the biggest issue overall. Someone testing for their own knowledge can fairly easily count how many guns hit a single target or test splash damage but because of the built in variance for organic fights it is very difficult to double check if the attack rate is accurate so I am definitely in favor of at least listing the actual base attack rate and possibly changing it to reflect what is on the card. 

 

2 hours ago, Cocofang said:

Once the RNG delay is considered in the DP20 calculation, many ranged entities will end up with a lower DP20 value. This wouldn't affect their functionality at all though. Would that still be something to be concerned about?

rng no, effective base attack rate if it doesnt match the card yes, everyone should be able to do the math straight from the card to find the dp20s (rng not withstanding)

2 hours ago, Cocofang said:

Should the relation between single target and AoE be updated across the board to get as close to 150% as possible?

to use more specific terms i think splash should be updated across the board to match 50% of base. aoe stuff like pyromaniacs burning or flamethrower effects should just use single target dps and list max targets if it adds or total dps if it spreads.

2 hours ago, Cocofang said:

Which formulas could express the DP20 value of the outlier cards most accurately? They are clearly more tailored towards AoE clearing but a needlessly inflated DP20 value would give a false impression about their actual strength.

i prefer single target as is, dps values also dont express the utility of cc that some attacks have built in either and imo multitarget as well should be left into that additional utility category. this will prevent possible noobtraps from inflated numbers, once a player gets experienced enough to look beyond the flat dps they will be able to account for multitarget (or cc or root support etc)

2 hours ago, Cocofang said:

Do the outliers need expanded tooltips to clear up their mechanics or is the DP20 value enough?

id say no, for one itd be a lot of work but for two it would probably make descripts super long but also for three it might limit the ability to add different effects in the future if the descript might be used against creating it. as long as current effects are relatively consistent across similar cards then players can understand pretty easily once they learn one.

2 hours ago, Cocofang said:

How should the DP20 value be rounded? Single digit? Even 10? Even 100? Different rounding depending on the tier of the card?

id just say whole number for printing and hundreths place for calcs, like how much difference would this even really make? if you have 333 damage then splash would be only .5 off if rounding to whole. else for example tiny damage units like snaps you could do the hundredths place. rounding to the hundredths place would keep accurate damage for odd+1 effect or even +2 effects which by that point i dont think any attack would be significantly effected. Even if only doing tenths the splash on snaps would only lose 24% assuming everything rounded down and that will not be a common case based on normal damage numbers imo. 

Edited by JarodDempsey
Link to comment
Share on other sites

So for example, simply using the default formula would give those multi-turret entities the multishot treatment. In that they get a rather low DP20 printed value, however their tooltip description continues to read that several turrets fire simultaneously. That means people could do some napkin math and simply scale up the damage depending on how many turrets are firing.

Quote

(Single Target DMG + AoE DMG) / 2 / (Time between Attacks / 20)

This would give us the following damage values for our outliers:

Battleship - 1250
Ravenship (Ravenheart summons) - 760
Corsair - 1040 (formula for one turret and the cannon added up)
Ravenheart - 1050
Spitfire - 3257 (formula for one turret and ground bomb added up)
Lost Spirit Ship - 900
Howling Shrine - 1705
Rocket Tower - 375
Stronghold - 1367
Thunder Wagon - 5188 (turret plus flamethrower)

Quote

(Single Target DMG + (sum of all instances of chain damage)) / 2 / (Time between Attacks / 20)

Primeval Watcher - 5023

Now, I think the issue with this is that it somehow makes stock Stronghold look much weaker than stock Howling Shrine. Which I don't think is necessarily true.

And it makes Ravenheart look as strong as Corsair. LSS weaker than Corsair. A more accurate determination of those cards firepower would only be revealed when looking at their extended tooltip. Which could be expanded by noting how many turrets can fire at a single target simultaneously to give people an idea on the effective single target damage.

If we take this for example:

Quote

(Single Target DMG + AoE DMG) / 2 / (Time between Attacks / 20) * # of turrets that can attack a single target

Battleship - 2500
Ravenship (Ravenheart summons) - 1520
Corsair - 1670 (formula for one turret and the cannon added up)
Ravenheart - 3150
Spitfire - 4182 (formula for one turret and ground bomb added up)
Lost Spirit Ship - 1800
Howling Shrine - 1705
Rocket Tower - 375
Stronghold - 4100

We get something that I think is a bit more accurate to combat performance against single targets. But it once again muddies the waters when it comes to napkin math, as in people would still have to calculate the DP20 of one turret based on the tooltip and scale that up.

And that formula would have the problem of double dipping on the AoE DMG part even though it's more tailored towards single target performance. And it leaves Howling Shrine too much in the dust compared to Stronghold.

 

For strict consistency I am somewhat intrigued by the approach of using the Multishot presentation though. It is already an established approach within the game and would be very straight forward. At least assuming we also expand the tooltip to explain how many turrets can attack the same target simultaneously. Which is another problem to solve in and of itself, considering the weird behavior of Corsair and the fact that several multi-turret entities can sometimes shoot more or less turrets depending on the angle.

Link to comment
Share on other sites

First thing, kudos for taking the time and effort for these calculations.

My only idea is perhaps to go the route AoE2 does it. Ie. for Tower, the attack value is let's say 10. For a Castle, which fires multiple arrows, the value is displayed as 10 (4). 

As such, for units with multiple turrets/attacks, we could go for the single target dmg value with (8) for the number of max stuff that can possibly attack (though this will not be consistent either, because some may all attack single target, some less so, some not at all). 

Link to comment
Share on other sites

so all squads (with 6 figures) will get damage cut to 1/6 and "(6)" suffix, while windveawers will get "(12)"? Apart from being quite a lot of text added (which I do not think would fit), it removes the "easy" comparing part, because now people would need to do multiplication for most squads

Link to comment
Share on other sites

1 hour ago, Kubik said:

so all squads (with 6 figures) will get damage cut to 1/6 and "(6)" suffix, while windveawers will get "(12)"? Apart from being quite a lot of text added (which I do not think would fit), it removes the "easy" comparing part, because now people would need to do multiplication for most squads

Not quite. What I had in mind is to use that system only for entities that can attack multiple targets. 
Squads are still in essence single entity attacking single entity (only exception is multishot Windweavers). So they would not need changes.

This system would only be avaible for, well, mostly the flying ships and the like. 
IE. Battleship - 2000 (4) DP20    (Single cannon can do 2000 DP20 to single target, but it does not reflect that 2 cannons can attack same target). 

Probably not great idea overall, but hey, I did try. 

Link to comment
Share on other sites

From my point of view figures are the relevant entities here, and each figure can attack different target (yes I know, not easy to do, if you can not give them individual commands, but it is possible), so most archers can attack 6 different targets, and windveawers can attack up to 12 different targets, and that can be satisfied with 12 figures (2 squads of 6 figures each), but because they are independent a single squad with only 2 figures left is also enough to maximize the damage output, each shooting at both figures.

Link to comment
Share on other sites

I figured that these type of attacks could be keyworded as "Turret attacks" so that a line of consistency is drawn across all these entities. Then they could get the multishot-treatment. Meaning the DP20 of only a single turret is listed. In addition to that the description itself clarifies how many turrets can attack at the same time. It would look like this:

corsair.pngbattleship.pngstronghold.pngspitfire.png

Maybe "X turrets can attack one target simultaneously" would be clearer? "A single target can be attacked by X turrets simultaneously"?

Thoughts?

Metagross31 likes this
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Terms of Use