Here im going to talk about Cyrodiil lag and some interesting findings on what could be causing it. Theres many different kinds of lag in Cyrodiil but here when I say lag I am referring to server latency during prime time PC NA. In my experience my fps will be fine and my abilities will cast but none of them will land on an enemy standing right in front of me and the same for them even if it's far away from any fight.
(there will be tldr at the end)
Cyrodiil wasn't always like this and most players can agree its been getting worse each update, so what has changes since day one? I decided to do some digging and having looked through all the old patch notes I can tell you its a lot. They added new keep passives, underdog bonuses, how guards work, how resources work, DLC sized overhauls over and over again.The more they added, the more the performance slipped.
Zos is trying to improve performance in pvp by adjusting things we all use in pvp (sprint, block, race passives) to reduce server stress. A few years ago Zos even tried disabling Champion points for a weekend and the performance was better but the lag never really went away during primetime. With performance getting progressively worse this would suggest that there is no one thing causing problems but instead years of caked on underlying issues surrounding pvp, since this kind of lag is not present at all in pve/overworld.
- One of the things that all pvp players have in common is there is an artificial rule stating that players will not receive armor degeneration from pvp kills/exp/deaths, you will also not receive armor degen from killing or dying from an alliance guard, taking/defending keeps, or turning in alliance daily quest. Armor degenerating is not turned off in Cyrodiil though and you can still get it from killing/ dying to non alliance npcs. This means there's some kind of checking system in place and I believe after doing some digging in older patch notes this might be one of the causes for Cyrodiil lag.
- Update 1 - changes to Armor degeneration and armor repair cost were made and in the next hot patch (1.1.3) we got the first mentions of Cyrodiil latency in the patch notes. This would get overshadowed by patch 1.2 (the lighting patch) when everyone's fps hit 5-10.
- Update 6 - changes to the impen trait, aoe caps removed, champion points and crown store introduced. very important for later.
- Update 10 - More changes to impen trait, now reduces the items durability damage by 40%. This would be overshadowed by the events surrounding 2016 Memorial Day weekend.
Another thing pvp players all have in common is wearing the impen trait on all 7 pieces of armor (8 including shield). Back when these trait changes were made its unlikely they were thought about on a large scale or how it would work with the artificial rule on a large scale. Patch 1.1.3 should have been the first sign of trouble and for them to add the 40% degeneration reduction on impen could mean none of this was looked at as a link to server latency.
Armor degeneration applies to all 7 pieces (8 if shield is on the bar) all at the same time when a player dies. The only other way is when you gain exp from a kill or healing the slayer, and when you gain the exp according to my test you will receive armor degeneration to a random piece of armor every time you gain exp from a kill. With there being no aoe caps on damage or healing you can get exp from many kills just by pressing one button. In a group setting you can get exp from other players in the group getting the kills and when it comes to pvp there's a lot of maxed out groups running around. And every time a player gains exp from a kill, or dies the server has to apply the checking system to all of their gear.
Depending on how its coded it could look like this
- armor degen > - 40% > is pvp death y/n. (per piece of gear(x7) from dying)
- armor degen > random 1/7 > -40% > is pvp kill y/n. (for a kill)
If this is the case it would result in a lot of sever calculations for the main campaign come prime time. In pve this wouldn't be an issue since most instances don't have 3 whole factions of people dying and killing vs Cyrodiil is one whole instance. In Battlegrounds there is only 12 people max plus players don't receive any exp until then end of the match so the checking is halved with less people, and champion points are disabled. Dueling has no exp gained and this could be why 30 people dueling in one place causes no issues. Even dolmen trains have less latency and I suspect its because people rarely die and there's only a hand full of mobs active at a time.
Changes to how keeps and resources give ap/exp not long ago, with the old way a player would have to wait at a keep/resource to get credit for the defense. With the new system anyone who shows up and does a light attack will get credit (ap/exp) in 10 mins. This means more players are getting exp more often and if the checking system for armor degen is linked to that exp it could add to the problem
From my testing is the armor degeneration from pve kills and deaths is inconsistent which could mean there's another thing in the checking order that isn't making sense. All of my test were done with no champion points applied and in all training trait gear with SnB equipped at all times in the standard campaign with winters peak giants. The map there is stale so there were no keep bonuses being applied. In the test killing a giant gave me a repair bill of 4 gold but killing a tundra deadeye gave me a 2g repair, meaning there's some kind of extra check for different enemies in the game. Dying from both of them would give me a repair bill of 45g, but sometimes dying to a giant would give me randomly a 38g repair with snb still equip, another inconsistency. Dying without snb is a 43g repair. And finally sometimes killing a tundra deadeye would give me a 1g repair instead of 2g, killing a giant would randomly give me a 2g repair instead of 4g. The degen isn't based on exp percentage like intended, I've tested with a 50% exp boost scroll and got the same results just to be sure.
A good way for Zos to test this is for a whole weekend remove/disable all exp gained in Cyrodiil, remove the 40% reduced durability from impenetrable, and remove/disable the merchant favored champion point passive from the shadow tree. This might not fix the issue completely since Armor degen applies to deaths too but it could reduce the lag if its the root of the problem. If it is an issue then the whole armor degen/ armor repair system needs an overhaul but I suggest removing it completely, an overhaul would cost time and resources and new systems could cause more problems.
(TLDR: The artificial rule of no armor degeneration from pvp could be causing issues and the impen trait may be adding to it.)