Jump to content

AOE damage overflow bugfix (high impact)


wibryz

Recommended Posts

There is a longstanding bug in the calculation of AOE (area of effect) damage, affecting spells, unit abilities and unit attacks which have a max damage per target and max overall damage. Examples of affected spells are Eruption or Fire Sphere, abilities like Rifle Cultists' Dark Grenade or AOE attacks of units like Construct, Frost Mage or Deepcoil Worm.

TL;DR at the bottom!

 

How the bug works:

If an AOE damage effect kills a unit, only 50% of the overkill damage is transferred back to the pool of available damage which is to be distributed to other targets.

Let's take Fire Sphere (u3) as an example. The spell has a maximum single target damage of 6000 and a maximum total damage of 8000. As it stands, the spell will only ever do its full damage if its primary target (closest to the area of effect center) has at least 6000, and its second target has at least 2000 health.

If you use Fire Sphere on a group of weaker enemies, it's effectiveness will vastly diminish. Let's take for example a group of 8 Sunderers (u3), which have exactly 1000 HP each, for a total of 8000 HP. Fire Sphere will kill 3 of them, and damage a fourth Sunderer for 375 damage, leaving him with 625 HP. Total damage dealt: 3375. It would get even worse for lower health targets.

Fire_sphere_vs_8_sunderers_EA.jpg.c002569259f6651ae3eb23747be5d57c.jpg

Why does it happen? Because of faulty calculation in the damage formula, which returns only 50% of overkill damage to the pool of remaining damage.

So what's the maths behind it?

Before: max single target damage = 6000, damage in pool = 8000

Target 1: health = 1000, damage dealt = 6000, overkill damage = 5000, damage returned to pool = 2500, remaining damage in pool = 4500

Target 2: health = 1000, damage dealt = 4500, overkill damage = 3500, damage returned to pool = 1750, remaining damage in pool = 1750

Target 3: health = 1000, damage dealt = 1750, overkill damage = 750, damage returned to pool = 375, remaining damage in pool = 375

Target 4: health = 1000, damage dealt = 375, health remaining = 625

 

Is it a bug, or is it a feature?

That's a non-trivial question. But so far, there is every indication that this is in fact a bug.

1. There is no indication whatsoever in the spell descriptions, especially the big AOE spells like Fire Sphere, that they massively lose effectiveness against groups of enemies, or that they deal only half damage to further targets.

2. Against a heterogenous group of enemies, the total damage dealt varies greatly, depending on which target was closest to the spell center, thus in which orders the targets are affected.

3. Logic dictates, that there is no reason for an explosion to lose effectiveness (as in: deal less overall damage) the more viable targets are affected.

4. Increasing "maximum single target damage" reduces the overall damage dealt by the spells, if they are used against groups of enemies, to a point where Lava Field sometimes deals more overall damage than Fire Sphere. How does that make sense?

 

What's the proposed bugfix/change?

To enable full overkill damage overflow. As in, if the single target damage is 6000, and the target has only 1000 health, let 5000 damage return to the remaining damage pool.

 

Using the example above again, that's 8 dead Sunderers for a total of 8000 damage and a happy, fulfilled Fire Sphere.

fire_sphere_vs_8_sunderers_full_carryover.jpg.b649b03d87f853e9d39a7e94ff082e80.jpg

 

Can it be implemented easily?

We've been hard at work and testing with Kubik (who's effort and insight are massively appreciated!), and the relevant code already exists, ready to be implemented. It also is easily adjustable, should it turn out that another value, like a 75%, or 80% damage carryover on overkillis the sweet spot.

 

What will change if the bugfix is implemented?

Every AOE spell, ability and attack, which has a listed damage per target and maximum damage will be affected by this change. However, the degree to which it will have an impact, varies greatly from one case to another. For most cards, especially with low damage numbers, the increase will be negligible (not JUST because these are low numbers, but primarily because those spells/attacks have a low chance to kill a target with any given shot).

Generally, the bugfix is a direct buff to many cards and abilities. However, damage is only actually increased if 1. at least one of the targets is killed, 2. there are more viable targets in range than (total_damage / max_singletarget_damage) rounded up. Also, to be clear, damage is NEVER going to be increased for the primary target

Spells which are affected the most, are spells which have high enough numbers, that they are expected to reliably kill some, or most of their targets. The greater the single target maximum damage of the AOE damage source, and the greater single target maximum damage in relation to total maximum damage, the more any given spell/attack/ability is affected. Also, spells/attacks/abilities which have a larger AOE and the above characteristics, tend to be affected more (because more targets fit into the AOE).

 

My predictions concerning the impact on specific cards:

High impact: Fire Sphere, Rifle Cultists* (ability: Dark Grenade), Boom Brothers* (ability: Boom), Necro Fury* (ability: Bone Shards), Altar of Chaos (against really large groups), Worldbreaker Gun (attack and ability: Heavy Snowball, though the latter only against really large groups), Shatter Ice, Comet Catcher (against really large groups).

* - Unholy Hero increases the impact

Moderate impact: Construct (attack), Giant Wyrm (attack), Ironclad (attack), Wasteland Terror (attack), Abomination (ability: Blessed/Tainted Fury), Skycatcher (attack), Gemeye (attack), Volcano (attack), Artillery (attack), Hatecaster (attack), Deepgorge (attack), Thornbark (rooted attack), Treefiend (rooted attack), Lost Horror (attack), Soulshatter (>3 targets), Backlash (depending on void power, may be low impact), Corpse Explosion (>3 targets), Morklay Trap, Shadow Phoenix (>4 targets), Lost dancer (ability: Necro explosion, only with lots of targets in range), Nasty Surprise (>3 targets), Necroblaster (attack, and shadow affinity ability: Tainted Voodoo).

Low impact: Magma Hurler (attack), Sun Reaver (ability: Metal Spikes), Deepcoil Worm (attack), Twilight Bombard (attack), Lost Disruptor (attack, moderate impact against grouped very low health fliers), Shadow Mage, Eruption (>3 targets).

 

My predictions concerning the impact on PVP balance:

(I am not an active PVP player currently. I did play a decent amount in times of Battleforge, but I am in no way up to date, so take these predictions with a grain of salt).

Shadow will slightly gain in power, as the explosions have actually high enough damage numbers to reliably kill at least some of their targets, but except for Shadow Mage, it only ever becomes relevant when there are >3 targets in range of the spell/ability. The slight buff to Eruption shouldn't have an impact. Otherwise I expect nothing much to change. The vast majority of significantly affected cards are T4.

 

My predictions concerning the impact on PVE:

Enemies: Long range AOE attackers, like Bandit walkers and high tier defensive towers (e.g. artillery) will be more proficient at murdering grouped units.

Players: Stronger tools of destruction at player disposal. It should only really affect T4, and shadow at lower tiers (Shadow Phoenix in particular should be noticeably more effective against large groups, Necroblaster will get stronger, Corpse explosion and Soulshatter will also be noticeably more effective).

 

Final thoughts:

I was for a long time under the impression, that large AOE damage sources are somehow underperforming, without really understanding why. Fire Sphere! Enormous explosion! Which... kills 3-4 units out of a cluster of 15 units. Now that I found out why those spells underperform, I've taken the effort to try and fix it. That's the result. I consider it a bugfix, even though it is also a moderately impactful balance change. That's how Skylords Reborn, and earlier Battleforge, handled AOE damage. A bug that had largely become a feature. I propose we change it in a logical way. Maximum 8000 damage in the area? If the targets in range have as much overall health, the damage will be dealt in full.

 

Special thanks:

Kubik, for his unending patience and making the unreadable mess of code actually parsable for the human mind.

 

TL;DR:

High tier AOE spells and abilities promise big numbers. Against lots of small targets, numbers are much smaller, because overkill damage is halved (multiple times). The proposed change fixes stuff, so that big spells deal the promised damage. Fire Sphere -> big boom -> big damage -> lots of dead bandits. Vote big damage. Vote dead bandits!

Bkingn, Volin, Xamos and 9 others like this
Link to comment
Share on other sites

That was quick! Just 6 days after your initial report you not only present a fix, but also an impact report. Good work!

Also.... praise Hel- [...] praise KUBIK! 

I'd love to see it implemented, but also have my concerns. Pretty sure the game feels and plays a lot different in t3+, to the point of having to relearn how to play with and against certain cards. Maybe in a fully fledged SR expansion (soon™?) this change would fit in...

Metagross31 likes this
Link to comment
Share on other sites

11 hours ago, wibryz said:

I was for a long time under the impression, that large AOE damage sources are somehow underperforming, without really understanding why

Ah yes, I can very much relate - I felt the same!

Also, great work! And thanks for the detailed Post here!

Looking forward for that Update, tho the Impact might be huge. Strong cards like Shadow Phoenix do even get stronger? Those cards might need some number adjustment accompanied by that bugfix.

 

11 hours ago, wibryz said:

Kubik, for his unending patience and making the unreadable mess of code actually parsable for the human mind.

Kubik, the real Hero of Skylords 😉

But if he makes it first readable for the human mind, what mind does Kubik then have? ;D

Link to comment
Share on other sites

Why me? I just provided real time data for how the damage works. Implemented formulas @wibryz write and did some small testing. He is the one who did trough all these numbers to figure out what is wrong and how to fix it. (And I would say it was less than 4 days for the actual analysis and fix 🙂 )

8 minutes ago, Xamos said:

Looking forward for that Update, tho the Impact might be huge. Strong cards like Shadow Phoenix do even get stronger? Those cards might need some number adjustment accompanied by that bugfix.

How much HP does "usual" targets of Shadow Phoenix have?

Mynoduesp, Metagross31 and Damo like this
Link to comment
Share on other sites

Just some expectation management here: 

While we do agree this should be fixed ideally, our testing capacities are insufficient for such a change. As this affects a multitude of cards, we would probably require an entire patch rotation to fine tune this. Prioritizing other things would have more benefits even mid-long term.

 

Link to comment
Share on other sites

Yes! This is what i want from the beginning but never said 😄 and with these changes there could be a buff to make rpve 7-8-9-10 a bit stronger so we dont rush them down as fast as we can with the buffed spells. I mean this doesnt need that much time to fine tune it... Just add it to the game and see what ppl will do. If its rly that game breakong you can just revert it back to the original and think about this change more. Im 110% in with this project! Make heavy dmg relevant!

 

Link to comment
Share on other sites

3 minutes ago, Bkingn said:

buff to make rpve 7-8-9-10 a bit stronger

I would suggest first fixing it first so it does not miss so many enemies 😛 There is optional boss one step sooner (lvl=2 instead of lvl=3), but no unit defined for it, so every time game decides to have it there, it only logs warning that boss is missing 😞

Bkingn likes this
Link to comment
Share on other sites

12 minutes ago, Bkingn said:

Yes! This is what i want from the beginning but never said 😄 and with these changes there could be a buff to make rpve 7-8-9-10 a bit stronger so we dont rush them down as fast as we can with the buffed spells. I mean this doesnt need that much time to fine tune it... Just add it to the game and see what ppl will do. If its rly that game breakong you can just revert it back to the original and think about this change more. Im 110% in with this project! Make heavy dmg relevant!

 

There are way too many cards, plus a carefully balanced PvP scene, to just drop a change like this and hope for the best. 

Link to comment
Share on other sites

Well PvP is kind of less affected by fix like this because T1 spells do less damage, which means also less overkill damage is possible. (not saying it would still not be a huge, task though, but my guess is that PvP part would be manageable to test, 🤔 would there be even 20 cards to check in T1 and T2? )

Link to comment
Share on other sites

Man I would love to see early bosses 😄

 

Well I dont know... I think this game has such a great community but we should keep in mind that this is also a relatively small group of ppl. So I mean this is not League of Legends where a small movement speed change could break a legend. This is battleforge a pure nostalgia train with cool new possiblities to improve the game such as making heavy spell dmg relevant. Think about the new playstyles and so on. I know there are a tons of cards which would benefit from the change but its still very much needed. And about pvp. Yeah not very popular right? If these changes break the pvp balance theres always time to change it back, and to be honest there are no seasons or something, its only about climbing so does it rly matter that the pvp is a but broken for a few weeks? We might see new players trying out pvp cuz they can feel more power with a single spell. I dont know these are my thoughts.

Edited by Bkingn
.
Link to comment
Share on other sites

I knew about that bug-issue intuitively, but didn't know neither how to properly reverse engineer it and calculate it, nor how to track it down properly. Moreso didn't pay too much attention to the bug itself as I happened to be just lazy \:p 
Nonetheless - good work, both of You, on not only testing and figuring the issue out, but also finding a solution as well as testing the solution. The assumption & prediction work done as well, which shows how impactfull this is at least in first rough approximations.

36 minutes ago, Majora said:

Just some expectation management here: 

While we do agree this should be fixed ideally, our testing capacities are insufficient for such a change. As this affects a multitude of cards, we would probably require an entire patch rotation to fine tune this. Prioritizing other things would have more benefits even mid-long term.

testing capacities...
...Analyzing seriously i can say: 
...That would require the whole playerbase dedicated on play-testing... just by wild approximations; for a significant time... by which i mean at least a full month of just non-stop testing phase... with weekly surveys from at least 25% of the 'testers', 50% more of short replies and report-expressions, and the last 25% creating additional mass of playerbase even if inert....
This is only testing and reporting the results, which does NOT imply changes or analysis whatsoever. For such a huge data we'd have to create statistics-survey auto analyzers which would show certain coeffs. and % values on multitude of different things... This is a HUMONGOUS machine.

Wonder what is the stance of the whole community would be. I do not care for asking player groups separately, but just a total survey. Thus leaving a question only to the Throne: execute the survey? Y/N.

But we all know that the answer is - No. 
 

My personal opinion: hell yes. Why - look at other RTS and ask yourself how the hell do they work like that... They all have equal damage in AOE (unless it is a 'Gradient Zone' of Effect, which is not much of a different as it still has no cap or distribution, but is strict to gradient formulas). Majority of games also add some randomness factor to numbers in a straight form of random range like 95-105 dmg and also some different implications like "real" numbers with a floating point for damage reductions and such... Maybe 30+ years of game industry knows something???

Design-wise: I have barely any idea what was the implication behind the design of this damage cap. Perhaps they wanted to make damage resulting outputs more random instead of fixed and square as in.... well... card game du'h. Creating spreading of the damage across the border and multitude of things creating less rounded numerics, spiced up with different melee attack animations of units dealing different damage. But since ranged attacks deal fixed damage and you cannot tie it logically to shooting harder xD So they made this weird damage distribution to all of the targets in the AOE, but it caps out... Why it is not a gradient... who the F knows...

Link to comment
Share on other sites

16 hours ago, wibryz said:

to a point where Lava Field sometimes deals more overall damage than Fire Sphere. How does that make sense?

And I think we can all agree that this should not be the case right? How can a T2 spell deal more damage than a T4 spell? 

 

But yes, this could get out of hands quickly, where certain cards that are now okish would be completele busted. That bugfix would allow some cards to deal massive splash dmg, obliterating grouped enemies. Maybe because of that the sweet spot of distributing 75% of the leftover dmg to the next targets might be justified.

 

A different approach would be, now that we know exactly how the dmg distribution works, is to upper the max total damage from certain cards and spells that are now underperforming.
So Fire Sphere would need like double its current total dmg. Even then it would not kill the 8 Sunderers in the example however. 

And maybe state it in the card descriptions that only 50% of the leftover dmg can be dealt to the next target?

Edited by Xamos
Link to comment
Share on other sites

8 minutes ago, Xamos said:

A different approach would be, now that we know exactly how the dmg distribution works, is to upper the max total damage from certain cards and spells that are now underperforming.
So Fire Sphere would need like double its current total dmg. Even then it would not kill the 8 Sunderers in the example however. 

image.png.c17a07ff2da281e9363c5d7f94a126b0.png

So killing 7 squads of Sunstriders, instead of 4, while allowing it to kill almost 3 Constructs instead of just 1? That sounds like really bad solution to me.

Link to comment
Share on other sites

Yeah no thanks the double total dmg sounds super busted xD.

 

Is there a way to not calculate overkill dmg (ignore it)? so i mean make the dmg randomly split among all enemies inside the area. So therefor there are no need to calculate overkill numbers. its just an idea but maybe without source code its not possible.

Edited by Bkingn
.
Link to comment
Share on other sites

9 minutes ago, Kubik said:

Since at least last EA's patch in 2013, but probably even earlier 😞

It has likely worked like this since the beginning. All PvP players know that damage doesn't overflow just from the Nasty Surprise interaction which you can see in even the oldest PvP videos on Youtube. 

Link to comment
Share on other sites

11 hours ago, Xamos said:

But yes, this could get out of hands quickly, where certain cards that are now okish would be completele busted. That bugfix would allow some cards to deal massive splash dmg, obliterating grouped enemies. Maybe because of that the sweet spot of distributing 75% of the leftover dmg to the next targets might be justified.

It would strongly encourage spreading your forces against potential AOE damage instead of grouping. As is, AOE damage doesn't strongly penalize grouping your units, instead it semi-promotes it, at least in some cases. You can send several, likely pre-damaged throwaway squads ahead, so that they eat up the AOE damage and leave your more important units protected despite being in the area of the damage. Like shielding your expensive units from a Thornbark using throwaways. Also, as is, faster shooting, lower damage AOE damage sources are much more effective than slow, big-number ones, in cases where the damage should be identical on paper.

 

8 hours ago, WindHunter said:

It has likely worked like this since the beginning. All PvP players know that damage doesn't overflow just from the Nasty Surprise interaction which you can see in even the oldest PvP videos on Youtube. 

As far as to the existence of this bug... I suspect the developers at EA Phenomic might have been aware of this, or even left it in purposefully as a way to limit AOE damage, or, less likely, introduced such damage calculation in order to limit AOE effectiveness. If that was the case, I don't agree that this was a good solution to limiting AOE damage effects.

Already a more elegant solution would be to limit maximum damage per target beyond the first X targets affected on a spell by spell basis, while preserving the damage total if enough targets are affected. In the sense of "maximum per-target damage for targets beyond the first 2 is limited to half the amount". Or using 2-zone AOE for the big AOE spells and effects. Or the gradient damage distribution like suggested above. Or by applying damage up to the max per target limit to the X first targets affected, and distributing any remaining damage evenly among units and buildings in the area. Not by covertly limiting damage in spite of an explicitly stated total damage value.

Each of these solutions however is more difficult to implement than the current damage formula.

 

12 hours ago, Majora said:

There are way too many cards, plus a carefully balanced PvP scene, to just drop a change like this and hope for the best. 

This is why the post landed here, in the suggestions subforum. While I still consider this to be a bugfix, it also is a significant balance change. I am partial to WindHunters suggestion posted over on Discord to whitelist spells on a case by case basis. The way I see it, it would work both for slowly playtesting then changes, and as a staggered release. Though having some spells which handle damage distribution differently than used to, might indeed become confusing.

Edited by wibryz
Mynoduesp, Volin, Bkingn and 1 other like 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