Fortress Forever

Fortress Forever (https://forums.fortress-forever.com/index.php)
-   General Discussion (https://forums.fortress-forever.com/forumdisplay.php?f=10)
-   -   Explain Interping to me (https://forums.fortress-forever.com/showthread.php?t=24412)

XPelargos 05-03-2014 02:26 AM

Explain Interping to me
 
Some say it's still around, some say it was patched.

I'm just curious what the cl_interp 1 actually does with the netcode.

k thx

FDA_Approved 05-03-2014 02:34 AM

It's cl_interpolate, cl_interp and cl_interpolate are two different commands. cl_interpolate 1, I guess, basicly removed any kind of lag compensation or smoothing on the player models, which made your game very choppy but showed you pretty much exactly where the hitbox is. I guess. I don't really fully understand it. But the results where pretty obvious when playing as or against a heavy. Potentially because the higher accuracy resulted in a more consistent dmg slowdown, which is why rodox could just about shoot you out of the air.

Apparently there's a combination of other commands that can achieve the same affect but one of them is broken in source 2006.

Idk though, I don't completely understand it.

FDA_Approved 05-03-2014 02:41 AM

It's also pretty controversial in the CS community, and I think it's cheat locked in most source games anymore. At least in tf2 css and csgo I'm pretty sure it is.

EDIT: I guess it's defaulted to 1 in csgo, and non-existent in tf2

the_cake 05-03-2014 03:00 AM

cl_interp 1 does nothing in sdk2006.
cl_interp_ratio sets interp time/delay as a ratio based on cl_updaterate
cl_interpolate turns interp off completely.

Interp:

Your computer generally renders frames a lot faster and more consistently than the server can send you gamestate updates. This makes your connection to the server and the server itself the bottleneck for fps, and not your hardware. It's especially important with say, 33 tick servers or servers with a poor connection to you. No one would get more than 33 fps (you would, but the frames > 33 would just be duplicates). To solve this problem, your game is delayed by a certain amount of time (specifically cl_interp_ratio/cl_updaterate). The engine now queues 2+ updates (however many it collects in the interp time) before it draws anything, guesses what comes in between the two updates (aka interpolates, hence interp), and can then render as many frames as you want. The downside to this is you delay the game slightly more (think of it as adding to your ping), and have to rely even more on lag compensation.

cl_interpolate 0 turns this functionality OFF (technically the guy interping is the only one not interping). It also turns lag compensation off. So you're trading slightly better latency (assuming cl_updaterate 66, and cl_interp_ratio 1, about 15ms) for having no lag compensation whatsoever.

Makes no sense amirite?

A theory: There was a bug in hl1 engine games that made hits register when they shouldn't when interp time was set very low. Old tfc players may remember Overkill, and the controversy surrounding him exploiting it in high level tfc tournaments. One of the cs 1.6 devs actually fixed it, and wrote a great article to go with it explaining how it was broken (which I wish I could find). Source had actually been worked on before hl1 was even released, my theory is the fork happened before the bug was fixed (02-03 iirc), and was never ported to source. You can't manually set interp time in source like you could in goldsrc, so unless you completely turn interp off (cl_interpolate 0), you would never know.

XPelargos 05-03-2014 03:35 AM

It makes no sense but you still got a helpful post rating from me.

AirTrek 05-03-2014 11:05 AM

In CS 1.6 (at least the version I play on, non-steam) if you set ex_interp 1, players will move smoother and you will be able to shoot them even when they've gone out of your sight (the hitboxes and models don't sync, but animations look smooth). If you set ex_interp 0.01 (which is used for LAN tournaments IIRC) other players' movements won't be as smooth (if you use that value while playing on the internet), they will look choppy, but it will be harder to kill someone because the hitboxes are more synced to the models.

It has also got something to do with refresh rates on your monitor, and fps, and latency, and the color of your boxers.

aleXtric 05-03-2014 06:06 PM

Quote:

Originally Posted by XPelargos (Post 503341)
It makes no sense but you still got a helpful post rating from me.

ROFL!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!

i nodded the entire time like it was making sense and going OHHH, AHHHH, OHHH in my head but to be honest WHAT THE FUCK DID HE JUST SAY?!

the_cake 05-03-2014 08:09 PM

Yea it's hard to explain, let me try again.

When you play any online game, the server sends you "updates," which are basically a single pieces of data telling you where all the "stuff" (other players, projectiles, sgs, whatever) are on the server at a single point in time. A fairly bad server will send you 33 of these updates every second, maybe less depending on your connection.

So if the server is only telling you where stuff is 33 times per second, how do you get more than 33 frames per second on your computer?

That's what interp does. It saves up more than one of these updates, then tries to guess what happened between the updates. So if an update says a player is at point A, and the next one says player is at point B, it will guess that in between those two updates the player was somewhere in between points A and B, and render that as a frame.

So with 3 updates, no interpolation, you would see:

update 1 from server=frame 1 on video card
update 2=frame 2
update 3=frame 3

With the same 3 updates, interpolation on (aka not interping), you would see

update 1=frame 1
(engine guesses what happens between updates 1 and 2)=frame 2
update 2=frame 3
(guesses between 2 and 3)=frame 4
update 3=frame 5
(guesses between 3 and 4)=frame 6

That's twice as many fps in the same amount of time. And it can guess as many times as it needs to between frames, so you could have 1000fps and 10 updates/second, although the amount of guessing would make it really inaccurate.

KubeDawg 05-03-2014 08:54 PM

So does that mean I should keep my FPS so that it is divisible by the tick rate for possibly more accurate gameplay? For example, 66 tick rate server should have 66, 132, 198, 264, 330 fps so it's always a whole number?

the_cake 05-03-2014 09:15 PM

The short answer is it shouldn't matter. But this whole discussion is based on how wonky source is, so who knows.

AirTrek 05-04-2014 11:12 AM

I get that interpolation is putting guessed frames between real frames, but can you please explain what I put in bold?

Quote:

Originally Posted by the_cake (Post 503344)

So with 3 updates, no interpolation, you would see:

...

With the same 3 updates, interpolation on (aka not interping), you would see

...

If interpolation is on, how is it not interping? :)

the_cake 05-04-2014 03:43 PM

In ff lingo, "interping" is hacking the game using an external program to allow the player to turn interpolation OFF.

Having interpolation ON is the opposite of "interping." Everyone has interpolation on, and unless you hack you can't turn it off. If someone is interping, they're turning interpolation off.

It's the opposite of what it actually is because because people don't really understand it, they just knew the command for exploiting it was ex_interp in tfc/goldsrc and cl_interpolate in FF/source, so they called it interp.

AirTrek 05-04-2014 04:16 PM

Quote:

Originally Posted by the_cake (Post 503348)
In ff lingo, "interping" is hacking the game using an external program to allow the player to turn interpolation OFF.

Having interpolation ON is the opposite of "interping." Everyone has interpolation on, and unless you hack you can't turn it off. If someone is interping, they're turning interpolation off.

It's the opposite of what it actually is because because people don't really understand it, they just knew the command for exploiting it was ex_interp in tfc/goldsrc and cl_interpolate in FF/source, so they called it interp.

Ah, so interping is slang for having interp turned off. Somewhat illogical :D, but that's team fortress. thx

rodox 05-05-2014 12:53 AM

I have a mouth but don't need to scream
 
It turned me from a slightly above average player to the most annoying in the game. rip

Dexter 05-06-2014 11:52 PM

need someone post a linear interpolation gif with two points, then think of that as frames from clients

XPelargos 05-08-2014 08:10 AM

This thread feels like going down the rabbit hole.

The etymology of interpolate is as follows:

1610s, "to alter or enlarge (a writing) by inserting new material,"
from Latin "interpolatus" past participle of interpolare "alter, freshen up, polish;" of writing, "falsify,"
from inter- "up" + polare, related to polire "to smoothe, polish."

Sense evolved in Latin from "refurbish," to "alter appearance of," to "falsify" (especially by adding new material).

ddm999 05-08-2014 02:45 PM

pff nerds

shoot gun and go fast is only thing you need to know

SuperDude 05-10-2014 01:00 AM

Largish is bad! - fortress forever points


All times are GMT. The time now is 10:07 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.