At the moment, the servers add about 50ms of ping to the player and select the FPS, and all this is due to the load on the servers. But just imagine that somehow it would be possible to do a few things that would remove this:
1) Make an anti-cheat that breaks into the system, such as in Faсeit;
2) Transfer calculations from the server to the clients;
3) Add multi-core processing to the game.
Of course, the path of the developers is clear, there are no (almost) cheaters.
But there are lags in PVP. What's worse?
etchedpixels wrote: »At the moment, the servers add about 50ms of ping to the player and select the FPS, and all this is due to the load on the servers. But just imagine that somehow it would be possible to do a few things that would remove this:
1) Make an anti-cheat that breaks into the system, such as in Faсeit;
2) Transfer calculations from the server to the clients;
3) Add multi-core processing to the game.
Of course, the path of the developers is clear, there are no (almost) cheaters.
But there are lags in PVP. What's worse?
This doesn't work. What you actually see in some modern games is
- Move all the core gameplay calculations and interactions onto the server
- Move all the rendering decisions (except maybe some cheat sensitive ones - e.g. hiding) onto the client
- Sometimes push some of the non combat related physics to the client
- Put various tricks in the client to hide lag (start the animation at the same time you tell the server you are acting, make the event notionally begin 50-100ms before it was received on the server etc). So for example you block, the monster hits. What actually happens is
- The server tells your client just in advance to begin an attack animation at time x
- You see it, press block and the animation starts
- The server considers whether you blocked in time on the basis you blocked 50-100ms before it was told
- The server sends you the relevant combat update to animate
- You see something that looks convincing
PVP stuff is harder as you can't do all the tricks.
There are good reasons for this:
- Anti-cheat is
a) mostly useless because there are so many ways to cheat
b) breaks regularly on things like security updates and anti-virus
c) requires vastly more tech support to respond rapidly to yet another fake ban due to anti-cheat bugs.
d) is going to continue to struggle more and more as computer security improves and the dirty tricks done to try
and detect stuff keep getting blocked or reported as suspicious/harmful
- It's very very hard to get clients to agree on something without a lot of expensive message passing (did that random event occur, did this proc, are you stunned right now) and a ton more. Without that you can't get the game to work. Basically you need to have a mostly common "truth", and that "truth" is easier and cheaper to compute in one place because actually it's not the computationally expensive bit especially now servers have a lot of CPU cores so your density per system is very high.
- If all the core logic is on the server it means you can hotfix exploits and many other bugs, as well as test the fixes rapidly with low deployment risk and without pushing 100MB updates twice a week.
- The same backend lets you enable everything from smartphones and consoles to high end desktop PC
ESO is already client multi-core by the way - always has been.
There are other things going on too - the next generation of cable modem standards explicitly target latency (unfortunately some of the design is also about being able to monetize latency guarantees) and the move in most first world countries to technology like FTTP (fibre to the premises) instead of stuff like ADSL means that a fair chunk of the remaining removable latency now is actually between the computer and wireless for people who don't use wired ethernet for gaming. The rest is then speed of light stuff - the need for an APAC server and so on.
In the UK my latency is solidly below 60ms, the spikes I see appear to mostly be on their servers not the network judging by network performance traces on the session.
Everything that can be abused, will be.
Every security measure that you can tinker with on your system, will be breached and exploited to hell and back.
One you identify a hole and patch it, a new one will be found.
That's just how it is.
It's a race that you can never win.