The Gold Road Chapter – which includes the Scribing system – and Update 42 is now available to test on the PTS! You can read the latest patch notes here: https://forums.elderscrollsonline.com/en/discussion/656454/

Would removing AOE cap have noticable impact on Cyrodiil performance

Ranger209
Ranger209
✭✭✭✭✭
ZOS_Wrobel wrote: »

We want AoE abilities to be useful in PvP. That being said, we don’t want them to be the end all be all - single target abilities should also be useful. The intention of the caps and falloff is that AoE damage will be able to outpace healing in large group battles, but not dominate it. Healing abilities currently cap at 6 targets, where damage can hit up to 60 targets (100% to the first 6, 50% to the next 24, and 25% to the last 30).

Correct me if I'm wrong , but I believe the AOE caps still work this way or similar with some % changed perhaps. I mean what kind of calculation does it take to make this happen? It would seem somewhat intensive. So if you get a 50 on 50 fight and 40 players are shooting off AOE's in a 2 or 3 second window what is that doing to the system? Would removing the cap have much of an impact on performance? Not having to figure out when to apply the percentage cutoffs. Would limiting AOE damage straight up to 6 or even 12 at 100% and cap it right there rather than allowing them to hit 60 people have an impact? I would think on paper this would have an impact, unless hitting that many people really doesn't happen that often in real world applications. Heh Cyrodiil = Real World. It seems to me that this is pretty crazy strenuous on the server and client side, if it really does happen with any frequency. Maybe not, I don't know the math, but from the outside looking in it looks intense. Thoughts?
  • VaranisArano
    VaranisArano
    ✭✭✭✭✭
    ✭✭✭✭✭
    From the Support FAQ: https://help.elderscrollsonline.com/app/answers/detail/a_id/23078/kw/aoe cap

    Do AoE abilities have a target cap?
    Updated 03/16/2015 11:23 AM
    Yes. All Area of Effect abilities have a target cap. This includes healing spells. This means that if players are trying to attack or heal a large number of targets, only a certain number will be affected.

    The current cap is 6 targets for AoE healing and damage.

    Unfortunately, I'm finding it very hard to find information on the current state of AOE caps, outside of complaint threads. I'll link a recent one here as there are some good defenses of the current AOE cap system: https://forums.elderscrollsonline.com/en/discussion/348630/we-want-aoe-caps-removed-right-now
  • Casterial
    Casterial
    ✭✭✭✭✭
    They once had it where there were no AOE caps. Zergs ran rampant over everyone.

    Ping average: 1000.
    Daggerfall Covenant:Casterial Stamplar || Casterial DK || Availed NB || Castyrial Sorc || Spooky Casterial Necro
    The Order of Magnus
    Filthy Faction Hoppers

    Combat Is Clunky | Cyordiil Fixes

    Member since: August 2013
    Kill Counter Developer
    For the Daggerfall Covenant
    The Last Chillrend Empress
    Animation Cancelling
  • ToRelax
    ToRelax
    ✭✭✭✭✭
    ✭✭
    From the Support FAQ: https://help.elderscrollsonline.com/app/answers/detail/a_id/23078/kw/aoe cap

    Do AoE abilities have a target cap?
    Updated 03/16/2015 11:23 AM
    Yes. All Area of Effect abilities have a target cap. This includes healing spells. This means that if players are trying to attack or heal a large number of targets, only a certain number will be affected.

    The current cap is 6 targets for AoE healing and damage.

    Unfortunately, I'm finding it very hard to find information on the current state of AOE caps, outside of complaint threads. I'll link a recent one here as there are some good defenses of the current AOE cap system: https://forums.elderscrollsonline.com/en/discussion/348630/we-want-aoe-caps-removed-right-now

    What I see there is someone literally stating that AoE caps are in place to carry inexperienced players. The funny thing is that it doesn't even works that way. AoE caps protect organized large groups, not PUGs.
    Casterial wrote: »
    They once had it where there were no AOE caps. Zergs ran rampant over everyone.

    Ping average: 1000.

    Post launch we had several skills that had been left uncapped. They didn't cause lag but rather prevented much of it by wiping large groups quickly.
    DAGON - ALTADOON - CHIM - GHARTOK
    The Covenant is broken. The Enemy has won...

    Elo'dryel - Sorc - AR 50 - Hopesfire - EP EU
  • ATRing
    ATRing
    Soul Shriven
    I doubt outright removing AoE caps would improve performance in Cyrodiil.

    Mainly because the AoE cap puts a hard limit on the number of targets that can be affected by a single tick from an AoE. While you are correct that the modifier applied to the damage done is likely somewhat taxing on the server, it is likely not as taxing as the possibility of having an AoE hit 2xFactionPopulation which would be possible without the AoE caps.

    Ideally the best version of the AoE cap would be to remove the damage modifier and instead pick the first n players the AoE hit to apply the damage to. This would remove the excess calculations along with reducing the effectiveness of stacking players to achieve passive damage reduction to an extent.

    It would still be possible to achieve the passive damage reduction by stacking but it would theoretically harder for healers to heal through the damage as more players would be taking full damage, but that is a different issue.

    Theoretically you could increase the AoE cap if you removed the damage modifier. Because you are removing calculations and instead you can do on that work on another player. But at some point there will be a crossover where the work done updating an additional player would exceed the work done applying the damage modifier to the last player in the current AoE cap.

    This is of course assuming that the damage is just a subtraction or addition of the damage done to a health attribute for a player, but likely there is more to it and this is oversimplified.

    An additional concern would be how the update on damage is load balanced. We would see the best returns on this if everything was processed in one timeslice rather than spread across multiple. While severely load balanced we would likely not see any improvement to performance as minimal work is being done already.

    But I could be wrong I am very interested in this topic and curious what others have to say on the matter.
  • Casterial
    Casterial
    ✭✭✭✭✭
    ATRing wrote: »
    I doubt outright removing AoE caps would improve performance in Cyrodiil.

    Mainly because the AoE cap puts a hard limit on the number of targets that can be affected by a single tick from an AoE. While you are correct that the modifier applied to the damage done is likely somewhat taxing on the server, it is likely not as taxing as the possibility of having an AoE hit 2xFactionPopulation which would be possible without the AoE caps.

    Kinda, but if you have a group of 20 spamming an AOE
    that's 6 x 20 for the cap..


    AOE caps kinda push you more into grouping to fight larger groups. Server checking however could show as an issue.
    Daggerfall Covenant:Casterial Stamplar || Casterial DK || Availed NB || Castyrial Sorc || Spooky Casterial Necro
    The Order of Magnus
    Filthy Faction Hoppers

    Combat Is Clunky | Cyordiil Fixes

    Member since: August 2013
    Kill Counter Developer
    For the Daggerfall Covenant
    The Last Chillrend Empress
    Animation Cancelling
  • zaria
    zaria
    ✭✭✭✭✭
    ✭✭✭✭✭
    Casterial wrote: »
    They once had it where there were no AOE caps. Zergs ran rampant over everyone.

    Ping average: 1000.
    Back at launch PvP was epic, no AoE caps, little lag and giant battles. Issue was that so much was done on client it made cheating pretty trivial so it was moved to server. Then we got current issues.

    Now I think they have gotten rid of the 6 target AoE cap at least in PvE, you can get some insane dps values pulling in skyreach. Read somewhere its an reduction on effect past an number of targets.

    And no zergs get hurt by AoE. Imagine all just had LA doing 9K damage and all had 30K health, you would always loose 2-1, now let healer heal the most wounded friend in area for 15K to make it even more unbalanced.

    With AoE an smaller group can kill an 60 man zerg in an breach if coordinated. This happen real world, think of battles before the us civil war, all clumped together, then you got AoE like machine guns, artillery and bombers and you have to spread out.
    Grinding just make you go in circles.
    Asking ZoS for nerfs is as stupid as asking for close air support from the death star.
  • ATRing
    ATRing
    Soul Shriven
    Casterial wrote: »
    Kinda, but if you have a group of 20 spamming an AOE
    that's 6 x 20 for the cap..


    The cap is per player not per group. I do not disagree that the total number of targets a group of 20 can hit is 120 assuming unique targets are chosen for each and the AoE cap is 6. But still in that scenario the AoE cap per player is 6.

    If you have a group where GroupSize = ((2xFactionPopulation)/6) which would mean that every player would hit 6 targets but you have enough players to hit everyone on the opposing factions each player still has only 6 unique damage events they can run. While this would likely still be an issue because of the amount of damage events but it would not be nearly as catastrophic as a single player being able to meet the same conditions without the caps. I could be wrong about this, but I think I get your point in that it doesn't matter what the AoE cap is when you have that many people in an area using AoE.

    It would be interesting if the damage is processed on the event or by player.

    As in if each damaging attack creates an event that are then discarded or modified based on how many events have already been processed for the sender of the event. Then we would need to still process all of the events and we would just save time by returning if we have processed enough events from that player or some other condition but we would still have to look over all the events received.

    Otherwise if done by player we could move on to the next player but I am unsure how that would be structured for checking if we need to apply damage.

    Edit: wording
    Edited by ATRing on November 22, 2017 3:28AM
  • Malic
    Malic
    ✭✭✭✭✭
    Wow another AOE cap thread.

    Anyone make a fengrush sighting yet?
  • VaranisArano
    VaranisArano
    ✭✭✭✭✭
    ✭✭✭✭✭
    Shall we round this out by pointing out that ZOS even did a No CP week on all the campaigns to figure out if removing the CP calculations would fix some of their server issues?

    Spoiler: It didn't, even with double AP to make sure everyone came out to play. And that's why we still have CP in PVP.

    Plus, when the servers broke later that week, all the jokes were about how CP in PVP keeps the servers running.
  • Ranger209
    Ranger209
    ✭✭✭✭✭
    From the Support FAQ: https://help.elderscrollsonline.com/app/answers/detail/a_id/23078/kw/aoe cap

    Do AoE abilities have a target cap?
    Updated 03/16/2015 11:23 AM
    Yes. All Area of Effect abilities have a target cap. This includes healing spells. This means that if players are trying to attack or heal a large number of targets, only a certain number will be affected.

    The current cap is 6 targets for AoE healing and damage.

    Unfortunately, I'm finding it very hard to find information on the current state of AOE caps, outside of complaint threads. I'll link a recent one here as there are some good defenses of the current AOE cap system: https://forums.elderscrollsonline.com/en/discussion/348630/we-want-aoe-caps-removed-right-now

    The quote I got above is from Nov of 2015, did they change it so damage AOE's could affect up to 60 people? HAve they changed it since?
  • Ranger209
    Ranger209
    ✭✭✭✭✭
  • VaranisArano
    VaranisArano
    ✭✭✭✭✭
    ✭✭✭✭✭
    That's what I've been trying to find, but I can't find any official updated info on current aoe caps even after looking through the major game update patch notes. Maybe one of the Devs or the Community Ambassadors can help?

    ...

    Okay, found it. Homestead update: https://www.elderscrollsonline.com/en-us/news/post/25923

    Combat & Gameplay
    General
    Adjusted the Area of Effect damage thresholds for all abilities. The new thresholds are as follows:
    Targets 1 – 6: 100% damage taken with all secondary effects applied.
    Targets 7 – 24: 75% damage taken with no secondary effects applied (formerly 50% damage taken).
    Targets 25 – 60: 50% damage taken with no secondary effects applied (formerly 25% damage taken).
    Developer Comment: The goal of these changes is to decrease the effectiveness of players grouping into tight groups in order to spread out damage, while at the same time making sure that AoE abilities are not too powerful.

    That's the most updated information from 2.06.2017 on the aoe caps. That was surprisingly annoying to track down. ESO Support should probably consider updating their answer to the most current info.
    Edited by VaranisArano on November 22, 2017 4:06AM
  • Ranger209
    Ranger209
    ✭✭✭✭✭
    That's what I've been trying to find, but I can't find any official updated info on current aoe caps even after looking through the major game update patch notes. Maybe one of the Devs or the Community Ambassadors can help?

    ...

    Okay, found it. Homestead update: https://www.elderscrollsonline.com/en-us/news/post/25923

    Combat & Gameplay
    General
    Adjusted the Area of Effect damage thresholds for all abilities. The new thresholds are as follows:
    Targets 1 – 6: 100% damage taken with all secondary effects applied.
    Targets 7 – 24: 75% damage taken with no secondary effects applied (formerly 50% damage taken).
    Targets 25 – 60: 50% damage taken with no secondary effects applied (formerly 25% damage taken).
    Developer Comment: The goal of these changes is to decrease the effectiveness of players grouping into tight groups in order to spread out damage, while at the same time making sure that AoE abilities are not too powerful.

    That's the most updated information from 2.06.2017 on the aoe caps. That was surprisingly annoying to track down. ESO Support should probably consider updating their answer to the most current info.

    So I am looking at this from strictly a standpoint of leaning up the calculations that are being performed and the performance hit that they may be imparting on the system. Which looking at that, and what I can only imagine it takes from a programming standpoint to pull off, appears to be monumental. Then multiplying that by however many people may cast AOEs at a given time in a 50v50 type fight.

    So I pose 2 questions:

    1. Would removing the cap all together be better than all the differentiation that has to take place to break it down into the 3 target groups from a performance standpoint?
    2. Would flat out limiting the targets an AOE can hit to 6 or 12, but at least a static number be even better yet?

    I know people may not like it one way or the other, but if it could make a noticeable difference in performance is it a trade off that would be worth pursing and acceptable for that reason?

    The key is would it make a noticeable difference, if not it is not worth pursuing to that end.

    edit: That is where they made the changes to the percentages of the 2nd and 3rd groups, thank you for finding that.
    Edited by Ranger209 on November 22, 2017 4:34AM
  • ATRing
    ATRing
    Soul Shriven
    Ranger209 wrote: »

    1. Would removing the cap all together be better than all the differentiation that has to take place to break it down into the 3 target groups from a performance standpoint?

    Yes, in almost every case removing the modifier for the damage would make everything run faster as there would be less operations. The difference likely would not be noticeable as we are talking about potentially 54 multiplication instructions(unoptimized) per cast(assuming you hit the full 60 targets), however, outright removing the AoE cap would likely be detrimental to performance as there will be a point where the number of targets hit will be more work than just capping at the 60 with the modification.

    Assuming the multiplication for the modifier is the same cost as addition(it's likely not but the difference is likely minuscule) currently for the first 60 targets we are doing 60 additions and 54 multiplications (this could likely be optimized because we really just need to do 2 as 0.75*damage value will be roughly the same every time meaning we can cache that value off, along with the 0.5). But assuming the worst case unoptimized we are doing 114 additions. So in order to exceed that amount of work our AoE without AoE caps will need to hit 114 players. Then every player after that 114th will be more expensive than keeping the AoE caps.

    If we were to optimize then our total calculations would be 62 meaning after the 62nd player our calculations would be more expensive than with the AoE cap. (This is assuming that we do not take into account crits or any mitigation values but that would have to be done regardless on each player so this assumes the the values are precalculated)

    So to summarize, yes removing the modifier would help but the gain might be so small it would not be noticeable or, no the worst case for the calculations is much worse than it was before.
    Ranger209 wrote: »

    2. Would flat out limiting the targets an AOE can hit to 6 or 12, but at least a static number be even better yet?

    This would be the ideal solution from an efficiency stand point, however, this is the worst solution from a game design standpoint.

    From the efficiency perspective we would have a small max cap on the number of operations a single player can trigger in one action.

    From the game design standpoint, this would cause any group over the cap to receive the passive damage reduction because it would be impossible for a single player to hit every in the group with a single attack(which in itself isn't ideal but not that bad), however, because the damage is seemingly random subsequent actions are not guaranteed to hit the players hit in the previous action.

    This is compounded by the fact that heals auto target the lowest health allies meaning every damage cast from a player has the chance of hitting any other player in the group while every healing cast is guaranteed to hit the lowest health players. This leads to an imbalance between damage output and healing output, which is why the caps for damage and healing a separate.

    Likely the ideal solution would be to remove the modifier based on the number of players hit so that all players hit take 100% damage which would weaken healing in large groups as it would be more difficult to sustain a large group with few healers. Though the ratio would then be 6 players per healer(inclusive)(assuming that damage and healing output are normalized) and this would negate the difference in healing AoE caps and damage AoE caps.

    But without knowing the systems and architecture they have in place these are just speculations.

    Edit: assumptions
    Edited by ATRing on November 22, 2017 6:25AM
  • Qbiken
    Qbiken
    ✭✭✭✭✭
    ✭✭✭✭✭
    One in the same guild as me who PvP a lot had a suggestion: Reduce the maximum amount of player in a group to 12 or 16, down from 24. In my opinion it would be interesting to put it to test to see how the overall performance when facing ballzerfs (destroball trains) would chance. I´m not saying it´s a good or bad suggestion, just curious how it would play out.
  • ACESsiggy
    ACESsiggy
    ✭✭✭
    Ranger209 wrote: »
    ZOS_Wrobel wrote: »

    We want AoE abilities to be useful in PvP. That being said, we don’t want them to be the end all be all - single target abilities should also be useful. The intention of the caps and falloff is that AoE damage will be able to outpace healing in large group battles, but not dominate it. Healing abilities currently cap at 6 targets, where damage can hit up to 60 targets (100% to the first 6, 50% to the next 24, and 25% to the last 30).

    Correct me if I'm wrong , but I believe the AOE caps still work this way or similar with some % changed perhaps. I mean what kind of calculation does it take to make this happen? It would seem somewhat intensive. So if you get a 50 on 50 fight and 40 players are shooting off AOE's in a 2 or 3 second window what is that doing to the system? Would removing the cap have much of an impact on performance? Not having to figure out when to apply the percentage cutoffs. Would limiting AOE damage straight up to 6 or even 12 at 100% and cap it right there rather than allowing them to hit 60 people have an impact? I would think on paper this would have an impact, unless hitting that many people really doesn't happen that often in real world applications. Heh Cyrodiil = Real World. It seems to me that this is pretty crazy strenuous on the server and client side, if it really does happen with any frequency. Maybe not, I don't know the math, but from the outside looking in it looks intense. Thoughts?

    Still waiting for a critical damage cap.
  • altemriel
    altemriel
    ✭✭✭✭✭
    ✭✭✭
    this is hard to answer, if calculating the AOE caps does higher load for the servers or if (without AOE caps) calculating the damage for all the affected players would do even a higher load for the servers

    some devs have to answer with a insider viewpoint, it would be nice if they would do so
  • Ranger209
    Ranger209
    ✭✭✭✭✭
    ATRing wrote: »

    From the game design standpoint, this would cause any group over the cap to receive the passive damage reduction because it would be impossible for a single player to hit every in the group with a single attack(which in itself isn't ideal but not that bad), however, because the damage is seemingly random subsequent actions are not guaranteed to hit the players hit in the previous action.

    This is compounded by the fact that heals auto target the lowest health allies meaning every damage cast from a player has the chance of hitting any other player in the group while every healing cast is guaranteed to hit the lowest health players. This leads to an imbalance between damage output and healing output, which is why the caps for damage and healing a separate.

    Likely the ideal solution would be to remove the modifier based on the number of players hit so that all players hit take 100% damage which would weaken healing in large groups as it would be more difficult to sustain a large group with few healers. Though the ratio would then be 6 players per healer(inclusive)(assuming that damage and healing output are normalized) and this would negate the difference in healing AoE caps and damage AoE caps.

    You bring up an interesting point with the healing as well that I hadn't considered. Exactly what does it take to find the lowest health targets to apply the heal correctly? This again sounds like some very intensive calculations to me. What if it just applied the healing to 6 or 12 group members period rather than seeking out the lowest health members it can find within a particular radius?

    From a PVE standpoint I think you would have to put it at 12 so that an entire group would be covered by an AOE type heal.
    From a PVP standpoint this might actually cause people to want to reduce their group sizes to 12 or under so that healers are affecting everyone in their group when it counts and not wasting heals hitting people that don't need them. It could have a side effect of making ball groups over a certain size detrimental to run. Speculating here, haven't thought it that far through yet, but I see potential for that. I guess you could stack groups of 12 easy enough. Maybe no real impact there.

    Again, the main reason for asking these questions is to ascertain whether a significant, noticeable performance boost could be attained. From my own experience the worst lag I see is in condensed groups. When there are zerg fights going on in Cyrodiil and I am not near them or part of them I really have little to no lag issues aside from the occasional self correcting spike that happens intermittently. This leads me to believe the biggest offenses are client side and not server side lag. All the talking back and forth between the server and all of the other clients that has to then be relayed to my client in real time causing packets to be lost and inducing some temporary memory leaks between those clients involved and the server. Heh, does that even make sense, or do I have to lay off the skooma?
  • Lightspeedflashb14_ESO
    Lightspeedflashb14_ESO
    ✭✭✭✭✭
    ✭✭✭✭
    @Ranger209 All AOE heals in the game are capped at six people per tick. This is one of the reasons you need two healers in trials.

    So you can damage up to 60 people with an AOE damage ablity from one player but only 6 of them can be healed at the same time by the same player. Pretty simple.
  • ToRelax
    ToRelax
    ✭✭✭✭✭
    ✭✭
    I'm surprised to see people argue that AoE damage caps in their current state somehow help performance. There is no question that the number of calculations now is higher than if every possible target took full damage, because you will basically never hit over 60 targets anyway, and if you ever do, it was much needed.
    Where we can only make assumptions is a) the cap for secondary effects and b) the healing cap, which are both at 6 targets at the moment.
    DAGON - ALTADOON - CHIM - GHARTOK
    The Covenant is broken. The Enemy has won...

    Elo'dryel - Sorc - AR 50 - Hopesfire - EP EU
  • VaranisArano
    VaranisArano
    ✭✭✭✭✭
    ✭✭✭✭✭
    So from a calculation perspective, everyone from 7-60 is just a straight damage calculation with a percentage, compared to targets 1-6 who get both damage and secondary effects.

    I suspect the pure damage calculations would be easier if everyone in ranged of AOE took full damage. However, the next set of calculations where everyone in range now has to have all the secondary effects applied would be significantly greater.
  • ToRelax
    ToRelax
    ✭✭✭✭✭
    ✭✭
    So from a calculation perspective, everyone from 7-60 is just a straight damage calculation with a percentage, compared to targets 1-6 who get both damage and secondary effects.

    I suspect the pure damage calculations would be easier if everyone in ranged of AOE took full damage. However, the next set of calculations where everyone in range now has to have all the secondary effects applied would be significantly greater.

    Yes, but we also don't know how significant any of this would be. Tbh I doubt that AoE caps have a big direct effect on performance one way or another. On the other hand, forcing players to spread so they do not all get hit at once in the first place should be very significant.
    DAGON - ALTADOON - CHIM - GHARTOK
    The Covenant is broken. The Enemy has won...

    Elo'dryel - Sorc - AR 50 - Hopesfire - EP EU
  • Zaldan
    Zaldan
    ✭✭✭✭✭
    ZO$ say no but they haven't tried it on live....
    Dovie'andi se tovya sagain.
    Niidro tiid wah fusvok dirkah.

    aka.@Cuthceol
  • Recremen
    Recremen
    ✭✭✭✭✭
    ✭✭✭✭✭
    There are a huge number of ways to design the algorithm for checking who gets damaged and for how much, but the calculation for "how much" is always going to be trivial. The big issue is finding out who gets damaged. Now in a theoretical situation where you could hit more than 60 people your performance should be worse without a cap because you aren't stopping the server from trying to find more people in the effect's area. The performance should be about equal if you are hitting less than or equal to 60 people because in both cases the server is still looking for more people to hit up to the cap and needs to finish checking the whole area of effect. The smaller the area of effect, the less taxing the calculation is going to be (keep that in mind when you look at stuff like the caltrops size nerf).

    Of course all of this is moot because you aren't ever hitting more than 60 people with a single attack. Literally ever. That doesn't happen. Like I don't play on EU or on consoles so maybe other people are getting into some really freaky situations, but on PC NA there has never been a concentration of more than 60 people in an area small enough to get hit by a single attack. We have giant battles where 80+ people show up to the same keep, sure, but they are not stacking on the same pinhead looking to get bombed. AoE caps are a complete non-issue for lag as near as I can tell. Even when it comes to behavioral changes, removing them won't make 80+ people stop showing up to the same keep because they're still not all stacking together enough to get hit by the same attack. I could see 20, I could even see 40 if two factions are fighting on a back flag and some nightblade tries to bomb them all or whatever, but I am incredibly confident that we are not getting even close to 60 99+% of the time.
    Men'Do PC NA AD Khajiit
    Grand High Illustrious Mid-Tier PvP/PvE Bussmunster
  • Ranger209
    Ranger209
    ✭✭✭✭✭
    Recremen wrote: »
    There are a huge number of ways to design the algorithm for checking who gets damaged and for how much, but the calculation for "how much" is always going to be trivial. The big issue is finding out who gets damaged. Now in a theoretical situation where you could hit more than 60 people your performance should be worse without a cap because you aren't stopping the server from trying to find more people in the effect's area. The performance should be about equal if you are hitting less than or equal to 60 people because in both cases the server is still looking for more people to hit up to the cap and needs to finish checking the whole area of effect. The smaller the area of effect, the less taxing the calculation is going to be (keep that in mind when you look at stuff like the caltrops size nerf).

    Of course all of this is moot because you aren't ever hitting more than 60 people with a single attack. Literally ever. That doesn't happen. Like I don't play on EU or on consoles so maybe other people are getting into some really freaky situations, but on PC NA there has never been a concentration of more than 60 people in an area small enough to get hit by a single attack. We have giant battles where 80+ people show up to the same keep, sure, but they are not stacking on the same pinhead looking to get bombed. AoE caps are a complete non-issue for lag as near as I can tell. Even when it comes to behavioral changes, removing them won't make 80+ people stop showing up to the same keep because they're still not all stacking together enough to get hit by the same attack. I could see 20, I could even see 40 if two factions are fighting on a back flag and some nightblade tries to bomb them all or whatever, but I am incredibly confident that we are not getting even close to 60 99+% of the time.

    I agree, I believe that number was chosen with the intent that it would never be surpassed. It makes sense to throw an overly large number out there as an insurance policy that ensures it will not be exceeded. From quickly looking at class skills AOE attacks seem to have a radius of 4 to 10 meters while heals and shields have a radius of 8 to 28 meters. I would assume that weapon skills would align closely with that, but am assuming.

    The reality is that even in massive 50 v 50 fights or greater where people aren't balled up, but are still in close proximity to one another, most times you aren't going to hit more than 10 people with an AOE, maybe if they are standing on a flag or are in a pinch point you will exceed this number. If the calculations really work like you are saying though then they are doing 60 checks even if they only hit one person. This seems very superfluous. Maybe they are smart enough to quit calculating when they are no longer tagging anyone new. They would also have to flag people that have already been hit as to not apply it to them more than once if they failed to get out of the effect radius before the next tick. This brings us to another interesting question, how do ground target DOT AOEs caclulate compared to direct damage AOEs, Liquid Lightning, Endless Hail, and Wall of Elements for example would have to keep some kind of running count for the duration of the effect.

    I see it working something like this for non ground target abilities. An AOE ability is cast. It flags everyone within the radius of the ability cast, and makes a list of all of those client IDs. Most elegantly it would then work from ground 0 outward now requiring the location of each client ID relative to the point of impact at the moment of impact. It would then start applying effects using the distance of those client IDs, closest to furthest and modifying damage to subsequent IDs as each player threshold is eclipsed winding down to 75% and then to 50% damage. Hope I'm not giving anyone a headache.

    Ground target AOE's which I believe do now stack would just need a counter that accumulated as people move in and out of the ground effect and apply damage/ancillary effects, though it may need the client ID if the same person is not to get counted multiple times if re-entering the effect radius. Now I'm giving me a headache.

    The issue I see, if it is really an issue at all, is when you are involved in a high volume fight and 3 or more AOEs, be they damage or healing, are being cast every second. All of that information is bouncing from 100 or more clients to the server, and back and forth through the server to each other. I understand direct damage would have a huge impact as well. Again, I am not sure how much of an impact this really has on the server and on individual clients. I am really posing the question to inspire thought and understanding of what is going on and the impact that it has on the server and those clients. Thank you for the thoughtful responses.
  • ATRing
    ATRing
    Soul Shriven
    Ranger209 wrote: »

    I agree, I believe that number was chosen with the intent that it would never be surpassed. It makes sense to throw an overly large number out there as an insurance policy that ensures it will not be exceeded. From quickly looking at class skills AOE attacks seem to have a radius of 4 to 10 meters while heals and shields have a radius of 8 to 28 meters. I would assume that weapon skills would align closely with that, but am assuming.

    ...

    If the calculations really work like you are saying though then they are doing 60 checks even if they only hit one person.

    Damage, shields, healing, and secondary effects all likely work differently from each other and operate with different priorities.

    To aid in the player selection likely they have a way to retrieve the distance of each player to a specific location in world. They could break this up into 2 separate lists, one for friendly players and the other for enemy players. (this is a generous assumption as it does not take into count the number of friendly pets or NPCs that could be included)

    Using these lists they could sort the the players based on distance to the AoE source location. This would be n log(n) in complexity where n is either the total count of friendly players or the count of unfriendly players (worst case this would be a full server). Just populating the lists of players with their distances would be extremely taxing and likely they have some way to mitigate this.

    Using these lists you establish the players that can be effected then it is is as simple as iterating over this list until either the player you are checking is greater than the radius of the effect or we have hit the target cap, at which time we can exit

    I would imagine that damage would not care if it hit the same target across multiple ticks and would just find the first 60 targets to apply to. They could add in logic that would prioritize targets based on distance but in order to do that correctly they would need to sort a list of players that are within range of the AoE. This means that you would not have to continue doing these operations if you met the end condition.

    (Some more optimizations could be done to help such as taking the Manhattan distance between the player and the AoE source to try to eliminate players from selection prior to checking the distance, but you still need to loop over your selection of players. Odds are if we have the list of players then likely we already have a sorted list)
    vPlayerAoeDist = vPlayerPos - vAoeSource
    
    if abs(vPlayerAoeDist.x) > fAoeRadius || abs(vPlayerAoeDist.y) > fAoeRadius 
    {
    	bAddToList = false
    }
    else
    {
            // this would get us the unsquared distance but as long as we accept this 
            // we should not have to do the square and square root
    	if abs(vPlayerAoeDist.x) + abs(vPlayerAoeDist.y) <= fAoeRadius
    	{
    		bAddToList = true
    	}
    	else
    	{
    		bAddToList = false
    	}
    
    }
    

    As for the differences between damage, healing, secondary effects, and shields likely they all have different conditions where the target you are trying to apply the effect to is a valid target.

    A global list of rules for abilities are likely
    1. Player must not have received the effect from this instance of the event already
    2. Player must be in range of the effect

    For healing, as previously discussed, likely this is optimized on percentages and has its own sorted list of players based on percent health. Meaning we do not need to search over all players in range as it is sorted we can select the first 6.
    1. Player must be one of the 6 lowest (or whatever the ability cap is) health allies

    For secondary effects likely it would apply to the first 6 targets that do not have the effect and but if 6 targets could not be found would likely reapply to the first 6.
    1. event instigator has not already affected 6 players
    2. **possibly** Player is not currently affected by the secondary effect
    3. **possibly** Player is currently affected by the secondary effect but there are no other players that can be modified

    For shields likely it is either applies to the first 6 (or whatever the cap for the ability is).
    1. event instigator has not already affected 6 players (or the ability target cap)
    2. **possibly** Player must be one of the lowest health allies (if shields prioritize low health)
    3. **possibly** Player must not have effect (if shields care about existing shields on potential targets)

    For damage each tick of an AoE is likely treated the same as a single target damage event. Likely the damage type (AoE, Direct, Periodic) would be some secondary trait that can be actioned on separately aside from the number(same for disease, poison, fire, frost, lightning, daedric, oblivion, physical, and magic).

    So since all damage is likely treated the same it would likely follow these rules
    1. event instigator has not already affected 60 players
    2. **possibly** Player must be one of the closest 60 players to the damage source or (if single target the target)


    Based on this I doubt that target selection is really the main issue when it comes to server performance. Like many have said it is likely more to do with the amount of events that are fired continuously. Though it seems to only manifest when so many players are within range leading to the belief that there is some sort of localized calculation that is done in an attempt to eliminate as many players as possible from the pool of players.

    But certainly we will hardly ever hit the absolute worst case in normal play so AoE caps are likely not the source of these issues.

    Edit: renamed variable to reference radius of aoe rather than position of aoe
    Edited by ATRing on November 23, 2017 5:36AM
  • NewBlacksmurf
    NewBlacksmurf
    ✭✭✭✭✭
    ✭✭✭✭✭
    What’s funny to me is this.....

    AOE caps was never the issue but once added it was an issue. The problem is the game design, they took Dark Age of Camelot and rolled that to this game but made all this unnecessary bad and messy gameplay.

    Perhaps just mimic that game where Cyrodil is the endgame and break it up into multiple sections. Trial access (new trials) should be in this zone as some type of militant force as a PvE version of PvP.
    This would allow different sections to be capped and owned for x amount of time within a campaign.

    Doing so would break the amount of folks into much smaller groups and set caps on the number of players per faction, per section.

    Delve and PvE should cause insta death if your faction doesn’t own the section which then causes us to work together vs booting ppl or being elitist.

    This also would mean faction accounts but keep the PvE zone open and characters i pledged to a faction until they pledge.

    That pledge would last until the campaign resets. An account should be locked to only one campaign and when full, we would be forced to choose another.

    If we want to withdraw let us do so for free but lock us out until the next reset before being open to join back. Don’t lock us out of joining another but apply the same rules and limit it to leaving twice within a reset period.
    Edited by NewBlacksmurf on November 23, 2017 4:26AM
    -PC (PTS)/Xbox One: NewBlacksmurf
    ~<{[50]}>~ looks better than *501
  • VaranisArano
    VaranisArano
    ✭✭✭✭✭
    ✭✭✭✭✭
    ZOS already tried locking content by faction ownership with Imperial City. That's why the gates have those access points. It was widely panned by players, and so now all factions have access to the Imperial City no matter who owns the nearest keeps. Very similar to the situation within delves, if you can get to the entrances, you can get to the Imperial City. The towns are closer to the Imperial City Districts where you can do content in them even if your faction doesn't own them, its just harder and you have to be wary of the Flag Guards.
  • NewBlacksmurf
    NewBlacksmurf
    ✭✭✭✭✭
    ✭✭✭✭✭
    ZOS already tried locking content by faction ownership with Imperial City. That's why the gates have those access points. It was widely panned by players, and so now all factions have access to the Imperial City no matter who owns the nearest keeps. Very similar to the situation within delves, if you can get to the entrances, you can get to the Imperial City. The towns are closer to the Imperial City Districts where you can do content in them even if your faction doesn't own them, its just harder and you have to be wary of the Flag Guards.

    No they sought to align some campaigns for access to Imperial City but that zone isn’t considered by any measure a place for the best loot.

    What I’m describing is a completely different but logic based set up that’s both encouraging and rewarding for PvP and PvE players.
    A situation where you can’t gank but can play strategy.

    Those who want to gank could have other campaigns in Cyrodil broken up in a mode that is more to their liking but this means choosing a Cyrodil style of play each reset.

    It also means all your characters would side with a campaign and faction each reset which makes more sense.

    This touches on a lot of feedback and builds on different ideas ppl have made. Lots of good ideas actually.
    -PC (PTS)/Xbox One: NewBlacksmurf
    ~<{[50]}>~ looks better than *501
  • VaranisArano
    VaranisArano
    ✭✭✭✭✭
    ✭✭✭✭✭
    What's Cyrodiil without a little ganking now and then?

    Last I checked, Cyrodiil s an open world PVP zone that supports everything from solo players, small groups, organized raids, pugs, zergs, faction stacks, objective-based play, ganking, bombing, AP farming, Alessia bridge fights, remember the Chalamo, scroll runs, pve questing, and quite a bit more. For all that Cyrodiil gives us the freedom to do, it works surprisingly well.

    Which is to say, if you want more limited forms of PVP, feel free to ask for different modes of combat that you think will see widespread interest. I'm of the opinion that Cyrodiil works just fine with its varieties of play and freedom to choose.
Sign In or Register to comment.