There are only 2 ways to reduce the lag in game. Create a bigger pipeline or reduce what travels thru the current pipeline.
CPU bottleneck? I’m not an expert, but is that’s the case wouldn’t changing settings so the GPU handles more have a large in game effect?
calling it something else, or by fixing the technologies.There are only 2 ways to reduce the lag in game.
this would be terrible for PvP. 1 second tick is too high as it is.Dots and Hots is where we start. Right now some Dots and Hots tick every 2 seconds, some tick every second, I think some tick every half second. Make all Hots and Dots tick every 2 seconds period, end of discussion.
you're recommending drastic changes in gameplay to fix this...ground aoe dot needs to be multi target, vigor needs to be multi target...Make Dots and Hots single target only. This will reduce the data transferred by a factor of however many targets that specific ability can hit, or on average does hit. Hots would be self only heals while Dots would only effect 1 single target. They may need to be increased in strength to accommodate the fact that they are only single target. Certain classes may need access to more or better Hots for self healing.
ESO didn't forgo CD by accident and I feel it is innovative, even if completely ridiculous. All skills should have an animation time and a point through that animation where damage is dealt. I understand that "instant" cast skills would benefit from the ability to somehow be reset in mid animation. there could be cooldowns that affect how much an ability costs or its effectiveness. the distinction between light and heavy attacks is already a sort of a cooldown, in order to get full damage you need to have a greater windup. some skill that can implement this type of hold and release to get full power would improve pacing and prevent exploits that involve flooding a specific skill that is instant cast so it procs 4x in a second.Give direct damage abilities cool downs. Spamables with a damage rating deemed appropriate for a spamable would get a 1 second cooldown. Heavier hitters could get a 2 second cooldown, or a 1 second cooldown and 1 second cast time. These would do more damage than spamables by a significant margin. Complete blasters that would do even more damage, but get a 3 second or more cool down. These can be single target or AoE but are not channeled nor over time abilities.
I don't know about making healing require aim but ground heals would be cool. Think motes from TERA.Heals, get rid of smart targeting. Make all AoE heals so that if you are within the radius you get the heal, if you are outside the radius you don't. All AoE heals are direct heals, no AoE Hot heals. Self heals can be HoT or a direct self heal. Again the strength of these heals may need to be adjusted and balanced.
All special effects that are part of all types of these Dots, HOts, DD, DH of the CC variety would also obey any of these above mentioned rules that were adopted. No over time CC, only single target CC or AoE off of AoE direct damage that doesn't reapply the CC after the initial hit.
Gonna stop there as I probably am already pissing too many people off, but will follow up later with light attack weaving and the effects of it on server performance. It is time to re-think the amount of data that is getting pushed through the pipeline and come up with creative ways to reduce it, while at the same time maintaining current DPS/HPS numbers by pushing fewer larger numbers through rather than more smaller numbers through.
The best fix to lag especially in cyrodiil is get rid of the peer2peer connections using UDP. Also the ddos protection black hole causes two more hops, and every hop is going to add around 10ms in the best situations.
I think a lot of the problems are mutl-faceted, removing extra sanity checks would definitely allow faster roundtrip data, but when that existed, it was trivial to fool the server.
They have traded accessibility for integrity
I don't think it's a bandwidth issue. I think it's a cpu bottleneck and the lag is a symptom of that. ICMP traffic is low priorityb and thats what is being used to check latency by the client.
low priority on ISP routing?I don't think it's a bandwidth issue. I think it's a cpu bottleneck and the lag is a symptom of that. ICMP traffic is low priorityb and thats what is being used to check latency by the client.
Or, just do what everyone in the industry knows works well and implement both client side *and* server side prediction.
That way, you don't have to transfer *any* of the information you mentioned in real time, both the client and server predict what needs to happen next but the server never trusts data from the client (which has been ESO single largest flaw), instead the server makes the final choice and sends that to the client.
99% of the time, the client prediction will match the server choice (or be very close to it) and all is well in game land.
That's how many, many games before ESO have done it successfully. ESO should have been setup that way from the beginning but unfortunately whoever was in charge of the "netcode" had no real world experience building real time client/server systems for games.
And now they are either stuck with continuing to add band-aid patches to a flawed system or bite the bullet and redo it correctly.
PS: None of this is new, myself and others made ZOS aware of the shortcomings of their implementation all the way back in beta, months before PC launch.
There are only 2 ways to reduce the lag in game. Create a bigger pipeline or reduce what travels thru the current pipeline. Since creating a bigger pipeline probably involves overhauling the engine itself lets look at reducing the data that travels through the pipeline. Below I will list ways to do that, some which may stand alone, and some which may be built upon others. Each idea is singular at its heart and a stand alone independent idea, but could be used with others listed for greater effect.
Dots and Hots is where we start. Right now some Dots and Hots tick every 2 seconds, some tick every second, I think some tick every half second. Make all Hots and Dots tick every 2 seconds period, end of discussion. This alone will reduce the data transferred by any Dots and Hots that tick every half second by a factor of 4 and those that tick every second by a factor of 2. The ticks will need to be 2 times and 4 times stronger so that the dps or hps of these abilities in the end is the same, they just pulse much slower. This includes proctato and cheese.
Make Dots and Hots single target only. This will reduce the data transferred by a factor of however many targets that specific ability can hit, or on average does hit. Hots would be self only heals while Dots would only effect 1 single target. They may need to be increased in strength to accommodate the fact that they are only single target. Certain classes may need access to more or better Hots for self healing.
Give direct damage abilities cool downs. Spamables with a damage rating deemed appropriate for a spamable would get a 1 second cooldown. Heavier hitters could get a 2 second cooldown, or a 1 second cooldown and 1 second cast time. These would do more damage than spamables by a significant margin. Complete blasters that would do even more damage, but get a 3 second or more cool down. These can be single target or AoE but are not channeled nor over time abilities.
Heals, get rid of smart targeting. Make all AoE heals so that if you are within the radius you get the heal, if you are outside the radius you don't. All AoE heals are direct heals, no AoE Hot heals. Self heals can be HoT or a direct self heal. Again the strength of these heals may need to be adjusted and balanced.
All special effects that are part of all types of these Dots, HOts, DD, DH of the CC variety would also obey any of these above mentioned rules that were adopted. No over time CC, only single target CC or AoE off of AoE direct damage that doesn't reapply the CC after the initial hit.
Gonna stop there as I probably am already pissing too many people off, but will follow up later with light attack weaving and the effects of it on server performance. It is time to re-think the amount of data that is getting pushed through the pipeline and come up with creative ways to reduce it, while at the same time maintaining current DPS/HPS numbers by pushing fewer larger numbers through rather than more smaller numbers through.
There are only 2 ways to reduce the lag in game. Create a bigger pipeline or reduce what travels thru the current pipeline.
It is not that simple. Lag has gotten worse and better over the years. It has also been different. Guessing at the issue and coming up with a solution does not solve the problem and that is essentially what is happening here.
Organization of code greatly affects how programs perform and that is well after an engine or hardware. It makes a great difference in how the live data is handled.
Further, there have been changes to specific skills that have had determinate effects on the game performance in Cyrodiil.
It is great to think of What ifs. I think that is what lead Zos to test if removing CP improved performance. Unfortunately, we saw first hand it did not. But I am with Drazys on this. Zos clearly lacks the technical expertise or financial willingness to solve the issue. Otherwise it would have been solved by now even if it meant contracting some brain power to tackle the issue.
I'm guessing they don't do this because they do not want jerky or ugly animations to sometimes occur. What's funny is that it already does once you reach a certain lag threshold.Or, just do what everyone in the industry knows works well and implement both client side *and* server side prediction.
That way, you don't have to transfer *any* of the information you mentioned in real time, both the client and server predict what needs to happen next but the server never trusts data from the client (which has been ESO single largest flaw), instead the server makes the final choice and sends that to the client.
99% of the time, the client prediction will match the server choice (or be very close to it) and all is well in game land.
That's how many, many games before ESO have done it successfully. ESO should have been setup that way from the beginning but unfortunately whoever was in charge of the "netcode" had no real world experience building real time client/server systems for games.
And now they are either stuck with continuing to add band-aid patches to a flawed system or bite the bullet and redo it correctly.
PS: None of this is new, myself and others made ZOS aware of the shortcomings of their implementation all the way back in beta, months before PC launch.
If that's not the reason why, I can't see it unless the server is one that scales on demand and is not hosted at ZOS...Then it would make sense since it would cost more money to have a system like that always running on the server.
I'm guessing they don't do this because they do not want jerky or ugly animations to sometimes occur. What's funny is that it already does once you reach a certain lag threshold.Or, just do what everyone in the industry knows works well and implement both client side *and* server side prediction.
That way, you don't have to transfer *any* of the information you mentioned in real time, both the client and server predict what needs to happen next but the server never trusts data from the client (which has been ESO single largest flaw), instead the server makes the final choice and sends that to the client.
99% of the time, the client prediction will match the server choice (or be very close to it) and all is well in game land.
That's how many, many games before ESO have done it successfully. ESO should have been setup that way from the beginning but unfortunately whoever was in charge of the "netcode" had no real world experience building real time client/server systems for games.
And now they are either stuck with continuing to add band-aid patches to a flawed system or bite the bullet and redo it correctly.
PS: None of this is new, myself and others made ZOS aware of the shortcomings of their implementation all the way back in beta, months before PC launch.
If that's not the reason why, I can't see it unless the server is one that scales on demand and is not hosted at ZOS...Then it would make sense since it would cost more money to have a system like that always running on the server.
Yes, the only drawback of client/server prediction is that if/when both get out of sync the client has to adjust its wrong prediction and display what the server has decided to be the ground truth.
When that happens you get "rubber banding" or really jerky movement animations on the client.
But personally, i'd rather see some other player rubber banding every once in a while if that means i can have lag free game play while hundreds of other players are in my view.
throw money at infrastructure not deleting keystones to the gameI'm a firm believer that you can fix just about anything if you are willing to throw enough money at it.
I'm guessing they don't do this because they do not want jerky or ugly animations to sometimes occur. What's funny is that it already does once you reach a certain lag threshold.Or, just do what everyone in the industry knows works well and implement both client side *and* server side prediction.
That way, you don't have to transfer *any* of the information you mentioned in real time, both the client and server predict what needs to happen next but the server never trusts data from the client (which has been ESO single largest flaw), instead the server makes the final choice and sends that to the client.
99% of the time, the client prediction will match the server choice (or be very close to it) and all is well in game land.
That's how many, many games before ESO have done it successfully. ESO should have been setup that way from the beginning but unfortunately whoever was in charge of the "netcode" had no real world experience building real time client/server systems for games.
And now they are either stuck with continuing to add band-aid patches to a flawed system or bite the bullet and redo it correctly.
PS: None of this is new, myself and others made ZOS aware of the shortcomings of their implementation all the way back in beta, months before PC launch.
If that's not the reason why, I can't see it unless the server is one that scales on demand and is not hosted at ZOS...Then it would make sense since it would cost more money to have a system like that always running on the server.
Yes, the only drawback of client/server prediction is that if/when both get out of sync the client has to adjust its wrong prediction and display what the server has decided to be the ground truth.
When that happens you get "rubber banding" or really jerky movement animations on the client.
But personally, i'd rather see some other player rubber banding every once in a while if that means i can have lag free game play while hundreds of other players are in my view.
could be good
some stuff should be kept out of the scope of SP perhaps. guessing everything can be harmful.throw money at infrastructure not deleting keystones to the gameI'm a firm believer that you can fix just about anything if you are willing to throw enough money at it.
I agree. I had ESO on a bandwidth limited 3G connection when my landline was down. I buy 2GB at a time for that connection and the meter hardly moved at all, just a couple of megs for a gaming session. ESO uses hardly any bandwidth. The whole premise of the original post is very likely moot. Client and server have to constantly exchange data to track movement. Whether a DOT ticks every 1/2 second or two seconds seems pretty irrelevant in terms of network usage, as it's going to be an extra few bytes added to a packet that needs to be sent anyway.To be more clear. Based on what I see, the bottle neck is server side, not on your client.
This is not really a valid concern. If ZOS programmers have any brains at all, they will precompute mitigation, healing and damage parameters for each character. Their armor sets and CP can easily be rolled up into a precomputed matrix. Yes, there is additional stuff to check, for example the temporary boosts from Incap, armor procs, and so on. Complexity may be an issue, but I don't see that there needs to be a difference between CP and no CP performance. CP and armor sets remain fixed during combat, which means there is no reason why you can't precompute their cumulative effect.For each player you have to check the attackers weapon damage and Max stamina to come up with a base damage. That damage then gets boosted by several CP trees, each and additional calculation. Then you have to take the target and calculate their armor vs penetration of the attacker. Modify several more times for their CP. Check for minor and major protections... Oh wait, attack can have minor or major berserk plus the damage modifer from say incap and minor vulnerability. Of yea crit chance, crit damage modifiers...
Sure, you can check against dynamic buffs whenever an attack takes place. If a character has Major Resolve and gets attacked, the software can check whether the character has Major Resolve for each attack. On the other hand, the software might recompute a characters active stats every time a buff changes. That means they only have a separate computation for Major Resolve every 20 seconds, when that buff is taken or expires. Which method is more efficient and which they actually use, only ZOS can say.We have a system where buffs are refreshed at least a couple times a minutes and debuffs are plentiful and then of course that's a single attack. How many dots are happening on the server at a time each requiring all those calculations.
People have been barking up this tree forever and IMO that is wrong. CP are fixed during combat, which makes them easy to handle. What will have an effect on performance is the additional events generated by CP, such as Critical Leech healing, Unchained, and so on. Funnily enough though, you and everyone else who has made this point keeps talking about the way CP modify a characters stats. Only ZOS know which code is sub-ooptimal. It could be related to CP stat boosts, but there is no intrinsic reason for that.I think if they did a CP overhaul to simplify a lot of those calculations it would be a start.
There are only 2 ways to reduce the lag in game. Create a bigger pipeline or reduce what travels thru the current pipeline.
It is not that simple. Lag has gotten worse and better over the years. It has also been different. Guessing at the issue and coming up with a solution does not solve the problem and that is essentially what is happening here.
Organization of code greatly affects how programs perform and that is well after an engine or hardware. It makes a great difference in how the live data is handled.
Further, there have been changes to specific skills that have had determinate effects on the game performance in Cyrodiil.
It is great to think of What ifs. I think that is what lead Zos to test if removing CP improved performance. Unfortunately, we saw first hand it did not. But I am with Drazys on this. Zos clearly lacks the technical expertise or financial willingness to solve the issue. Otherwise it would have been solved by now even if it meant contracting some brain power to tackle the issue.
Correct, fixing the pipeline seems beyond them technically or beyond them for budgetary reasons. Fixing this would be a massive undertaking that they are not willing to endure, or they would have done it, or would be in the process doing it. There have been improvements, but they seem to be short lived or have a minor impact.
If you try to force 10 pounds of poo through a 1 pound tube this is what you get. I am conceding at this point that we are stuck with the 1 pound tube. The only logical thing to do in that instance is change the amount of poo. Any one of the above mentioned ideas will reduce that significantly. If the amount of data moving from server to client and client to server can be culled to 25% of what it currently is that is significant, and most likely in their budget as suggested above.
I'm a firm believer that you can fix just about anything if you are willing to throw enough money at it. However, the amount of money required to properly fix this seems to be beyond what they are committed to.
They did no CP tests in the CP campaign a while back, the lag was basically gone.
Everyone was melting in cold fire too.
They did no CP tests in the CP campaign a while back, the lag was basically gone.
Everyone was melting in cold fire too.
Here's as example using healing springs in an excessive amount for dramatic effect.
Let's say you have 10 players each casting 3 layers of springs. At the most extreme point you will have 30 layers of springs on the ground, pulsing 4 times each one second apart, with the ability to heal 180 players. Each pulse of each layer of springs has to figure out which 6 players it will heal and then heal them accordingly. That's a lot going on.
This could be changed one of two ways according to OP. It could be a self only hot which doesn't have to figure out who to heal pulses every 2 seconds for twice the amount of healing each pulse, healing only the 10 players that cast it. Or it could be changed to an AoE direct heal that heals every target within its radius one time for 4 times the healing power. It does have to figure out who to heal, but it is all inclusive, or all exclusive depending on who is within the radius. Both of these ways of the spell working require orders of magnitude less calculations by the server to perform the heals.