First a few very important notes!

0) time flows from left to right.

1) Each image is a different set of settings (so take note if it's OSP / CPMA / QL and if TN is on / off).

2) On player 1's screen both he and player 2 are walking synchronous and in parallel. This does NOT mean that player 2's screen shows the same situation (it can't).

So for player 1 the following holds: "At time(X) both myself and my opponent are at Location(X)"

In reality (not drawn) this means that the server's time is ahaid of you and player 2's time is even further ahaid. But ignore that while trying to understand the netcode. I'm just covering my ass for when someone goes "OMFG YOU IDIOT YOU DIDN'T THINK ABOUT......". So to be short and in normal language this is what aiming feels like for player 1 as well as how dodging feels like for player 2. (While neglecting some details concerning offsets.)

3) the situation described is that player 1 fires an instant hit weapon @ player 2.

4) each "player timeline" represents both time and location. Both players start to (for player 1's pov) walk to the right at the same time.

5) The yellow vertical line is the timestamp which the client puts on his sent packet (is affected by tn). This line represents the data you have on your screen. So when you perform the action at Time(X) (= green dot) your screen is showing the data from Time(X+smth) smth depends on which image you're looking at. So in OSP it's 0, in QL it's also 0, in CPMA it's not 0, using TN it's -tn.

6) the blue vertical line is the location you're aiming at. If yellow and blue are 'the same line' (I've drawn them next to eachother while leaving pretty much no space in between them) it means that you're aiming exactly where you see the opponent.

If yellow and blue are not the same line it means that you have to "manually guess where he will go to" (osp).

7) all remarks are on the images.

8) I guess all of you will see why I keep saying that dodging in ql is utterly useless and how I cannot correctly respond to high ping lg +forward attacks.

9) Order of understanding wtf is going on:
Basic.jpg (rofl ;p)
Legend.jpg
OSP.jpg
OSPTN20.jpg
QLNetcode_basics.jpg
WEIRD.jpg (what imo it should be more like)

10) do note that I made this (entirely) in about an hour as that's about the time I had free for today. If I would *really* want to explain everything I'd need a lot longer and would prolly not use mspaint... ;)

11) QL / Q3 all also use something where your own movement is locally read as soon as you put the input command. So your own possition on your own pc gets updated well before the server does. I neglect that in the images because I can't draw it.


Basic


Legend


OSP


OSP with TN (notice that the yellow bar moved right and that the snapshots at the clients moved towards the left (compared to default OSP) OSP did not have the ability to xerp clients btw which means that when you ran out of data to interpolate all opponents would stop moving on your screen resulting in a horrible feeling of lag. (which is why people don't want it back....)


CPMA-netcode (with laghax and xerp) the main thing here is that xerp allows for (more) fluent use of timenudge and therefor had a much better aim feeling


QL-netcode (notice that blue and yellow vertical lines always overlap (at least at ping below 65 (not entirely sure if it's 60, 65, 70... it's around there)


Weird proposal (imo easiest way to fix netcode without having to alter the current code too much)


fun concept (low ping here would allow the computer to extrapolate the opponents possition to one further than the location on the server (aka you aim ahaid of the nmy on the server))



What stuff looks like ingame (details are ommitted so if you want to talk about technical details use the timelines)

Basic Ingame
The opponent walks from left to right. I've drawn in 4 lines with timestamps on em so at time 0 the center of the opponent is on the middle of that line.
At time 25 the center would be on the 2nd line.
50 the 3rd etc.
You want to hit the nmy in the center @ all images.


OSP Ingame
You aim the blue railgun infront of where you see the opponent.
Notice that where you have to aim is really closely related to the time that you (and therefor a similar pinging opponent) recieve confirmation about the shot. (result is that on the nmy's screen the shot will hit to the left of his model (your left)).


OSP TN -20 Ingame
You see the nmy within the yellow box and aim slightly ahaid of that. The shot is still aimed at the same place as it was in OSP TN0 but for your client it appears to be a lot closer. (I've assumed that OSP extrapolates fine... which it doesn't perhaps I should've called this CPMA laghax 0, xerp 1, tn -20)


QL Netcode Basics Ingame
You aim at the model.... where you see it. Time that it gets to the clients remains the same.
Article Page: 1