ZOS_BrianWheeler wrote: »Abilities work on several stages when fired off whether hitting several players in an area, or checking an area to hit just 1 or 2 players. For explaining how this functions in real world terms, let's use Honor the Dead as our example because its a single target ability that has an Area (Radius) of 28 meters.
1 - Upon casting Honor the Dead, the server checks the radius around the Templar (area) as defined by the ability...in this case 28m Radius (an Area of 2463 meters) and gets a list of ALL players in that area (friend or foe).
2 - The server then checks any requirements Honor the Dead has, and begins sorting that list to find the legitimate target to apply the ability to. In this case, the ability needs to find the closest friendly target in that 2463m Area, that is not full health, and apply a heal to that target. This is accomplished by having a unique requirement made specifically for Honor the Dead. The list generated by the server on the Ability cast can be 2 people or 100 people ...it just depends on how many players are in that Area as noted by the ability before it sorts out who to apply the ability effects to.
3 - The server then fires the heal after picking the legitimate target from step number 2 after sorting the list of players according to the ability requirement to apply that heal.
Step number 2 is what we're in the process of changing to be less intensive on the server. Currently each requirement for abilities like Honor the Dead have unique hand crafted requirement lists. The same goes for many other abilities in the game. This includes checking things like lowest health, highest health, distance from target (nearest or furthest), etc. What we are changing is making these requirement not be individually unique, but remaking them as universal server rules which are far less intensive on the server.
As you can imagine, this is no small task to double check abilities in both PVE, PVP both generated from monsters and players. We are working to get all scenarios tested and confirmed that functionality of abilities are not effected and working as fast as we can to get this out to you all and appreciate your patience.
Is AOE cap removal also should be on to do list? By not calculating who gets full damage, who 50% and who 25% wouldn't take away a lot of stress from server?
ZOS_BrianWheeler wrote: »Abilities work on several stages when fired off whether hitting several players in an area, or checking an area to hit just 1 or 2 players. For explaining how this functions in real world terms, let's use Honor the Dead as our example because its a single target ability that has an Area (Radius) of 28 meters.
1 - Upon casting Honor the Dead, the server checks the radius around the Templar (area) as defined by the ability...in this case 28m Radius (an Area of 2463 meters) and gets a list of ALL players in that area (friend or foe).
2 - The server then checks any requirements Honor the Dead has, and begins sorting that list to find the legitimate target to apply the ability to. In this case, the ability needs to find the closest friendly target in that 2463m Area, that is not full health, and apply a heal to that target. This is accomplished by having a unique requirement made specifically for Honor the Dead. The list generated by the server on the Ability cast can be 2 people or 100 people ...it just depends on how many players are in that Area as noted by the ability before it sorts out who to apply the ability effects to.
3 - The server then fires the heal after picking the legitimate target from step number 2 after sorting the list of players according to the ability requirement to apply that heal.
Step number 2 is what we're in the process of changing to be less intensive on the server. Currently each requirement for abilities like Honor the Dead have unique hand crafted requirement lists. The same goes for many other abilities in the game. This includes checking things like lowest health, highest health, distance from target (nearest or furthest), etc. What we are changing is making these requirement not be individually unique, but remaking them as universal server rules which are far less intensive on the server.
As you can imagine, this is no small task to double check abilities in both PVE, PVP both generated from monsters and players. We are working to get all scenarios tested and confirmed that functionality of abilities are not effected and working as fast as we can to get this out to you all and appreciate your patience.
Performance drops even when players are standing still and not casting anything. Last patch we could ride to a keep and gauge number of defenders based on ping spikes, even if they were in stealth and not casting anything. Further evidence demonstrating this was your cake event. Sure there were a handful of abilities, but barely any compared to pvp. The crippling performance loss was due to total bodies.
ZOS_BrianWheeler wrote: »Abilities work on several stages when fired off whether hitting several players in an area, or checking an area to hit just 1 or 2 players. For explaining how this functions in real world terms, let's use Honor the Dead as our example because its a single target ability that has an Area (Radius) of 28 meters.
1 - Upon casting Honor the Dead, the server checks the radius around the Templar (area) as defined by the ability...in this case 28m Radius (an Area of 2463 meters) and gets a list of ALL players in that area (friend or foe).
2 - The server then checks any requirements Honor the Dead has, and begins sorting that list to find the legitimate target to apply the ability to. In this case, the ability needs to find the closest friendly target in that 2463m Area, that is not full health, and apply a heal to that target. This is accomplished by having a unique requirement made specifically for Honor the Dead. The list generated by the server on the Ability cast can be 2 people or 100 people ...it just depends on how many players are in that Area as noted by the ability before it sorts out who to apply the ability effects to.
3 - The server then fires the heal after picking the legitimate target from step number 2 after sorting the list of players according to the ability requirement to apply that heal.
Step number 2 is what we're in the process of changing to be less intensive on the server. Currently each requirement for abilities like Honor the Dead have unique hand crafted requirement lists. The same goes for many other abilities in the game. This includes checking things like lowest health, highest health, distance from target (nearest or furthest), etc. What we are changing is making these requirement not be individually unique, but remaking them as universal server rules which are far less intensive on the server.
As you can imagine, this is no small task to double check abilities in both PVE, PVP both generated from monsters and players. We are working to get all scenarios tested and confirmed that functionality of abilities are not effected and working as fast as we can to get this out to you all and appreciate your patience.
ZOS_BrianWheeler wrote: »Abilities work on several stages when fired off whether hitting several players in an area, or checking an area to hit just 1 or 2 players. For explaining how this functions in real world terms, let's use Honor the Dead as our example because its a single target ability that has an Area (Radius) of 28 meters.
1 - Upon casting Honor the Dead, the server checks the radius around the Templar (area) as defined by the ability...in this case 28m Radius (an Area of 2463 meters) and gets a list of ALL players in that area (friend or foe).
2 - The server then checks any requirements Honor the Dead has, and begins sorting that list to find the legitimate target to apply the ability to. In this case, the ability needs to find the closest friendly target in that 2463m Area, that is not full health, and apply a heal to that target. This is accomplished by having a unique requirement made specifically for Honor the Dead. The list generated by the server on the Ability cast can be 2 people or 100 people ...it just depends on how many players are in that Area as noted by the ability before it sorts out who to apply the ability effects to.
3 - The server then fires the heal after picking the legitimate target from step number 2 after sorting the list of players according to the ability requirement to apply that heal.
Step number 2 is what we're in the process of changing to be less intensive on the server. Currently each requirement for abilities like Honor the Dead have unique hand crafted requirement lists. The same goes for many other abilities in the game. This includes checking things like lowest health, highest health, distance from target (nearest or furthest), etc. What we are changing is making these requirement not be individually unique, but remaking them as universal server rules which are far less intensive on the server.
As you can imagine, this is no small task to double check abilities in both PVE, PVP both generated from monsters and players. We are working to get all scenarios tested and confirmed that functionality of abilities are not effected and working as fast as we can to get this out to you all and appreciate your patience.
ZOS_BrianWheeler wrote: »1 - Upon casting Honor the Dead, the server checks the radius around the Templar (area) as defined by the ability...in this case 28m Radius (an Area of 2463 meters) and gets a list of ALL players in that area (friend or foe).
ZOS_BrianWheeler wrote: »Abilities work on several stages when fired off whether hitting several players in an area, or checking an area to hit just 1 or 2 players. For explaining how this functions in real world terms, let's use Honor the Dead as our example because its a single target ability that has an Area (Radius) of 28 meters.
1 - Upon casting Honor the Dead, the server checks the radius around the Templar (area) as defined by the ability...in this case 28m Radius (an Area of 2463 meters) and gets a list of ALL players in that area (friend or foe).
2 - The server then checks any requirements Honor the Dead has, and begins sorting that list to find the legitimate target to apply the ability to. In this case, the ability needs to find the closest friendly target in that 2463m Area, that is not full health, and apply a heal to that target. This is accomplished by having a unique requirement made specifically for Honor the Dead. The list generated by the server on the Ability cast can be 2 people or 100 people ...it just depends on how many players are in that Area as noted by the ability before it sorts out who to apply the ability effects to.
3 - The server then fires the heal after picking the legitimate target from step number 2 after sorting the list of players according to the ability requirement to apply that heal.
Step number 2 is what we're in the process of changing to be less intensive on the server. Currently each requirement for abilities like Honor the Dead have unique hand crafted requirement lists. The same goes for many other abilities in the game. This includes checking things like lowest health, highest health, distance from target (nearest or furthest), etc. What we are changing is making these requirement not be individually unique, but remaking them as universal server rules which are far less intensive on the server.
As you can imagine, this is no small task to double check abilities in both PVE, PVP both generated from monsters and players. We are working to get all scenarios tested and confirmed that functionality of abilities are not effected and working as fast as we can to get this out to you all and appreciate your patience.
ZOS_BrianWheeler wrote: »Abilities work on several stages when fired off whether hitting several players in an area, or checking an area to hit just 1 or 2 players. For explaining how this functions in real world terms, let's use Honor the Dead as our example because its a single target ability that has an Area (Radius) of 28 meters.
1 - Upon casting Honor the Dead, the server checks the radius around the Templar (area) as defined by the ability...in this case 28m Radius (an Area of 2463 meters) and gets a list of ALL players in that area (friend or foe).
2 - The server then checks any requirements Honor the Dead has, and begins sorting that list to find the legitimate target to apply the ability to. In this case, the ability needs to find the closest friendly target in that 2463m Area, that is not full health, and apply a heal to that target. This is accomplished by having a unique requirement made specifically for Honor the Dead. The list generated by the server on the Ability cast can be 2 people or 100 people ...it just depends on how many players are in that Area as noted by the ability before it sorts out who to apply the ability effects to.
3 - The server then fires the heal after picking the legitimate target from step number 2 after sorting the list of players according to the ability requirement to apply that heal.
Step number 2 is what we're in the process of changing to be less intensive on the server. Currently each requirement for abilities like Honor the Dead have unique hand crafted requirement lists. The same goes for many other abilities in the game. This includes checking things like lowest health, highest health, distance from target (nearest or furthest), etc. What we are changing is making these requirement not be individually unique, but remaking them as universal server rules which are far less intensive on the server.
As you can imagine, this is no small task to double check abilities in both PVE, PVP both generated from monsters and players. We are working to get all scenarios tested and confirmed that functionality of abilities are not effected and working as fast as we can to get this out to you all and appreciate your patience.
Guess the best thing to do is just to keep quoting messages like this. @ZOS_BrianWheeler, @Wrobel, please read, please think, please reply.ZOS_BrianWheeler wrote: »We have been making incrimental changes to how the server handles abilities and items in combat as well as adjusting some back end work regarding how abilities prioritize their targets. The bulk of these changes will be coming in the next major update.
Are you making incremental changes to the poorly envisioned balance and mechanic changes you and wrobel are responsible for that drove a meta encouraging everyone to fight at a single location? Are either of you going to address what a miserable sh3t show pvp has become, even outside of all of the performance issues? Performance is hard and you aren't able to solve it, we all get that by now. For the meta and balance you guys don't get to use that excuse; you made a ton of changes and gave us the worst meta yet (impressive btw), and haven't said a word about it in a month. Not even a "sorry you guys have to play in a terrible meta AND put up with terrible performance while we continue our on-the-job training for running an mmo".
This is the first and only post from either of you in about 3 weeks I believe. In what world is it a sound business decision to completely drop off the radar like that when pvp is in the state that it currently is in? None of us have any idea what your or wrobel's thoughts are on the state of balance and combat, nor on what's coming in DB. Have you really not learned your lesson yet? We need to know what wrobel is doing BEFORE it's finalized in a PTS patch so we can tell you how bad it is with enough time for it to actually be fixed/removed rather than waiting for the next quarterly patch.
You probably didn't intend to write that, but I think it's accurate anywaynow it's so easy to get the battlefield is basically a crapet of the stuff
ZOS_BrianWheeler wrote: »1 - Upon casting Honor the Dead, the server checks the radius around the Templar (area) as defined by the ability...in this case 28m Radius (an Area of 2463 meters) and gets a list of ALL players in that area (friend or foe).
ZOS_BrianWheeler wrote: »1 - Upon casting Honor the Dead, the server checks the radius around the Templar (area) as defined by the ability...in this case 28m Radius (an Area of 2463 meters) and gets a list of ALL players in that area (friend or foe).
Hi,
now you got me. This is my element. I addressed this point in my thread Myth AoE Cap. I called it "Cyrodiil Zone Splitting". This principe is like indexing from databases. The main goal of that zone splitting is to reduce the possible list targets to search for an ability. This should be have a positive effect on your first step.
....
Wasn't that sort of thing what this bit of ESO Live was all about?and it's posts like this why devs don't make posts like the one Wheeler did... do you really think they are morons and don't know all this stuff?!I called it "Cyrodiil Zone Splitting". This principe is like indexing from databases. The main goal of that zone splitting is to reduce the possible list targets to search for an ability.
@ZOS_BrianWheeler
Thanks again Brian. My one last question is:
Why are you discussing combat/skill mechanics and not @Wrobel ?
Do you have any power on the teams heading these changes, or can you just merely request the changes be made?
ZOS_BrianWheeler wrote: »In terms of "why are we lagging out when no one is doing anything around us?":
All things that happen in a zone will effect that zone, so in the case of a battle going on at Glademist where tons of server checks are being initiated, it can (and does) effect what is happening across the map at Bloodmayne. That's how the entire game functions where server processes of a zone are handled and effect the entire zone.
We believe the changes being made to these sorting/requirement changes will help more than other changes have in the past, but that also doesn't mean we believe it's a silver bullet. Each time we peel back a layer of optimizations, we find more we can change to make Cyrodiil perform better. There haven't been discussions about the anti-bot/hack code yet as we continue to have our engineers bang on the combat code.
We are focusing on that aspect the most because of evidence seen with our Non-Veteran Campaign populations vs. Veteran Campaign populations when paired with performance graphs. Looking at Blackwater Blade vs. Scourge on Xbox for example, we see that Blackwater Blade actually has a higher population than Scourge but Blackwater performs better than Scourge. It's this information that has been pointing us to abilities that Non-Veteran players don't have access to via morphs, item abilities, magicka/health/stam regeneration and more.
ZOS_PaulSage wrote: »Hello everyone,
Our Cyrodiil performance is something we are very aware of. Performance drags when there are numerous players in the same place at the same time. This is why performance in Cyrodiil is fine for much of the day, but gets worse during more popular times. We are currently investigating ways in which we can reduce the spike of performance loss. We added in some features for Update 6 which we hoped would help, but ultimately did not. This is not a situation where we can just add more hardware. Player population in a given area hurts the performance and the more people that are in one area, the more performance is going to be hurt.
Actively, we are looking at changing the behavior of the players to remove incentives for large groups to stay in the same area. We want to do this by providing larger incentives for Alliances to split up and take on multiple-challenges in Cyrodiil. We’ll continue to work on this. We are also asked by players if there is anything they can do to help. In this situation, the best thing you can do is split off to different objectives when you notice performance going down. Cyrodiil is a big place with lots of different things to do. And thank you for asking.
ZOS_BrianWheeler wrote: »Abilities work on several stages when fired off whether hitting several players in an area, or checking an area to hit just 1 or 2 players. For explaining how this functions in real world terms, let's use Honor the Dead as our example because its a single target ability that has an Area (Radius) of 28 meters.
1 - Upon casting Honor the Dead, the server checks the radius around the Templar (area) as defined by the ability...in this case 28m Radius (an Area of 2463 meters) and gets a list of ALL players in that area (friend or foe).
2 - The server then checks any requirements Honor the Dead has, and begins sorting that list to find the legitimate target to apply the ability to. In this case, the ability needs to find the closest friendly target in that 2463m Area, that is not full health, and apply a heal to that target. This is accomplished by having a unique requirement made specifically for Honor the Dead. The list generated by the server on the Ability cast can be 2 people or 100 people ...it just depends on how many players are in that Area as noted by the ability before it sorts out who to apply the ability effects to.
3 - The server then fires the heal after picking the legitimate target from step number 2 after sorting the list of players according to the ability requirement to apply that heal.
Step number 2 is what we're in the process of changing to be less intensive on the server. Currently each requirement for abilities like Honor the Dead have unique hand crafted requirement lists. The same goes for many other abilities in the game. This includes checking things like lowest health, highest health, distance from target (nearest or furthest), etc. What we are changing is making these requirement not be individually unique, but remaking them as universal server rules which are far less intensive on the server.
As you can imagine, this is no small task to double check abilities in both PVE, PVP both generated from monsters and players. We are working to get all scenarios tested and confirmed that functionality of abilities are not effected and working as fast as we can to get this out to you all and appreciate your patience.
From what I can guess of the way things seem to work, I don't think that would help. In the same way that a battle at Glade affects performance at Bloodmayne, a large battle in the Memorial District would affect performance in the Temple District regardless of the gates between them, because all the districts exist in the same "Imperial City" worldspace.ZOS_BrianWheeler if what you say is true and a fight in Galdemist can affect performance in Bloodmayne do you plan to divide the keeps with some gates as in IC districts? It will break the immersion but who from the pvp players care for the immersion. We just want lag free server.ZOS_BrianWheeler wrote: »In terms of "why are we lagging out when no one is doing anything around us?":
All things that happen in a zone will effect that zone, so in the case of a battle going on at Glademist where tons of server checks are being initiated, it can (and does) effect what is happening across the map at Bloodmayne. That's how the entire game functions where server processes of a zone are handled and effect the entire zone.
ZOS_BrianWheeler wrote: »In terms of "why are we lagging out when no one is doing anything around us?":
All things that happen in a zone will effect that zone, so in the case of a battle going on at Glademist where tons of server checks are being initiated, it can (and does) effect what is happening across the map at Bloodmayne. That's how the entire game functions where server processes of a zone are handled and effect the entire zone.
We believe the changes being made to these sorting/requirement changes will help more than other changes have in the past, but that also doesn't mean we believe it's a silver bullet. Each time we peel back a layer of optimizations, we find more we can change to make Cyrodiil perform better. There haven't been discussions about the anti-bot/hack code yet as we continue to have our engineers bang on the combat code.
We are focusing on that aspect the most because of evidence seen with our Non-Veteran Campaign populations vs. Veteran Campaign populations when paired with performance graphs. Looking at Blackwater Blade vs. Scourge on Xbox for example, we see that Blackwater Blade actually has a higher population than Scourge but Blackwater performs better than Scourge. It's this information that has been pointing us to abilities that Non-Veteran players don't have access to via morphs, item abilities, magicka/health/stam regeneration and more.
ZOS_BrianWheeler wrote: »1 - Upon casting Honor the Dead, the server checks the radius around the Templar (area) as defined by the ability...in this case 28m Radius (an Area of 2463 meters) and gets a list of ALL players in that area (friend or foe).
Hi,
now you got me. This is my element. I addressed this point in my thread Myth AoE Cap. I called it "Cyrodiil Zone Splitting". This principe is like indexing from databases. The main goal of that zone splitting is to reduce the possible list targets to search for an ability. This should be have a positive effect on your first step.
Again, sry for my english. But i hope you understand me @ZOS_BrianWheeler .
Every object in cyrodiil, which can be hit by your ability (In your case the closest friendly target in 2463m area) have an additional item "zoneIndex". Now you need 2 calls. First you need to know, which zones your ability hit. In best case 1 zone in worst case 4 zones. Second, you use your call on all potential objects in the affected zones, instead off in complete Cyrodiil. Now you have a much much shorter list, instead of you search on complete cyrodiil.
The second architecture trick now you can do is to give every "Zone" in Cyrodiil his own server ressources, like own "instances". I think this is the longer implementation step, but that should be end in better performance in the not affected zones. For example there is a large fight in Chalmann and a smaller one in Alessia. Each keep zone have its own server ressources, so you have no lags in Alessia and a bit more lags in Chalmann. At the moment the entire Cyrodiil instance is affected by large fights in one corner, so an entire campaign is unplayable.
In DAoC they did this trick too, but there was one little disadvantage in vanilla DAoC. Every time you hit a zone border you had a little lag spike like a stutter. With New Frontiers there was no stuttering on zone change. So it is possible.
To illustrate what i mean i have made a little picture. In PAINT!
I have created 3 examples.
1. The yellow circle at nickels hits 2 zones. So the first call needs only to search all objects in zone 21 and 22.
2. The green circle at farragut hits 4 zones. The first call needs to search all objects in zone 12, 13, 19 and 20.
3. The orange circle at dragonclaw hits 1 zone. The first call needs only to search all objects in zone 4.
I know, these circles are much much larger as normal AoE... But i can show you what i mean.
2 Points i will explain:
1. On this map is a large battle with hundrets players at Nickels. In zones 21 and 22 are lags. In Farragut and Dragonclaw are no lags, because there are not so large battles.
2. The call of an AoE effect from a player in Nickels not needs to check if a player or "deer" in Farragut is in range of that radius. Or the call of a Templer ability in Dragonclaw not need to check for all objects in Cyrodiil in a 28m radius.
@ZOS_BrianWheeler i hope you understand me. One question at least. Did you discussed about these technique? What is your opinion on this?
@ZOS_BrianWheeler what happened with Paul Sage's post about spliting up in Cyrodiil?
@ZOS_BrianWheeler if what you say is true and a fight in Galdemist can affect performance in Bloodmayne do you plan to divide the keeps with some gates as in IC districts? It will break the immersion but who from the pvp players care for the immersion. We just want lag free server.
ZOS_BrianWheeler wrote: »We have been making incrimental changes to how the server handles abilities and items in combat as well as adjusting some back end work regarding how abilities prioritize their targets. The bulk of these changes will be coming in the next major update.