ping compensation?

  • Please make sure you are familiar with the forum rules. You can find them here: https://forums.tripwireinteractive.com/index.php?threads/forum-rules.2334636/
Status
Not open for further replies.

>F|R< CoMuNisTa

FNG / Fresh Meat
Dec 31, 2006
223
47
0
Ok, I know there are a few topics about this, but I felt tempted to ask again when there's a discussion on ro:ladder boards and someone said Ramm-Jagger himself has talked about implementing something similar in one of those interviews. Can you confirm it, Ramm?

I'd like HOS to have such a system as a server-side option. I know a lot of people whine about the 'being shot under cover' mostly becouse they don't realize that the server needs some time to calculate who was shot first and that they were NOT under cover when someone actually shot them, but anyway, I think ping compensation would represent a huge plus to the community if the game fails to be as magnifically popular as many are expecting it to be.

Where it concerns public play, if ping compensation was an option in roost I wouldn't be limited to 24/7 danzig on north american servers. Intercontinental clan matches would benefit from it as well. No matter how popular the game gets, many clans would still like the possibility to play overseas like the old days. Any improvement on this can't possibly do any bad.


ps. I posted this same topic in the roost section by mistake. Sorry. :(
 

Zetsumei

FNG / Fresh Meat
Nov 22, 2005
12,458
1,433
0
33
Falmouth UK
I do not think anything official in the terms of ping compensation has ever been mentioned not by the devs at least. If anything most threads about ping compensation here have been locked by the devs/moderators. Ping compensation could work well for intercontinental matches like USA vs EU or something. But there are some important things to take notice of.

Firstly, it should always be possible for a server to select to disable ping compensation or enable it. Especially when using a prediction based ping compensation system. One of the effects of ping compensation is that you could get killed by someone after you already went in a building or past a corner, although it is because someone did actually shoot you there this is logically not liked by everybody.

Secondly, ping compensation should never work client based. Aka the player shouldn't send to the server whether or not he hit someone as this leaves a big hole for hacks and cheats.

There are 2 types of server based ping compensation, prediction based and state based. Prediction based is probably simpler to implement but got some issues, where as state based might be tougher on resources but would give a near ideal form of ping compensation.

How does prediction based ping compensation work.
You look at the direction of the enemy and the velocity. So for instance a player is running forward with a speed of 3m/s. A player with a ping of 200ms (0,2s) is firing at him. With prediction based ping compensation the player is then moved backwards with an amount of 0.2*3 = 0.6 meters and the movement animation is then played back by 0.2 second so the legs are somewhat in the correct position.

The issue with this is that the higher the ping the more incorrect this system is, as it must guess your previous state further back in time. And that changes in velocity and direction (aka accelerations) will make the prediction less accurate as well. However the player experience for players with relatively high amounts of pings of say 100-200ms will still be better using this prediction system than simply playing with those higher pings. Above 200ms the prediction will often become detrimental due to becoming too inaccurate.

State based ping compensation
This method is perhaps a bit more difficult to explain. A server runs at a tick rate, every tick the server does all the calculations for all the players and checks what bullets have been fired and whether people have been shot.

The default tickrate in UE3 and probably hos is 30 ticks per second. This means that one tick lasts about 1000/30 = 33,3 ms. Now imagine that for the last 10 ticks the server saves every positional state of the hit cylinder of every player. So this means positionable data of the player and the exact frames of the animations the player is running.This means a server knows exactly where every player was for the last 10 ticks or 333ms. Meaning that a player of 200ms firing at someone would get the server to look 200/33 = 6 ticks back in time. And place a player 100% exactly where he was for the server at 200ms ago (unreal engine generally doesn't do interpolation).

The advantage of this type of ping compensation is that the system is perfectly able to look back in time even for players with really high pings as long as the player got a ping lower than in this case 333ms (the duration for which states in the past time are saved). This still works at high ping because no backwards prediction is made where errors can occur, but rather that a player being shot at is placed at an exact spot he was in previous time (as those exact spots are temporarily saved).

Especially as the UE3 netcode is quite good and players with 333ms do not necessarily get unplayable packet loss. Meaning that players with a solid connection but just have a long ping delay could get a great experience on servers further away without compromising other players if there would be a usage of state based ping compensation.

Conclusion
Having ping compensation would be nice as the Unreal net code is good enough that players can actually play pretty well with a ping up to 350ms. But that the actual ping delay becomes a big issue in being able to enjoy the gameplay at that ping.

By using a state server based ping compensation model, there won't be increasing errors the bigger someone's ping is. But the server will look up where someone was exactly a short while ago.

Note:
The ping displayed in UE3 engine is not purely the net ping, but takes into account for instance how long a server takes to calculate the different ticks.

The ping in UE engines shows pretty accurately how long it takes for the effect of someone firing on his computer to how long it takes the server to register that someone fired. And that together with the good general netcode is exactly the reason why ping compensation would be beneficial for people playing intercontinentally.
 
Last edited:

RobfromEssex

FNG / Fresh Meat
Reading that other thread and seeing Cod2 mentioned a bit, I can verify after 4000+hrs playing that ping compensation is really annoying, Stick to servers as close as you can find, I genuinely can't fathom why so many people play on servers so far away from them. Is this just a lack of understanding of what ping is and does to affect your game experience ? :)
 

Zetsumei

FNG / Fresh Meat
Nov 22, 2005
12,458
1,433
0
33
Falmouth UK
I have to agree, If someone really is suffering from a bad ping and has no servers that they can get a decent ping on, Cant they just start their own server ? Problem solved xD

In a lot of cases finding a server with low ping is an easy task. In those cases ping compensation isn't needed.

However for some people that option simply doesn't exist. There are people playing at remote locations all over the world with bad connections in areas where there simply aren't enough people to fill servers in those areas. Or some people are behind a bad college networks that impose a big delay upon people.

Some clans as well just like to play against clans in different continents beside their own like Americans vs Europeans. its for those people that ping compensation would be a nice option to have. Or perhaps playing with family/friends overseas.

Its for those people that having ping compensation would be nice to have. If a good form of ping compensation would be implemented like state based ping compensation it could connect players, friends and family over the world.

The unreal engine got a strong and good net code, which is exactly why ping compensation could become a great asset for some of the minorities in the community. The issue for them isn't so much obtaining or paying for a server, as it is that you simply want to play together with other people.

Reading that other thread and seeing Cod2 mentioned a bit, I can verify after 4000+hrs playing that ping compensation is really annoying, Stick to servers as close as you can find, I genuinely can't fathom why so many people play on servers so far away from them. Is this just a lack of understanding of what ping is and does to affect your game experience ? :)

Bad ping is generally not a choice as I sated above. There are loads of reasons why someone would want to play on a server far from home, or hasn't got any option.

Most grief from lag compensation came from client side lag compensation (exploits cheats) and prediction based lag compensation (inaccuracies in the prediction). But most issues are solved by state based lag compensation. Because there are many different ways of how to implement lag compensation, and thus many ways how to implement it incorrectly, makes it easy to find bad examples. Which is why I wrote that overview in my first post in this thread, to give a bit of an insight on the matter.

Lag compensation should always be optional for servers, as for low ping situations it frankly isn't needed especially with the strength of the UE net-code. And that some people simply do not like it if they get retroactively killed. Next to that ping compensation would always take up some resources from the server.

But for others that cannot play at low ping servers state based ping compensation could really make the game more enjoyable for the high pingers without sacrificing the low pingers.


---------------

Summary:
Playing with a high ping is not always a choice of players, ping compensation would be there for those players that for some reason need to play at servers far from home. Of course ping compensation should always remain optional for servers.

There are loads of bad showcases of implementations of various types of ping compensation (especially in older games), but this doesn't make all implementation methods automatically flawed.
 
Last edited:

RobfromEssex

FNG / Fresh Meat
I do agree the option wouldn't be a bad idea but I think the argument for not having it, has almost been brought on by RO community itself.
Feeling the need to have such a high level of realism and authenticity almost forces this game to be played with a low ping without using ping compensation versus other games, Thats just the feeling I get though :confused:
 

Zetsumei

FNG / Fresh Meat
Nov 22, 2005
12,458
1,433
0
33
Falmouth UK
Yet in the same sense that could be said about graphical settings ;). Ideally everybody would play the game at the highest settings in a LAN like situation, sadly for most people this won't be the case. Luckily the Unreal Engine 3 got a nice and strong net code, and luckily it runs pretty well on older machines.

In my personal opinion I think that people just had way too many bad experiences with bad implementations of ping compensation, making most people automatically reluctant to the mere thought of having it.

I'm positive towards ping compensation, especially as state based ping compensation doesn't alienate low ping players and pretty much only makes things more even for high ping players. From the players side there isn't really any disadvantage to it beside taking up more server power (and dying 0.2s too late if a high pinger shoots you).

In coop games where people host on their own computer (and bad internet connection) ping compensation would be a great asset to have as well. I think a lot of people would be pleased by having it optionally available.
 
Last edited:
Status
Not open for further replies.