First i will apologize for my broken english. If you do not understand some sentence, try to see in the german thread and translate itself or ask me directly!
Here are the german counterpart. -> forums.elderscrollsonline.com/de/discussion/224992/mythos-aoe-cap
Now the post in english
Again and again we talks about this and there is always a point of contention. Some say "AoE Cap is good, because the server cannot handle it without". The other saying "Without AoE Cap the server has less load". Some say that "Without AoE Cap, small groups beat big". Others say, "With or without AoE Cap does not matter, large groups are always too strong." The discussions can go on like this forever.
Again we discussed about the aoe cap in our TS. After that discussion the idea came to me to search for founded arguments. Maybe I'm crazy to put so much effort into finding the answers, but I have fun at such things.
With common sense, I already was able to get much of what is now thinking, but I had not evidence.
OK. What have I done? I've come up with a first theoretical situation (a scenario).
1. The Scenario
It is described as a "simple" situation. We have 2 groups of a certain size. First Group A attack with AoE's (e.g. steeltornado), then group B attacks. Each round lasts 1 second. Group A and Group B are completely in the radii of AoE attacks. Simply Imagine a battle for a flag in a keep. In the past, these were the most common lag situations.
But my scenario still has some weaknesses. For example, i ignore the fact that not every player every second is spamming a steeltornadoe. Besides, I did not treat the chain with active / reactive procs. So it can not accurately simulate the reality, but hopefully I can recognize a trend.
The scenario can be interpreted in various ways. For this I've created scenario setups, such as the AoE Cap type.
2. Scenario Setups
AoE Cap Type
The main setup is the AoE Cap type. Here there are three options.
- 6 targets
- 60 targets with damage reduction
- No cap
Again and again on the argument that you can not kill large groups with an AoE Cap. Is that so? And how small can be a group to kill larger groups?
AoE Damage (Average Damage)
The average AoE damage refers to the AoE damage to an enemy per second.
Especially with 2.1. the damage was reduced to 50%. This also reduces the average AoE damage. How does this affect the outcome of the group fight?
Healing (Heal simulation)
If healing simulation is active, an AoE Heal is simulated (75% of the AoE damage) to each player action. Imagine the healing circles of healing stick. The AoE Heal is fix limited to 6 targets. I have confined myself to healing circles, as they are the same legislation subjected as an AoE damage skill.
Impact? (Impact simulation)
One of the game philosophies and secrets of Lux Dei’s
success is putting a so-called "Impact". We coordinate our attacks and try to attack at the same time. We create a damage peak and can overwhelm opponents frequently.
If no impact is set a random number of players attack per round. This simulates a fight without coordinated attack.
AoE Damage distribution (Randomize target hitting)
Currently the AoE hits the 6 closest targets with 100% damage. But often enemies run around and you hit sometimes the one and sometimes the other one. How much influence has it that you always hit the same peoples or random peoples?
If this setup is active, the AoE will randomly hits targets.
If this setup is active, both groups gets a barrier.
In short barriers or other shields makes the fight longer. So I only need to adjust the length of the fight. I have made myself easy here. I simply doubled HP to double the fight duration and simuate barriers.
Cyrodiil Zone Splitting
I can only observe from outside how Zenimax LOS checks implemented. Fact is, the server needs to know which enemy players are at the time of AoE damage in range of that AoE. Now the question is how we get this infornation?
Suppose Cyrodiil is a single instance, then the server must determine which enemy players were at the time of AoE's from player A in the reach of that AoE. Gets the server now the position of all enemy players in Cyrodiil and checks it? Or is there another method?
If zone splitting is not active, then the server searches completely Cyrodiil. In my simulation I have set the value to 500 objects.
If zone splitting is active, then Cyrodiil is divided into small boxes (zones). Thus, the server does not need to search complete Cyrodiil. The server only needs to search the objects in the zone of the AoE damage occurred. If the AoE reaches over zone boundaries all bordering areas are searched. So I would do it. In the simulation, which has the consequence that only the enemies of the other group to be searched.
Depending on how large the zones are, the number of LOS checks can be massively reduced (theoretically) on a filled Cyrodiil server. That's like saying a process that I would apply. But what system implemented that only knows Zenimax itself.
3. Simulation of scenarios
I'm not a math genius that can create formulas from all scenarios and setups. But i can write programs they do it for me. So I simply created a simulator (ESO Lag Simulator) with which you can simulate the scenarios.
What results provides the simulation?
The simulator provides four values of each simulation.
The fight duration
- The fight duration
- The number of actions (Ticks) in the fight per second
- Total number of actions (Ticks)
- Winner of the fight
Every second of the fight will be recorded and used as the X-axis of the graphic.
The number of actions (Ticks) in the fight per second
The simulator determines every second the actions (ticks) in combat. For example, an action is a LOS check of a player's AoE. The actions are used as the Y-axis of the graphic. About the ticks in a given second you can see quite well how much server load which setup generates.
Winner of the fight
When will be a victory against a larger group possible? Which setup is this needed? How much influence do the AoE Cap Types? These questions should be answered with the winner of the fight.
4. Structure of the simulation
Now it's getting difficult. How could a LOS check look like? How many ticks (the server does) produces this? I have no idea per se. I can only bring my experience here. Finally, the simulation has no real LOS check. The simulation simulates how much "ticks" are required for a LOS check. The same applies to the calculation of AOE damage and healing.
Determine the actions in the fight
I visualized the necessary actions for you via a simple Activity Chart. The left tree for AoE damage, the right tree for AoE healing circles.
The first two actions "GetInside" and "GetVisible" form the LOS check. First one determines all enemy players inside the AoE radius. As second all visible targets will be determined from this list. The number of LOS checks does not vary based on the AoE caps, but is dependent on the available objects in the zone.
The actions "DoDmg" and "DeathCheck" are more complicated because there are several sub-actions here. For example, the 6 densest objects mentioned must be determined with an active AoE Cap. On the other side these step can be ignorde if no AoE cap is set. With activated "Randomize target hitting" can be simulated, that is not always the same 6 targets are met. Last you need here the Dropoff calculation and a death check that the enemy was killed by the damage.
Healing is designed to be immediately damage the tree. The only peculiarity is that here the AoE Cap is limited to 6 fixed targets.
Calculation of damage & combat end
If the target that get the damage is determined (Surprisingly ,i have found that the way is quite long.
), the damage must be inflicted to the target now. I believe that this calculation is not so simple, because the damage must be mitigated and additionally any procs are calculated. That's why I estimated 5 ticks for each damage calculation. I think this is the correct weight for the whole process.
The end of the fight is pretty easy to identify. Once all players of a group have reached 0 HP, the battle is over.
5. Results / evaluation
With my simulator I've tried different setups. Some I want to introduce bullet points here. I have tried to answer the typical questions.
Small groups vs. Large Groups. How is this possible?
I have played through the various AoE Cap Types with activated Heal simulation and an average AoE damage of 2000.
With the solid "6 targets cap" was it already at a 50(A)vs60(B) almost impossible to win for Group A. With activated Impact on Group A the chance of victory could be increased. But group B has still won in most cases.
With "60 targets + dropoff" (It is currently implemented in ESO) was at 20(A)vs60(B) for Group A only a very small chance to win. Again, with activated impact group A had higher chances of winning.
With "No Limit" (No AoE Cap) even had 6 players a small chance to kill a group of 60 players. With 4(A)vs60(B) was it not possible.
Interesting to note is the point from when you with a small group to ensure a win against a bigger group. Since group A always attack I take this as reference. Here are the results:
- "6 targets cap" with no impact: 70(A)vs60(B) -> You need even more players and B won from anyway and
- "6 targets cap" with Impact: 46(A)vs60(B) -> With Impact you still need almost the same number of players
- "60 targets + dropoff": 60(A)vs60(B) -> The same picture
- "60 targets + dropoff" with Impact: 32(A)vs60(B) -> Here you can see a big difference. So Impacts have a pretty big influence in this AoE Cap type
- "No Limit" (No AoE Cap): 40(A)vs60(B) -> You can win with a smaller group, but you need already 1/3 of the opponent group
- "No Limit" (No AoE Cap) with Impact: 12(A)vs60(B) -> Here is also a big difference to see. Impacts also have a major influence here
I summarize the results. The clear winner in the theme is "No Limit" (No AoE Cap). However, the success of the small group depends on several factors. If two non-coordinated groups attacks each other (Zerg vs Zerg), it still requires about 66% of the opponents strength of the other group. But if here some good players inside the zerg, they could make a difference and win the fight for their zerg. If the own group additionally organized and manages to put an Impact (Call it skill), you can even wipe 60 or more enemy players with only 12 players.
With the current implementation "60 targets + dropoff" is this point for organized groups (With Impact) at around 50% of the enemy strength (30v60, 12v24, etc.). If not organized groups clash, the bigger zerg wins. Individual good players can not stand out in unorganized groups (Zergs).
Setup with the highest server load. What's the worst that can happen?
Clear negative winner here is the "6 targets cap" with sometimes up to 2 million overall ticks. Conditions are also that the opponents run around and barriers are thrown. We know this picture all, and that was not realy good for the servers.
In second place is "60 targets + dropoff". The overall value of ticks is only around 10% as large as the "6 targets cap".
Some peoples ask now: Why was there still lags with 2.0?
The only explanation I have is the peak of ticks in both types of AoE. Both are at about 120000-150000 ticks at the highest value. If the server can only process 30000 ticks per second it comes to a server lag. Because the server requires 4 seconds for only one second in the game to calculate.
Setup with the lowest Server Load. What is the best AoE Anti-Lag solution?
As described above, I have installed a so-called Cyrodiil zone splitting method in the simulation. If zone splitting is not active, the server looks completely Cyrodiil whether the target can be hit with the AoE. In my simulation, the value is set to 500 objects. That are 250 players at two opposing factions. If zone splitting is active, the server does not have to completely browse the Cyrodiil population. The server only search in the current zone the AoE was carried. In the simulation is this the number of the enemy group. Suppose the final simulation example.
The result is impressive. The Peak is down to 50000, or about 33% to the previous result. Suppose with 30000 ticks per second required by the server just under 2 seconds instead of 4 seconds for the previous calculation.
I can not help but I have to remark this! I think Zenimax has implemented the global variant without zone splitting or has made the zones too large. I hope you can still remind the removing of deer? Deer can also meet with an AoE. Like guards or other animals. Against all these objects a LOS check has to be done, because you do not want to hit the wolf on the other side of Cyrodiil with an AoE. So i found the myth reason of the deer removings!? @ZOS_GinaBruno
If anyone would like to have explained the zone splitting in detail, I can write you via pm, because I do not want to explain in more detail here.
Now the winner that generates least server load. This is clearly "No Limit" (No AoE Cap). With a peak at the worst case scenario of 28000 with a reasonable zone splitting one is less than 30,000 ticks. With Impact you would even land only at 15000. I believe these values speak for themselves.
Why is "No Limit" (No AoE cap) so low?
This is due to several factors:
Influence of AoE damage (Average Damage) on the result. Is more damage than good?
- The opponents die faster
- The fights are much shorter
- It saves ballast in the calculation
- Determine the densest 6 targets falls away
- The complete dropoff falls away
Finally, I would like to mention the average AoE damage. The results were for all types always the same. The more damage, the faster the opponents die and the shorter are the fights. The one who first handing out high damage wins the fight, even with a smaller group, regardless of their AoE Cap type. For comparison.
"60 targets + dropoff" with Impact: 32(A)vs60(B) with 2000 damage
"60 targets + dropoff" with Impact: 16(A)vs60(B) with 4000 damage
The analysis of the results showed me clearly what AoE type I would prefer. No matter how I turn it and turn I land always with that "No Limit" (No AoE Cap) is the best solution
. Without an AoE Cap the individual is still important in Zerg vs Zerg and Zerg vs Zerg is still possible and fun. However, we must be careful that we do not get into situations in which a single player against 60 wins without problems. I think that is too extreme and a risk of that AoE cap type. What can I do here? Zenimax has a good remedy here. The average AoE damage.
Currently I think the average AoE damage somewhat too low. The 50% damage reduction is for me a piece too high. I would prefer 40%. Currently, players are at around 2000-3000 average AoE damage, best case would be 4000. With an average AoE damage of 4000 points and no AoE Cap can 6 players sometimes wipe a group of 60 peoples (If they are skilled).
Even with the theoretically server load is "No Limit" (No AoE Cap) although the best solution. Contrary to some opinions, that "6 targets Cap" generated the least server load (It even produces by far the most). Likewise, the current solution ("60 targets + dropoff") simply produces too much server load. Therefore my request.
„Keep-It-Simple“, No AoE Cap.
With simple i mean simple. No special dropoff mechanics or other issues. Simple no Cap on AoE.
I personally would like to see these two changes in the next patch:
- Repeal of AoE Caps and no drop off, because:
- It generates fun for small groups against large groups
- It does not affect Zerg vs Zerg gameplay
- It generates by far the lowest server lag
- Damage reduction reduced to 40%
On the following LINK you can download the ESO Lag Simulator and play yourself own scenarios: ESO Lag Simulator 1.0
That was my personal opinion on the subject. I would like to hear your views. What do you say?