Maintenance for the week of October 6:
• [COMPLETE] ESO Store and Account System for maintenance – October 7, 6:00AM EDT (10:00 UTC) - 4:00PM EDT (20:00 UTC)

Cyrodiil Performance - Group Size and Heals

  • vamp_emily
    vamp_emily
    ✭✭✭✭✭
    ✭✭✭
    I'm not a game developer but don't forget computer processing is very fast. I'm sure the processing that is questioned is processed on the client side and then returns the results to the server.

    Going though 100 players would be super speedy for a computer even is you have multiple guilds/players smart healing at the same time.

    However, there is a problem in PvP but I think it is deeper than just smart healing.

    If you want a friend, get a dog.
    AW Rank: Grand Warlord 1 ( level 49)

  • jcm2606
    jcm2606
    ✭✭✭✭✭
    ✭✭
    YES! I'd be happy to reduce group size, bring back AOE caps and heal only those in my group
    Kadoin wrote: »
    PvP doesn't even really happen in real-time, so exactly what would this change?

    Also, any proof of his claims? They have already cut calculations down and it has not resulted in any measurable improvement, though it has cut down buggy states at least.

    The client itself seems to have issues that contribute largely to the lag players experience, how can anyone know exactly how much load the server is taking when the client itself is a source of lag? (the proof is in the performances improvements that got scaled back: the time the audio bugged and the crashing client :D Both times lag seemed to be improved, suggesting lag is also related to graphical load as well as poor memory management when it comes to keeping objects and models. Also note that lag worsened after the outfit system. Coincidence?)

    TLDR: No. First client improvements and work from there.

    Again, someone who has no idea what they're talking about. Client and server are completely separate. Client lag, ie FPS, is completely separate to server/connection lag, ie latency.

    How do I know? Because that's literally how my game behaves when my internet decides to take a nose dive. If I head into prime time Vivec mid faction stack and waltz right into that faction stack, my internet immediately nopes out, my ping spikes well above 30k+, everything freezes, and yet I can walk right into that AD zerg with 30-40 FPS (as opposed to 15-20 when my connection is fine).

    The client and the server are two independent sides of the game, connected together over the internet, and are constantly communicating with each other, updating each other's sets of data. FPS drops occur when your machine isn't able to run the client smoothly, local latency spikes (spikes only occurring for you) occur when something interrupts that connection between client and server (might be your own connection, or your region's connection), global latency spikes (spikes occurring for the entire server) occur when something slows down on the servers themselves. Three parts of the system (client, connection, server), three different forms of interruption.
  • Derra
    Derra
    ✭✭✭✭✭
    ✭✭✭✭✭
    I wouldn't be happy with these changes (please explain why)
    Reintroducing caps would just make multiple groups run together if they can pull it off.

    I´m with OP on grp size and atleast 360° smart healing being limited to group members.
    <Noricum>
    I live. I die. I live again.

    Derra - DC - Sorc - AvA 50
    Derrah - EP - Sorc - AvA 50

  • jcm2606
    jcm2606
    ✭✭✭✭✭
    ✭✭
    YES! I'd be happy to reduce group size, bring back AOE caps and heal only those in my group
    Jeremy wrote: »
    jcm2606 wrote: »
    Anybody who knows even the tiniest of things about coding knows how big of an impact something like this will have on Cyrodiil performance, especially when multiple faction-wide clumps clash in a single keep. Limiting AoE heals to groups will allow the servers to immediately cut out 80+% of all players in an area very cheaply, before those players touch the more expensive parts of the AoE application code, such as the line of sight check, sorting, etc.

    It wouldn't make much difference because they are still having to calculate what is the biggest factor - and that is the massive zerg flooding the screen. So long as that's the case - you're still going to get serious lag and trimming some of the fat around the edges is not going to make a significant difference. You could remove AoE entirely and you would still get tons of lag.

    You have two solutions here:

    1: Wait for ZoS to upgrade their servers.

    2. Stop with the massive zergs.

    You do realise the server couldn't care about what you're actually seeing on screen, right? The server is only working with data, players are literally expressed as points on a grid to the server. Your client is what's responsible for what you're actually seeing.

    Regardless, yes, it would make a big difference. To post a break down of what actually happens when an AoE heal tick goes off on the servers...
    Just think about what the servers have to do for AoE heals. We'll consider the best case scenario, and assume they've ordered each step for optimal performance.

    Firstly, we need a list of players that may be healed. So the server has to run over all players near the caster/origin, and figure out which players to discard based on their position and their max health (to immediately get rid of any players who don't need healing).

    So, we check the location of each player, and discard each player that is outside of the AoE. Depending on the AoE, this can be pretty quick, so the only slow part is how many players this has to be done for.

    Next, we check whether each player is at max health (ie needs to be healed), and discard each player that is at max health. Again, should be pretty quick, just slows down with many players.

    Then we check whether the caster has line-of-sight to the player (likely with a basic raytrace operation -- yes, raytrace), discard each player that is outside of the caster's line-of-sight. As you might have guessed, raytrace operations aren't particularly fast, so this step is naturally going to be slow. However, this also has to happen for each remaining player, so it can get extremely slow if you have a clump of players near the caster.

    If the heal is a smart heal, ie it prefers the lowest health allies, we now need to sort each player based on their current health, so the list goes from the least health to the most. This is a little slow, at least compared to the first 2 steps, and, again, will slow down even further with many players.

    If the heal isn't a smart heal, I'd imagine the server randomises the list, which is still slower than the first 2 steps, but faster than sorting, since we're placing each player in a random spot, rather than comparing data between players.

    Finally, we grab however many players the heal affects from the start of the list, and we run over each player and heal them, which jumps into whatever code is reponsible for that, so tack that on to how slow this AoE heal is.

    That's just one individual AoE healing instance. Imagine this running on an AoE heal-over-time, where this has to be done every 2 seconds for 10 or so seconds. Then imagine this same AoE heal-over-time being spammed by a pair of PvE healers. What you're imaging doesn't even begin to describe this same AoE heal-over-time being spammed on a clump of players, by at least a dozen PvP healers on a single faction, in Cyrodiil.

    Read through that, then try to imagine the servers sending 100 players through this entire process, eventually being worked down to just 6, or whatever, for just one AoE healing tick.

    Limiting heals to groups can be done very early on (like, before that first AoE check, even), and is pretty cheap (compared to everything else there), and will cut down any number of players to just 24 (or however many you have in your group), immediately. Even assuming you're running a full raid near an area with, say, 60 other players on your faction, this would immediately cut 60% of these players from the AoE application code, before they even hit any of the really slow code.
    Edited by jcm2606 on September 24, 2019 2:11PM
  • jcm2606
    jcm2606
    ✭✭✭✭✭
    ✭✭
    YES! I'd be happy to reduce group size, bring back AOE caps and heal only those in my group
    Now, I'm not saying that doing this alone will immediately fix Cyrodiil's performance, but it will be a big step in the right direction. Zenimax has basically confirmed that performance becomes an issue when players clump together in an area (by always asking players to just spread out, and when players eventually do spread out, the performance does get a bit better), and AoE's scale very poorly with numbers when it comes to performance, just because of what the servers have to do for them.

    I don't doubt the game does some things to help this somewhat (storing players in large scale clusters, so rather than an AoE having to get every player in the map, the AoE only has to get players in the clusters that intersect the area, which significantly reduces the amount of players to run these checks on -- if Zenimax doesn't do this, they really should), but you can only shape the foundation around the problem enough, eventually you have to shape your actual code around the problem, too, and this is one way of doing that.
  • Jeremy
    Jeremy
    ✭✭✭✭✭
    ✭✭✭✭✭
    jcm2606 wrote: »
    Jeremy wrote: »
    jcm2606 wrote: »
    Anybody who knows even the tiniest of things about coding knows how big of an impact something like this will have on Cyrodiil performance, especially when multiple faction-wide clumps clash in a single keep. Limiting AoE heals to groups will allow the servers to immediately cut out 80+% of all players in an area very cheaply, before those players touch the more expensive parts of the AoE application code, such as the line of sight check, sorting, etc.

    It wouldn't make much difference because they are still having to calculate what is the biggest factor - and that is the massive zerg flooding the screen. So long as that's the case - you're still going to get serious lag and trimming some of the fat around the edges is not going to make a significant difference. You could remove AoE entirely and you would still get tons of lag.

    You have two solutions here:

    1: Wait for ZoS to upgrade their servers.

    2. Stop with the massive zergs.

    You do realise the server couldn't care about what you're actually seeing on screen, right? The server is only working with data, players are literally expressed as points on a grid to the server. Your client is what's responsible for what you're actually seeing.

    Regardless, yes, it would make a big difference. To post a break down of what actually happens when an AoE heal tick goes off on the servers...
    Just think about what the servers have to do for AoE heals. We'll consider the best case scenario, and assume they've ordered each step for optimal performance.

    Firstly, we need a list of players that may be healed. So the server has to run over all players near the caster/origin, and figure out which players to discard based on their position and their max health (to immediately get rid of any players who don't need healing).

    So, we check the location of each player, and discard each player that is outside of the AoE. Depending on the AoE, this can be pretty quick, so the only slow part is how many players this has to be done for.

    Next, we check whether each player is at max health (ie needs to be healed), and discard each player that is at max health. Again, should be pretty quick, just slows down with many players.

    Then we check whether the caster has line-of-sight to the player (likely with a basic raytrace operation -- yes, raytrace), discard each player that is outside of the caster's line-of-sight. As you might have guessed, raytrace operations aren't particularly fast, so this step is naturally going to be slow. However, this also has to happen for each remaining player, so it can get extremely slow if you have a clump of players near the caster.

    If the heal is a smart heal, ie it prefers the lowest health allies, we now need to sort each player based on their current health, so the list goes from the least health to the most. This is a little slow, at least compared to the first 2 steps, and, again, will slow down even further with many players.

    If the heal isn't a smart heal, I'd imagine the server randomises the list, which is still slower than the first 2 steps, but faster than sorting, since we're placing each player in a random spot, rather than comparing data between players.

    Finally, we grab however many players the heal affects from the start of the list, and we run over each player and heal them, which jumps into whatever code is reponsible for that, so tack that on to how slow this AoE heal is.

    That's just one individual AoE healing instance. Imagine this running on an AoE heal-over-time, where this has to be done every 2 seconds for 10 or so seconds. Then imagine this same AoE heal-over-time being spammed by a pair of PvE healers. What you're imaging doesn't even begin to describe this same AoE heal-over-time being spammed on a clump of players, by at least a dozen PvP healers on a single faction, in Cyrodiil.

    Read through that, then try to imagine the servers sending 100 players through this entire process, eventually being worked down to just 6, or whatever, for just one AoE healing tick.

    Limiting heals to groups can be done very early on (like, before that first AoE check, even), and is pretty cheap (compared to everything else there), and will cut down any number of players to just 24 (or however many you have in your group), immediately.

    You are over emphasizing what was just a rhetorical flourish. I wasn't trying to suggest it was only when zergs "flooded my screen" that lag would be an issue. My point was it's the zergs themselves that are causing the lag and not just their healing and AoE. You could turn them all into potatoes and they would still cause huge amounts of lag.
  • jcm2606
    jcm2606
    ✭✭✭✭✭
    ✭✭
    YES! I'd be happy to reduce group size, bring back AOE caps and heal only those in my group
    Jeremy wrote: »
    jcm2606 wrote: »
    Jeremy wrote: »
    jcm2606 wrote: »
    Anybody who knows even the tiniest of things about coding knows how big of an impact something like this will have on Cyrodiil performance, especially when multiple faction-wide clumps clash in a single keep. Limiting AoE heals to groups will allow the servers to immediately cut out 80+% of all players in an area very cheaply, before those players touch the more expensive parts of the AoE application code, such as the line of sight check, sorting, etc.

    It wouldn't make much difference because they are still having to calculate what is the biggest factor - and that is the massive zerg flooding the screen. So long as that's the case - you're still going to get serious lag and trimming some of the fat around the edges is not going to make a significant difference. You could remove AoE entirely and you would still get tons of lag.

    You have two solutions here:

    1: Wait for ZoS to upgrade their servers.

    2. Stop with the massive zergs.

    You do realise the server couldn't care about what you're actually seeing on screen, right? The server is only working with data, players are literally expressed as points on a grid to the server. Your client is what's responsible for what you're actually seeing.

    Regardless, yes, it would make a big difference. To post a break down of what actually happens when an AoE heal tick goes off on the servers...
    Just think about what the servers have to do for AoE heals. We'll consider the best case scenario, and assume they've ordered each step for optimal performance.

    Firstly, we need a list of players that may be healed. So the server has to run over all players near the caster/origin, and figure out which players to discard based on their position and their max health (to immediately get rid of any players who don't need healing).

    So, we check the location of each player, and discard each player that is outside of the AoE. Depending on the AoE, this can be pretty quick, so the only slow part is how many players this has to be done for.

    Next, we check whether each player is at max health (ie needs to be healed), and discard each player that is at max health. Again, should be pretty quick, just slows down with many players.

    Then we check whether the caster has line-of-sight to the player (likely with a basic raytrace operation -- yes, raytrace), discard each player that is outside of the caster's line-of-sight. As you might have guessed, raytrace operations aren't particularly fast, so this step is naturally going to be slow. However, this also has to happen for each remaining player, so it can get extremely slow if you have a clump of players near the caster.

    If the heal is a smart heal, ie it prefers the lowest health allies, we now need to sort each player based on their current health, so the list goes from the least health to the most. This is a little slow, at least compared to the first 2 steps, and, again, will slow down even further with many players.

    If the heal isn't a smart heal, I'd imagine the server randomises the list, which is still slower than the first 2 steps, but faster than sorting, since we're placing each player in a random spot, rather than comparing data between players.

    Finally, we grab however many players the heal affects from the start of the list, and we run over each player and heal them, which jumps into whatever code is reponsible for that, so tack that on to how slow this AoE heal is.

    That's just one individual AoE healing instance. Imagine this running on an AoE heal-over-time, where this has to be done every 2 seconds for 10 or so seconds. Then imagine this same AoE heal-over-time being spammed by a pair of PvE healers. What you're imaging doesn't even begin to describe this same AoE heal-over-time being spammed on a clump of players, by at least a dozen PvP healers on a single faction, in Cyrodiil.

    Read through that, then try to imagine the servers sending 100 players through this entire process, eventually being worked down to just 6, or whatever, for just one AoE healing tick.

    Limiting heals to groups can be done very early on (like, before that first AoE check, even), and is pretty cheap (compared to everything else there), and will cut down any number of players to just 24 (or however many you have in your group), immediately.

    You are over emphasizing what was just a rhetorical flourish. I wasn't trying to suggest it was only when zergs "flooded my screen" that lag would be an issue. My point was it's the zergs themselves that are causing the lag and not just their healing and AoE. You could turn them all into potatoes and they would still cause huge amounts of lag.

    Read my other comment. This wouldn't immediately fix the lag, but it would help tremendously, because AoE's really are that slow, especially when ran unchecked on an entire faction stack, multiple times a second, by a dozen plus healers, on a single faction, near a single keep, on a single instance.
  • TriangularChicken
    TriangularChicken
    ✭✭✭✭
    What do you mean by "return of AOE caps"? I assume - since healing abilities have a 6 target cap - that you're talking about capping damage abilities again? Big yikes, without cap every single zergling will get the same amount of damage, removing AOE caps was one of the best moves to counter zergs.

    I do agree that group size needs to be reduced and I will also say that ZOS needs to add incentives to make people spread over the map.

    They should also lower offensive ticks for PvDooring (spread AP between everyone who was invovled in taking the keep, start with for example a 30k tick, 6 ppl invovled get 5k AP each, 30 ppl get 1k each).


    No merci for zergs!
  • vamp_emily
    vamp_emily
    ✭✭✭✭✭
    ✭✭✭
    To be honest I don't think any of us know what we are talking about. If we did, one of us would be relaxing on a beach drinking a margarita while Brian Wheeler gives us a massage.

    Edited by vamp_emily on September 24, 2019 5:48PM

    If you want a friend, get a dog.
    AW Rank: Grand Warlord 1 ( level 49)

  • BoraxFlux
    BoraxFlux
    ✭✭✭✭✭
    I wouldn't be happy with these changes (please explain why)
    There can be different causes in play for game-performance, without much of a clue or the proper knowledge I find it hard to even entertain the idea how to diminish calculations in game from a gamer perspective.

    Still: It's a positive thing to try and think in solutions, refreshing, so props for lpw.
  • lpw
    lpw
    ✭✭✭
    YES! I'd be happy to reduce group size, bring back AOE caps and heal only those in my group
    Katahdin wrote: »
    My guild runs 2 groups on some nights so instead we will run 4 and still be all at the some place sometimes.

    Again, you're kind of missing the point. Turn up with 10 groups of 12 for 120 people. But each person's heals (potentially every second) would only be calculated for 12 people instead of 120... :)

    I'm not saying this will fix the lag at all... I'm saying it could help?

    Just to mention, I run solo most of the time in PVP and don't have a problem with 24 man groups at all. I'd just like to not be as laggy when solo or in groups, which I'm sure everyone else would too :)
    ///// AD Master Race Since 2014 /////

    Sindri al'Atreyu | Wood Elf Templar
    Eivii | Wood Elf Nightblade
    Saurmia | High Elf Magicka Templar


    PC/EU - Beta Tester
  • Jeremy
    Jeremy
    ✭✭✭✭✭
    ✭✭✭✭✭
    jcm2606 wrote: »
    Jeremy wrote: »
    jcm2606 wrote: »
    Jeremy wrote: »
    jcm2606 wrote: »
    Anybody who knows even the tiniest of things about coding knows how big of an impact something like this will have on Cyrodiil performance, especially when multiple faction-wide clumps clash in a single keep. Limiting AoE heals to groups will allow the servers to immediately cut out 80+% of all players in an area very cheaply, before those players touch the more expensive parts of the AoE application code, such as the line of sight check, sorting, etc.

    It wouldn't make much difference because they are still having to calculate what is the biggest factor - and that is the massive zerg flooding the screen. So long as that's the case - you're still going to get serious lag and trimming some of the fat around the edges is not going to make a significant difference. You could remove AoE entirely and you would still get tons of lag.

    You have two solutions here:

    1: Wait for ZoS to upgrade their servers.

    2. Stop with the massive zergs.

    You do realise the server couldn't care about what you're actually seeing on screen, right? The server is only working with data, players are literally expressed as points on a grid to the server. Your client is what's responsible for what you're actually seeing.

    Regardless, yes, it would make a big difference. To post a break down of what actually happens when an AoE heal tick goes off on the servers...
    Just think about what the servers have to do for AoE heals. We'll consider the best case scenario, and assume they've ordered each step for optimal performance.

    Firstly, we need a list of players that may be healed. So the server has to run over all players near the caster/origin, and figure out which players to discard based on their position and their max health (to immediately get rid of any players who don't need healing).

    So, we check the location of each player, and discard each player that is outside of the AoE. Depending on the AoE, this can be pretty quick, so the only slow part is how many players this has to be done for.

    Next, we check whether each player is at max health (ie needs to be healed), and discard each player that is at max health. Again, should be pretty quick, just slows down with many players.

    Then we check whether the caster has line-of-sight to the player (likely with a basic raytrace operation -- yes, raytrace), discard each player that is outside of the caster's line-of-sight. As you might have guessed, raytrace operations aren't particularly fast, so this step is naturally going to be slow. However, this also has to happen for each remaining player, so it can get extremely slow if you have a clump of players near the caster.

    If the heal is a smart heal, ie it prefers the lowest health allies, we now need to sort each player based on their current health, so the list goes from the least health to the most. This is a little slow, at least compared to the first 2 steps, and, again, will slow down even further with many players.

    If the heal isn't a smart heal, I'd imagine the server randomises the list, which is still slower than the first 2 steps, but faster than sorting, since we're placing each player in a random spot, rather than comparing data between players.

    Finally, we grab however many players the heal affects from the start of the list, and we run over each player and heal them, which jumps into whatever code is reponsible for that, so tack that on to how slow this AoE heal is.

    That's just one individual AoE healing instance. Imagine this running on an AoE heal-over-time, where this has to be done every 2 seconds for 10 or so seconds. Then imagine this same AoE heal-over-time being spammed by a pair of PvE healers. What you're imaging doesn't even begin to describe this same AoE heal-over-time being spammed on a clump of players, by at least a dozen PvP healers on a single faction, in Cyrodiil.

    Read through that, then try to imagine the servers sending 100 players through this entire process, eventually being worked down to just 6, or whatever, for just one AoE healing tick.

    Limiting heals to groups can be done very early on (like, before that first AoE check, even), and is pretty cheap (compared to everything else there), and will cut down any number of players to just 24 (or however many you have in your group), immediately.

    You are over emphasizing what was just a rhetorical flourish. I wasn't trying to suggest it was only when zergs "flooded my screen" that lag would be an issue. My point was it's the zergs themselves that are causing the lag and not just their healing and AoE. You could turn them all into potatoes and they would still cause huge amounts of lag.

    Read my other comment. This wouldn't immediately fix the lag, but it would help tremendously, because AoE's really are that slow, especially when ran unchecked on an entire faction stack, multiple times a second, by a dozen plus healers, on a single faction, near a single keep, on a single instance.

    I doubt it would help much because the core cause of the problem - namely the huge amount of players - is still there and that's what's ultimately causing the lag. Trying to fix that by cutting back on some of the combat calculations would be like trying to stop a flood by tea-spooning water.

    Besides, if it was merely additional combat calculations that was causing this then you would notice a significant performance increase on the None CP Campaigns. But you don't. Massive Zergs cause just as much lag on those as they do in the CP Campaigns. So if removing all the additional calculations involved in factoring in the CP system doesn't significantly improve the lag when massive zergs show up - I don't see any reason why cutting back on the AoE or healing calculations involved would either.
    Edited by Jeremy on September 24, 2019 3:04PM
  • jcm2606
    jcm2606
    ✭✭✭✭✭
    ✭✭
    YES! I'd be happy to reduce group size, bring back AOE caps and heal only those in my group
    Jeremy wrote: »
    jcm2606 wrote: »
    Jeremy wrote: »
    jcm2606 wrote: »
    Jeremy wrote: »
    jcm2606 wrote: »
    Anybody who knows even the tiniest of things about coding knows how big of an impact something like this will have on Cyrodiil performance, especially when multiple faction-wide clumps clash in a single keep. Limiting AoE heals to groups will allow the servers to immediately cut out 80+% of all players in an area very cheaply, before those players touch the more expensive parts of the AoE application code, such as the line of sight check, sorting, etc.

    It wouldn't make much difference because they are still having to calculate what is the biggest factor - and that is the massive zerg flooding the screen. So long as that's the case - you're still going to get serious lag and trimming some of the fat around the edges is not going to make a significant difference. You could remove AoE entirely and you would still get tons of lag.

    You have two solutions here:

    1: Wait for ZoS to upgrade their servers.

    2. Stop with the massive zergs.

    You do realise the server couldn't care about what you're actually seeing on screen, right? The server is only working with data, players are literally expressed as points on a grid to the server. Your client is what's responsible for what you're actually seeing.

    Regardless, yes, it would make a big difference. To post a break down of what actually happens when an AoE heal tick goes off on the servers...
    Just think about what the servers have to do for AoE heals. We'll consider the best case scenario, and assume they've ordered each step for optimal performance.

    Firstly, we need a list of players that may be healed. So the server has to run over all players near the caster/origin, and figure out which players to discard based on their position and their max health (to immediately get rid of any players who don't need healing).

    So, we check the location of each player, and discard each player that is outside of the AoE. Depending on the AoE, this can be pretty quick, so the only slow part is how many players this has to be done for.

    Next, we check whether each player is at max health (ie needs to be healed), and discard each player that is at max health. Again, should be pretty quick, just slows down with many players.

    Then we check whether the caster has line-of-sight to the player (likely with a basic raytrace operation -- yes, raytrace), discard each player that is outside of the caster's line-of-sight. As you might have guessed, raytrace operations aren't particularly fast, so this step is naturally going to be slow. However, this also has to happen for each remaining player, so it can get extremely slow if you have a clump of players near the caster.

    If the heal is a smart heal, ie it prefers the lowest health allies, we now need to sort each player based on their current health, so the list goes from the least health to the most. This is a little slow, at least compared to the first 2 steps, and, again, will slow down even further with many players.

    If the heal isn't a smart heal, I'd imagine the server randomises the list, which is still slower than the first 2 steps, but faster than sorting, since we're placing each player in a random spot, rather than comparing data between players.

    Finally, we grab however many players the heal affects from the start of the list, and we run over each player and heal them, which jumps into whatever code is reponsible for that, so tack that on to how slow this AoE heal is.

    That's just one individual AoE healing instance. Imagine this running on an AoE heal-over-time, where this has to be done every 2 seconds for 10 or so seconds. Then imagine this same AoE heal-over-time being spammed by a pair of PvE healers. What you're imaging doesn't even begin to describe this same AoE heal-over-time being spammed on a clump of players, by at least a dozen PvP healers on a single faction, in Cyrodiil.

    Read through that, then try to imagine the servers sending 100 players through this entire process, eventually being worked down to just 6, or whatever, for just one AoE healing tick.

    Limiting heals to groups can be done very early on (like, before that first AoE check, even), and is pretty cheap (compared to everything else there), and will cut down any number of players to just 24 (or however many you have in your group), immediately.

    You are over emphasizing what was just a rhetorical flourish. I wasn't trying to suggest it was only when zergs "flooded my screen" that lag would be an issue. My point was it's the zergs themselves that are causing the lag and not just their healing and AoE. You could turn them all into potatoes and they would still cause huge amounts of lag.

    Read my other comment. This wouldn't immediately fix the lag, but it would help tremendously, because AoE's really are that slow, especially when ran unchecked on an entire faction stack, multiple times a second, by a dozen plus healers, on a single faction, near a single keep, on a single instance.

    I doubt it would help much because the core cause of the problem - namely the huge amount of players - is still there and that's what's ultimately causing the lag. Trying to fix that by cutting back on some of the combat calculations would be like trying to stop a flood by tea-spooning water.

    Besides, if it was merely additional combat calculations that was causing this then you would notice a significant performance increase on the None CP Campaigns. But you don't. Massive Zergs cause just as much lag on those as they do in the CP Campaigns. So if removing all the additional calculations involved in factoring in the CP system doesn't significantly improve the lag when massive zergs show up - I don't see any reason why cutting back on the AoE or healing calculations involved would either.
    Trying to fix that by cutting back on some of the combat calculations would be like trying to stop a flood by tea-spooning water.

    Do you realise how stupid this sounds? "Cutting down combat calculations isn't going to help because there's still an ocean's worth of players!" Meanwhile those same combat calculations are still being done to the scale of that ocean's worth of players.

    Players don't just lag the server by existing, its their actions that lag the server, one of which is AoE stacking in the middle of a blob.
    Besides, if it was merely additional combat calculations that was causing this then you would notice a significant performance increase on the None CP Campaigns. But you don't. Massive Zergs cause just as much lag on those as they do in the CP Campaigns.

    And this shows that you don't know what you're talking about. We're not talking about "additional combat calculations". We're talking about core combat calculations, that are always present whenever anybody and everybody uses an AoE, which is all the time in a zerg.
    So if removing all the additional calculations involved in factoring in the CP system doesn't significantly improve the lag when massive zergs show up - I don't see any reason why cutting back on the AoE or healing calculations involved would either.

    Do you even know what thread you're in? Nobody is talking about CP. We're talking about the effect of allowing AoE calculations to go unchecked across an entire faction stack, several times a second, near just a single keep. We're talking about literally only allowing AoE heals to affect players in your own group, which allows the servers to immediately discard legit like 60+% of the players they're iterating over the moment the AoE code starts.
  • jcm2606
    jcm2606
    ✭✭✭✭✭
    ✭✭
    YES! I'd be happy to reduce group size, bring back AOE caps and heal only those in my group
    One last time before I head to bed, nice and clear. AoE's have to loop over every single player in the immediate area, check if they're inside the AoE, check if they're at max health, check if the caster/origin has line of sight (which uses a slow raycast operation), then sort the remaining players from least to most current health. They have to do this for each healing tick, for each skill, for each caster, for each battle, and for each instance. We're talking about this happening dozens of times a second in a single fight, alone.

    Only allowing AoE heals to heal your group would allow the AoE to immediately drop legit 60+% of the people it'd have to loop over immediately at the start (assuming a healer healing a full 24 man raid in the middle of a faction stack of 60 players on one faction). Actually think about what's happening for a second, and realise how many players no longer need to be looped over dozens of times a second.

    This alone isn't causing lag, but it is a big contributor, and playing the game and paying attention shows that. The servers start to die when players clump up in one huge, juicy group, which is when the AoE's start scaling up, having to loop over practically the entire faction. This is when the AoE performance impact is at its worst, and addressing it will probably help performance a bit, at the least.

    Disagree on whether it's good gameplay-wise, that's fine, but if you disagree on the impact it'll have, I seriously doubt how much you know about coding and how games function.
    Edited by jcm2606 on September 24, 2019 3:33PM
  • Kagukan
    Kagukan
    ✭✭✭✭✭
    I wouldn't be happy with these changes (please explain why)
    I would be ok with reducing group size. The other suggestions not so much.
    From my experience lag seems to be much worse with organized groups than it does with the same number of random players in small groups or solo.
  • Kadoin
    Kadoin
    ✭✭✭✭✭
    ✭✭
    jcm2606 wrote: »
    Kadoin wrote: »
    PvP doesn't even really happen in real-time, so exactly what would this change?

    Also, any proof of his claims? They have already cut calculations down and it has not resulted in any measurable improvement, though it has cut down buggy states at least.

    The client itself seems to have issues that contribute largely to the lag players experience, how can anyone know exactly how much load the server is taking when the client itself is a source of lag? (the proof is in the performances improvements that got scaled back: the time the audio bugged and the crashing client :D Both times lag seemed to be improved, suggesting lag is also related to graphical load as well as poor memory management when it comes to keeping objects and models. Also note that lag worsened after the outfit system. Coincidence?)

    TLDR: No. First client improvements and work from there.

    Again, someone who has no idea what they're talking about. Client and server are completely separate. Client lag, ie FPS, is completely separate to server/connection lag, ie latency.

    How do I know? Because that's literally how my game behaves when my internet decides to take a nose dive. If I head into prime time Vivec mid faction stack and waltz right into that faction stack, my internet immediately nopes out, my ping spikes well above 30k+, everything freezes, and yet I can walk right into that AD zerg with 30-40 FPS (as opposed to 15-20 when my connection is fine).

    The client and the server are two independent sides of the game, connected together over the internet, and are constantly communicating with each other, updating each other's sets of data. FPS drops occur when your machine isn't able to run the client smoothly, local latency spikes (spikes only occurring for you) occur when something interrupts that connection between client and server (might be your own connection, or your region's connection), global latency spikes (spikes occurring for the entire server) occur when something slows down on the servers themselves. Three parts of the system (client, connection, server), three different forms of interruption.

    The game seems to be programmed in a way the thread that handles network communication and input always after processing graphical data. That is what I mean by client side improvements. If that's how ZOS handles it, then that means that ZOS waits for the draw calls, and then processes additional information from the network. It also seems to be reduceable to a two-thread program, despite how many threads run.

    No one can really measure the effect of that on network performance, and depending on how ZOS decides a player state (I suspect it polls all players in the area to account for player lag, which is why what you see doesn't matter in reality and why the game can go on whether or not you DC or stay logged, and also why what the majority experience matter more than what should have happened in a 1 v zerg scenario; also explains how players can hop, skip, and jump for a while despite being dead + players being dead before they encounter a single strike), it would also contribute to server lag if enough players in the area enter that kind of state.

    The other problem with that approach, is that while it does cut down on a player skipping around in the client (though this still happens anyway), it increases the likelyhood that data would be lost once the network buffer is full and require retransmission of old data the server does not have. I suspect in this case the server simply disconnects you because of either security, or a purposeful function in the client to prevent cheating or state manipulation. But what happens when a massive amount of players request old data? We start to see problems with player states like the "dead, yet not dead" state players enter, and I'm pretty sure this also contributes heavily to lag.

    Either way, if that is the case, its at the root of the problem and ZOS should start there IMO. No server improvement would matter if the system is setup in a terrible way in the first place.

  • Aznarb
    Aznarb
    ✭✭✭✭✭
    I wouldn't be happy with these changes (please explain why)
    Or you can just stop playing solo in a wild pvp aera and bring a healer too ?
    Healer are already close to be a joke in pvp.
    If you can't deal with it, healer is not the problem, your level is.

    Heal and group size have nothing to do with perf, crap server are.
    [ PC EU ]

    [ Khuram-dar ]
    [ Khajiit ]
    [ Templar - Healer ]
    [Crazy Gatherer & Compulsive Thief]

  • idk
    idk
    ✭✭✭✭✭
    ✭✭✭✭✭
    lpw wrote: »
    Katahdin wrote: »
    My guild runs 2 groups on some nights so instead we will run 4 and still be all at the some place sometimes.

    Again, you're kind of missing the point. Turn up with 10 groups of 12 for 120 people. But each person's heals (potentially every second) would only be calculated for 12 people instead of 120... :)

    I'm not saying this will fix the lag at all... I'm saying it could help?

    Just to mention, I run solo most of the time in PVP and don't have a problem with 24 man groups at all. I'd just like to not be as laggy when solo or in groups, which I'm sure everyone else would too :)

    Your numbers stretch what is possible into fantasy. You are suggesting healers from one group of 12 have heals running on 120 at the same time. That is a little absurd unless the entire group was healers. Lets work with what is likely. Things that actually happen instead of twisting things like this.
  • lpw
    lpw
    ✭✭✭
    YES! I'd be happy to reduce group size, bring back AOE caps and heal only those in my group
    idk wrote: »
    You are suggesting healers from one group of 12 have heals running on 120 at the same time.

    I'm not suggesting that they are healing 120 people at all.. I'm saying that to decide who to heal and how much to heal for, the game has to poll 120 people in that range, instead of 12 (if group was twelve). This happens for every tick of every heal.
    ///// AD Master Race Since 2014 /////

    Sindri al'Atreyu | Wood Elf Templar
    Eivii | Wood Elf Nightblade
    Saurmia | High Elf Magicka Templar


    PC/EU - Beta Tester
  • Kadoin
    Kadoin
    ✭✭✭✭✭
    ✭✭
    lpw wrote: »
    idk wrote: »
    You are suggesting healers from one group of 12 have heals running on 120 at the same time.

    I'm not suggesting that they are healing 120 people at all.. I'm saying that to decide who to heal and how much to heal for, the game has to poll 120 people in that range, instead of 12 (if group was twelve). This happens for every tick of every heal.

    And how do you know that doesn't happen anyway to prevent cheating? I suspect it does and on a larger scale than just healing, but even to the point it is how the server determines whether you live or die in the game which is why so many strange things happen. If that's the case, changing how healing works or restricting group size won't do anything for performance.
  • dennissomb16_ESO
    dennissomb16_ESO
    ✭✭✭✭✭
    Heals/buffs etc. need to be group/self only (we know they can do this as they did it quite a while ago with rapids). Exception are ground based abilities and they at least only target people in a small area. Group size does not need to be reduced.
  • Jeremy
    Jeremy
    ✭✭✭✭✭
    ✭✭✭✭✭
    jcm2606 wrote: »
    Jeremy wrote: »
    jcm2606 wrote: »
    Jeremy wrote: »
    jcm2606 wrote: »
    Jeremy wrote: »
    jcm2606 wrote: »
    Anybody who knows even the tiniest of things about coding knows how big of an impact something like this will have on Cyrodiil performance, especially when multiple faction-wide clumps clash in a single keep. Limiting AoE heals to groups will allow the servers to immediately cut out 80+% of all players in an area very cheaply, before those players touch the more expensive parts of the AoE application code, such as the line of sight check, sorting, etc.

    It wouldn't make much difference because they are still having to calculate what is the biggest factor - and that is the massive zerg flooding the screen. So long as that's the case - you're still going to get serious lag and trimming some of the fat around the edges is not going to make a significant difference. You could remove AoE entirely and you would still get tons of lag.

    You have two solutions here:

    1: Wait for ZoS to upgrade their servers.

    2. Stop with the massive zergs.

    You do realise the server couldn't care about what you're actually seeing on screen, right? The server is only working with data, players are literally expressed as points on a grid to the server. Your client is what's responsible for what you're actually seeing.

    Regardless, yes, it would make a big difference. To post a break down of what actually happens when an AoE heal tick goes off on the servers...
    Just think about what the servers have to do for AoE heals. We'll consider the best case scenario, and assume they've ordered each step for optimal performance.

    Firstly, we need a list of players that may be healed. So the server has to run over all players near the caster/origin, and figure out which players to discard based on their position and their max health (to immediately get rid of any players who don't need healing).

    So, we check the location of each player, and discard each player that is outside of the AoE. Depending on the AoE, this can be pretty quick, so the only slow part is how many players this has to be done for.

    Next, we check whether each player is at max health (ie needs to be healed), and discard each player that is at max health. Again, should be pretty quick, just slows down with many players.

    Then we check whether the caster has line-of-sight to the player (likely with a basic raytrace operation -- yes, raytrace), discard each player that is outside of the caster's line-of-sight. As you might have guessed, raytrace operations aren't particularly fast, so this step is naturally going to be slow. However, this also has to happen for each remaining player, so it can get extremely slow if you have a clump of players near the caster.

    If the heal is a smart heal, ie it prefers the lowest health allies, we now need to sort each player based on their current health, so the list goes from the least health to the most. This is a little slow, at least compared to the first 2 steps, and, again, will slow down even further with many players.

    If the heal isn't a smart heal, I'd imagine the server randomises the list, which is still slower than the first 2 steps, but faster than sorting, since we're placing each player in a random spot, rather than comparing data between players.

    Finally, we grab however many players the heal affects from the start of the list, and we run over each player and heal them, which jumps into whatever code is reponsible for that, so tack that on to how slow this AoE heal is.

    That's just one individual AoE healing instance. Imagine this running on an AoE heal-over-time, where this has to be done every 2 seconds for 10 or so seconds. Then imagine this same AoE heal-over-time being spammed by a pair of PvE healers. What you're imaging doesn't even begin to describe this same AoE heal-over-time being spammed on a clump of players, by at least a dozen PvP healers on a single faction, in Cyrodiil.

    Read through that, then try to imagine the servers sending 100 players through this entire process, eventually being worked down to just 6, or whatever, for just one AoE healing tick.

    Limiting heals to groups can be done very early on (like, before that first AoE check, even), and is pretty cheap (compared to everything else there), and will cut down any number of players to just 24 (or however many you have in your group), immediately.

    You are over emphasizing what was just a rhetorical flourish. I wasn't trying to suggest it was only when zergs "flooded my screen" that lag would be an issue. My point was it's the zergs themselves that are causing the lag and not just their healing and AoE. You could turn them all into potatoes and they would still cause huge amounts of lag.

    Read my other comment. This wouldn't immediately fix the lag, but it would help tremendously, because AoE's really are that slow, especially when ran unchecked on an entire faction stack, multiple times a second, by a dozen plus healers, on a single faction, near a single keep, on a single instance.

    I doubt it would help much because the core cause of the problem - namely the huge amount of players - is still there and that's what's ultimately causing the lag. Trying to fix that by cutting back on some of the combat calculations would be like trying to stop a flood by tea-spooning water.

    Besides, if it was merely additional combat calculations that was causing this then you would notice a significant performance increase on the None CP Campaigns. But you don't. Massive Zergs cause just as much lag on those as they do in the CP Campaigns. So if removing all the additional calculations involved in factoring in the CP system doesn't significantly improve the lag when massive zergs show up - I don't see any reason why cutting back on the AoE or healing calculations involved would either.
    Trying to fix that by cutting back on some of the combat calculations would be like trying to stop a flood by tea-spooning water.

    Do you realise how stupid this sounds? "Cutting down combat calculations isn't going to help because there's still an ocean's worth of players!" Meanwhile those same combat calculations are still being done to the scale of that ocean's worth of players.

    Players don't just lag the server by existing, its their actions that lag the server, one of which is AoE stacking in the middle of a blob.
    Besides, if it was merely additional combat calculations that was causing this then you would notice a significant performance increase on the None CP Campaigns. But you don't. Massive Zergs cause just as much lag on those as they do in the CP Campaigns.

    And this shows that you don't know what you're talking about. We're not talking about "additional combat calculations". We're talking about core combat calculations, that are always present whenever anybody and everybody uses an AoE, which is all the time in a zerg.
    So if removing all the additional calculations involved in factoring in the CP system doesn't significantly improve the lag when massive zergs show up - I don't see any reason why cutting back on the AoE or healing calculations involved would either.

    Do you even know what thread you're in? Nobody is talking about CP. We're talking about the effect of allowing AoE calculations to go unchecked across an entire faction stack, several times a second, near just a single keep. We're talking about literally only allowing AoE heals to affect players in your own group, which allows the servers to immediately discard legit like 60+% of the players they're iterating over the moment the AoE code starts.

    You can say it sounds stupid if you like - but it effectively challenges your argument.

    If the increased calculations from AoE and heals during large zergs were a primary source of lag - then you would see significant improvement in lag when you encounter zergs in a none CP campaign as compared to a CP campaign due to all the additional calculations that are required in the latter. Yet there isn't.

    So it's not "calculations" or "core calculations" or what ever kind of calculations you want to call them that is causing the lag. It's the number of players - plain and simple. This game can't handle it - and there is no amount of conserving calculations that is going to solve it.
    Edited by Jeremy on September 24, 2019 7:47PM
  • usmguy1234
    usmguy1234
    ✭✭✭✭✭
    YES! I'd be happy to reduce group size, bring back AOE caps and heal only those in my group
    I'd be even happier with reduced group healing based on size. Either that or make all healing self healing in pvp. I know pve plays into this as well but it could be a rule written into battle spirit.
    Zaghigoth- Orc Stamplar
    Soul Razor- Altmer Magsorc
    Les Drago- Redguard Stamdk
    Eirius- Altmer Magdk
    Stormifeth- Altmer Magplar

    Disclaimer: My comments are a little sarcasm mixed with truth. If you can't handle that don't respond to me.

  • peacenote
    peacenote
    ✭✭✭✭✭
    ✭✭✭
    I wouldn't be happy with these changes (please explain why)
    "heals only being able to target those in your group"

    This is a very bad idea.

    First of all, it would completely kill dynamic grouping. A lot of people here seem to be assuming that folks are either a) solo or b) in a large group. I tend to c) run in a group with one or two friends but go where the action is based on zone chat. i can't possibly be the only person in all of PvP who tends to play like that. Basically, I don't like to take up a spot in a large group if I don't plan to stay synchronized with it for a long period of time. And what about IC? I'll be alone or with a friend and temporarily team up with someone for a fight or a boss but we don't group up. Just a few ships passing in the night. Heals need to work in those situations.

    Second of all, this would be so confusing for people new to ESO, people who are casual to ESO, or basically anyone who likes their game world to have some semblance of order or consistency. Think of world bosses, group delves, etc. in PvE. I should not have to be grouped with someone to be able to toss them a friendly heal. Having this behave differently in PvE and PvP would be ridiculous. Changing this in PvE overland because of PvP would also be ridiculous.

    I have less to say about the other two suggestions. It seems like Cyrodiil wouldn't feel as "epic" with a smaller group size but if it were the only way to fix performance I think we'd all deal with it. For AOE caps, I instinctively dislike this idea but can't really explain why. Not enough of a theorycrafter and not going to bother here.

    But the healing/grouping thing.... no, just no.
    My #1 wish for ESO Today: Decouple achievements from character progress and tracking.
    • Advocate for this HERE.
    • Want the history of this issue? It's HERE.
  • idk
    idk
    ✭✭✭✭✭
    ✭✭✭✭✭
    lpw wrote: »
    idk wrote: »
    You are suggesting healers from one group of 12 have heals running on 120 at the same time.

    I'm not suggesting that they are healing 120 people at all.. I'm saying that to decide who to heal and how much to heal for, the game has to poll 120 people in that range, instead of 12 (if group was twelve). This happens for every tick of every heal.

    For the most part, yes you are. Further, you are also suggesting that if I see someone on a siege or otherwise in combat against the enemy faction I cannot heal them because we are in different groups. Without a doubt you are saying that. That seems pretty bad by design. It is just a bad idea at it's core.

    I am thinking Fengrush did not suggest such a thing though I tend to play the game vs watching others play it.
  • Sandman929
    Sandman929
    ✭✭✭✭✭
    ✭✭✭✭✭
    YES! I'd be happy to reduce group size, bring back AOE caps and heal only those in my group
    It would do more to help performance than hiding animations from allies. No, it won't stop faction stacking, that's a different fix, but it will cut down on calculations in those faction stacks.
    I play in a group, primarily, and 12 sounds perfect, keeping our heals/buffs within the group, even better.
  • Mr_Walker
    Mr_Walker
    ✭✭✭✭✭
    ✭✭✭✭
    lpw wrote: »
    I'm guessing this has been mentioned a few times but Fengrush was talking about performance on his stream the other night and I would totally agree with him that the following should be put in place in Cyrodiil.

    With factions and whole groups stacking together on a keep every smart heal has to go through maybe 100 people to find the guy who has the lowest health. Think about hundreds of people then spamming heals every second. The same would go for bringing back harder AOE caps.

    The suggestions of group size being dropped by around 50% in PVP and heals only being able to target those in your group and the return of AOE caps should really be looked into.

    Surely, doing these changes would lower the required calculations by half or more? Thus improving performance?

    I dont play much pvp in Cyrodiil, but when I do, I am often a healer for my guilds... Id be concerned about not being able to heal folk who are not in my group. Thats kinda not in the spirit of things. Its all hands on deck when defending/attacking and very often its not just folk in my group doing so.

    Plus, it's of direct benefit to you if randoms show up when you're trying to either take/defend a keep.

    Bad suggestion by opie.
  • xaraan
    xaraan
    ✭✭✭✭✭
    ✭✭✭✭✭
    I wouldn't be happy with these changes (please explain why)
    I've said for a long time that they should cap groups at 12 in cryo. But, I do not want AoE caps to return, that just gives an artificial advantage to large groups.

    They do need to fix performance though. I don't see how they aren't embarrassed by the game pvp wise.
    -- @xaraan --
    nightblade: Xaraan templar: Xaraan-dar dragon-knight: Xaraanosaurus necromancer: Xaraan-qa warden: Xaraanodon sorcerer: Xaraan-ra
    AD • NA • PC
  • idk
    idk
    ✭✭✭✭✭
    ✭✭✭✭✭
    Mr_Walker wrote: »
    lpw wrote: »
    I'm guessing this has been mentioned a few times but Fengrush was talking about performance on his stream the other night and I would totally agree with him that the following should be put in place in Cyrodiil.

    With factions and whole groups stacking together on a keep every smart heal has to go through maybe 100 people to find the guy who has the lowest health. Think about hundreds of people then spamming heals every second. The same would go for bringing back harder AOE caps.

    The suggestions of group size being dropped by around 50% in PVP and heals only being able to target those in your group and the return of AOE caps should really be looked into.

    Surely, doing these changes would lower the required calculations by half or more? Thus improving performance?

    I dont play much pvp in Cyrodiil, but when I do, I am often a healer for my guilds... Id be concerned about not being able to heal folk who are not in my group. Thats kinda not in the spirit of things. Its all hands on deck when defending/attacking and very often its not just folk in my group doing so.

    Plus, it's of direct benefit to you if randoms show up when you're trying to either take/defend a keep.

    Bad suggestion by opie.

    Exactly. OP's idea shows a disregard for alliance and makes it an every man for themselves or every group for themselves. I am not suggesting OP is not faithful to their faction. They just do not want to heal them.

    Of course, OP has demonstrated the idea is not well thought-out as they have said in a later post that a players not in a group can still heal anyone which, beyond not making sense, totally defeats the idea and makes coding such a change much more complicated and potentially just as much server load. The server would have to check to determine who the healer can heal first and foremost.
  • gameswithaspoon
    gameswithaspoon
    ✭✭✭
    I wouldn't be happy with these changes (please explain why)
    When Fengrush gets on his own healer and runs an open world DC pug group in the morning you never hear him make suggestions about limiting group heals or size. When he is playing DPS and none of his own healer friends are on, and he’s facing enemy raids with healers, then you hear the complaints. And you don’t hear about how every Cyrodiil campaign has a third of the population from a year ago.... and yet no drastic improvement in performance. We already have the equivalent of what Fengrush suggests since there’s nowhere near the group sizes and healing going on as a year ago. Hence his complaints aren’t useful.
    Spoon-no-Soup Former Emperor Argonian Templar AD BWB
    Spoon-ware-Soup Former Emperor Argonian Stamplar AD Bahlokdaan
    Guild Leader Imperium of the Eagle Ravenwatch NA-PC
    Takes Drive-Thru Orders for This is a Wendy's.
Sign In or Register to comment.