ZOS_BrianWheeler wrote: »More players means more server calculations; that is 100% correct. However the key variable in all these scenarios is how much information is being calculated on a character by character basis depending on abilities being used, passives, armor sets, etc. This is why population is not as big a factor compared to what's being calculated on a character by character basis within that population. Let's take an example of a typical armor setup now a days.
A player wearing Viper, Velidreth, and Red Mountain doing a single heavy attack costs the server 3 times as much as a player doing Heavy attack without those sets because of calculating whether to proc those 3 sets or not. Even when a proc is on cooldown, the server needs to check per attack if the cooldown is done yet, which means every attack it checks whether it can fire or not based on either percentage, cooldown, or other situations. Factor in Champion Point passives, class passives, weapon passives and whatever temporary passive bonuses from potions, and you add to those calculations per attack/being attacked. In campaigns like Blackwater Blade and Azura, there are simply less things to calculate even when they have higher population than Trueflame.
akredon_ESO wrote: »So... did no one have any for thought before they put these sets in to think that this would/could cause server performance issues? or was this a case of ah screw it we are just gonna put it in and worry about it later. I get you want to create engaging and diverse builds but at what cost ? While i appreciate the information that @ZOS_BrianWheeler provided. I think there should have been some for thought before something like this was decided.
ZOS_BrianWheeler wrote: »More players means more server calculations; that is 100% correct. However the key variable in all these scenarios is how much information is being calculated on a character by character basis depending on abilities being used, passives, armor sets, etc. This is why population is not as big a factor compared to what's being calculated on a character by character basis within that population. Let's take an example of a typical armor setup now a days.
A player wearing Viper, Velidreth, and Red Mountain doing a single heavy attack costs the server 3 times as much as a player doing Heavy attack without those sets because of calculating whether to proc those 3 sets or not. Even when a proc is on cooldown, the server needs to check per attack if the cooldown is done yet, which means every attack it checks whether it can fire or not based on either percentage, cooldown, or other situations. Factor in Champion Point passives, class passives, weapon passives and whatever temporary passive bonuses from potions, and you add to those calculations per attack/being attacked. In campaigns like Blackwater Blade and Azura, there are simply less things to calculate even when they have higher population than Trueflame.
ZOS_BrianWheeler wrote: »@Recremen In the next update we are doing some of exactly what you have suggested in putting frequently referenced abilities/requirements into a different server process.
ZOS_BrianWheeler wrote: »Correct Bashev.
ZOS_BrianWheeler wrote: »@Armitas Both teams at that conflict, as well as other places in Cyrodiil, would feel the effects of that battle. The server processes all information from Cyrodiil together, so server performance is effected across the entire zone. However that performance doesn't bridge across zones so while there may be spikes in Cyrodiil, they would not effect Imperial City, Imperial Sewers, or any of the Cyrodiil caves.
ZOS_BrianWheeler wrote: »@Recremen In the next update we are doing some of exactly what you have suggested in putting frequently referenced abilities/requirements into a different server process.
ZOS_BrianWheeler wrote: »@Recremen In the next update we are doing some of exactly what you have suggested in putting frequently referenced abilities/requirements into a different server process.
SwaminoNowlino wrote: »ZOS_BrianWheeler wrote: »@Recremen In the next update we are doing some of exactly what you have suggested in putting frequently referenced abilities/requirements into a different server process.
@ZOS_BrianWheeler,
Thanks for the update Brian. But as you mentioned earlier, regardless of all of the calculation stuff, there's still an issue of reaching a critical amount of players in one area. While deferring or segregating some calculations may hopefully help, isn't it more of a band-aid type fix? It also sounds like a pretty technical band-aid that could pretty easily break some things inadvertently.
For instance it looks like on the PTS build you've relegated CC's to this type of differential server process, and they all appear to be pretty significantly broken. It sounds like the fix you're talking about is akin to adding something like an express lane on a freeway. These help in certain situations, but they also can cause more accidents and calamity. It also doesn't address the bottleneck of translating information from the server to the client, which leads us back to the critical mass of players type issue.
I love that you're trying to think of technical ways to address this, but I'm worried this may miss the mark. You can keep putting someone down for open heart surgery to perform bypasses, but if the person is still cramming triple cheeseburgers down their gullet multiple times a day and clogging their arteries, does it really help? Would it not be more helpful to work towards changing the individual's behavior?
Create incentives for people to spread out.
As @BigES suggested in another thread, a creative disincentive to running in huge blobs is make individual keeps more important to the overall success of factions in the alliance war. Make factions need to be concerned about the status of all of their keeps, so they can't just zerg from one to another.
Another suggestion is to implement diminishing returns on healing. Basically, make healing less effective if you have a a ton of people around you, like greater than 12 for instance. This allows the change to be implemented easily, without impacting trials. You heal for a normal value until you have more than 12 people within your active radius, then decrease the effectiveness of healing done for each person over that threshold. This insures that people are more conscious of their surroundings and have less incentive to rely on herd protection. You can still run in large groups effectively if you want, you just have to build for it thus imposing a penalty on those larger groups.
Just a couple ideas. Hopefully battlegrounds are close and implemented properly, so the majority of the player base concerned with performance and enjoyable, competitive PVP will never have to enter Cyrodiil again. But I think you all could get really close to solving a lot of these overarching performance issues through some creative tweaks to the base game without having to devote a lot of time and resources.
ZOS_BrianWheeler wrote: »More players means more server calculations; that is 100% correct. However the key variable in all these scenarios is how much information is being calculated on a character by character basis depending on abilities being used, passives, armor sets, etc. This is why population is not as big a factor compared to what's being calculated on a character by character basis within that population. Let's take an example of a typical armor setup now a days.
A player wearing Viper, Velidreth, and Red Mountain doing a single heavy attack costs the server 3 times as much as a player doing Heavy attack without those sets because of calculating whether to proc those 3 sets or not. Even when a proc is on cooldown, the server needs to check per attack if the cooldown is done yet, which means every attack it checks whether it can fire or not based on either percentage, cooldown, or other situations. Factor in Champion Point passives, class passives, weapon passives and whatever temporary passive bonuses from potions, and you add to those calculations per attack/being attacked. In campaigns like Blackwater Blade and Azura, there are simply less things to calculate even when they have higher population than Trueflame.
ZOS_BrianWheeler wrote: »More players means more server calculations; that is 100% correct. However the key variable in all these scenarios is how much information is being calculated on a character by character basis depending on abilities being used, passives, armor sets, etc. This is why population is not as big a factor compared to what's being calculated on a character by character basis within that population. Let's take an example of a typical armor setup now a days.
A player wearing Viper, Velidreth, and Red Mountain doing a single heavy attack costs the server 3 times as much as a player doing Heavy attack without those sets because of calculating whether to proc those 3 sets or not. Even when a proc is on cooldown, the server needs to check per attack if the cooldown is done yet, which means every attack it checks whether it can fire or not based on either percentage, cooldown, or other situations. Factor in Champion Point passives, class passives, weapon passives and whatever temporary passive bonuses from potions, and you add to those calculations per attack/being attacked. In campaigns like Blackwater Blade and Azura, there are simply less things to calculate even when they have higher population than Trueflame.
Cooldowns on proc sets also won't help with performance, since each set's activating condition still requires a check against the cooldown. Monstrously, cooldowns actually seem to make performance worse, along with percentage chances, since cooldown checks and RNG procs are the two addtional calcuations to which @ZOS_BrianWheeler refers.
akredon_ESO wrote: »So... did no one have any for thought before they put these sets in to think that this would/could cause server performance issues? or was this a case of ah screw it we are just gonna put it in and worry about it later. I get you want to create engaging and diverse builds but at what cost ? While i appreciate the information that @ZOS_BrianWheeler provided. I think there should have been some for thought before something like this was decided.
For example, even in Azura's I find that my framerate {GTX980) will steadily decrease from 60+ to 15 over a long play session in Cyrodiil.
The framerate stays low even if I'm in a keep where there are few enemy players. If I quit the client and restart, it'll go back to normal and the cycle begins again.
The point is it feels laggy even though it really isn't a latency problem.
SwaminoNowlino wrote: »ZOS_BrianWheeler wrote: »@Recremen In the next update we are doing some of exactly what you have suggested in putting frequently referenced abilities/requirements into a different server process.
@ZOS_BrianWheeler,
Thanks for the update Brian. But as you mentioned earlier, regardless of all of the calculation stuff, there's still an issue of reaching a critical amount of players in one area. While deferring or segregating some calculations may hopefully help, isn't it more of a band-aid type fix? It also sounds like a pretty technical band-aid that could pretty easily break some things inadvertently.
For instance it looks like on the PTS build you've relegated CC's to this type of differential server process, and they all appear to be pretty significantly broken. It sounds like the fix you're talking about is akin to adding something like an express lane on a freeway. These help in certain situations, but they also can cause more accidents and calamity. It also doesn't address the bottleneck of translating information from the server to the client, which leads us back to the critical mass of players type issue.
I love that you're trying to think of technical ways to address this, but I'm worried this may miss the mark. You can keep putting someone down for open heart surgery to perform bypasses, but if the person is still cramming triple cheeseburgers down their gullet multiple times a day and clogging their arteries, does it really help? Would it not be more helpful to work towards changing the individual's behavior?
Create incentives for people to spread out.
As @BigES suggested in another thread, a creative disincentive to running in huge blobs is make individual keeps more important to the overall success of factions in the alliance war. Make factions need to be concerned about the status of all of their keeps, so they can't just zerg from one to another.
Another suggestion is to implement diminishing returns on healing. Basically, make healing less effective if you have a a ton of people around you, like greater than 12 for instance. This allows the change to be implemented easily, without impacting trials. You heal for a normal value until you have more than 12 people within your active radius, then decrease the effectiveness of healing done for each person over that threshold. This insures that people are more conscious of their surroundings and have less incentive to rely on herd protection. You can still run in large groups effectively if you want, you just have to build for it thus imposing a penalty on those larger groups.
Just a couple ideas. Hopefully battlegrounds are close and implemented properly, so the majority of the player base concerned with performance and enjoyable, competitive PVP will never have to enter Cyrodiil again. But I think you all could get really close to solving a lot of these overarching performance issues through some creative tweaks to the base game without having to devote a lot of time and resources.
They've been creating incentives for people to spread out. Town capture, new resource AP rewards, and the slow and steady realization by Trueflame players that resource sneaking is becoming an increasingly important part of the campaign victory condition.
As far as "express lanes" and "freeways" go, I'd trust the professional engineers to know what they're doing on that. The change is doubtless coming from a steady process of code refinement and based on verifiable performance metrics that we players can only guess at, but which are super obvious and informative to the actual engineers. Also, sometimes a change in a system is objectively good by every measure with no real downside. If you're familiar with programming at all, look at the difference in performance for single-object referencing between a Map and an Array data structure. The Map requires more memory to work properly, but memory is, as a rule, way less expensive than processing time, and so Maps perform better, period, in all cases for that specific task.
The only thing I'm worried about is what appears to be the steadily declining ability to make a lot of AP in a group setting. I hope that as these performance changes and incentives continue to get refined, they don't forget about the arduous AP grind to Grand Overlord!
ZOS_BrianWheeler wrote: »@Recremen In the next update we are doing some of exactly what you have suggested in putting frequently referenced abilities/requirements into a different server process.
This past week performance has been very poor. Lag freezes, FPS drops, input lag, long load screens, crashes.
Then of course the invisible people plus unbreakable fear has now been joined by the unbreakable encase spam.
It has been a frustrating week.
On the plus side, I get out of combat quickly and the templar horse disease is greatly diminished.
Yes all of the above plus + healing ward casting without an animation. Also streak mixed with other factors freezing your character.since Homestead I've been getting odd bugs with abilities not casting or casting but only playing split second of their animation, strangely doesn't seem to be linked to lag.
Rapid Regeneration - constantly refuses to cast
Honor the Dead - casts but animation doesn't play, charcter just twitches
Mages Wrath - constantly refuses to cast
Burning siege weapons - animation only plays for a sec then stops and siege remains intact
Crystal Fragments - animation plays in full but ability doesn't cast, one crystal fragment appears briefly next to character