Ex_interpNeko “magično” podešavanje za koje mnogi imaju stav kako treba podesiti, ali skoro niko nema objašnjenje.
Pa evo i objašnjenja…
ex_interp komanda određuje koliko će vaš cs da “interpolira”, odnosno, kad će da krene da “ekstrapolira”.
Da se vratimo na server side i client side – ono što vi vidite na ekranu, nije isto kao ono što server “vidi”.
S obzirom na tu razliku, vaš CS radi predviđanja gde se ko nalazi.
Odnosno, na osnovu poslednjeg primljenog paketa i onog pre njega, CS predviđa trenutnu poziciju, jer “zna” da postoji kašnjenje u odnosu na server.
Kad ne bi bilo toga, sve na ekranu bi vam se dešavalo “iseckano”, odnosno, sve bi se pomeralo u skladu sa primljenim paketima. Ovako, vama je slika tečna, ali postoji nesklad između onoga što vi vidite na ekranu, i onog što se u istom trenutku dešava na serveru.
Da probamo slikovito:

Grubo nacrtano i rečeno, neka se igrač kretao po crnom krugu, a ćoškovi crvenog mnogougla nek predstavljaju pristigle pakete. CS na osnovu svaka dva pristigla paketa (uzastopni uglovi) pretpostavlja gde se igrač nalazi izmedju njih (kružna linija). Ako predviđa pravom linijom, to znaci da će u CS-u sem u trenucima kad je paket primljen uvek prikazivati samo gde se igrač otprilike nalazi i prikazivaće vam njegovu kretnju kao crveni mnogougao umesto kruga – “seckavo” a ne “tečno”.
Da bi CS pretpostavljao gde se nalazi igrač potrebno je da ima dva paketa, trenutni i prethodni i između ta dva paketa CS interpolira kretanje. Što je veće vreme interpolacije (ex_interp), CS će pokazivati starije pozicije igrača. CS će na pakete čekati maksimum toliko vremena pre nego što krene da ekstrapolira... Za razliku od interpolacije koja ne pretpostavlja toliko loše gde se igrač nalazi, ekstrapolacija se vrši na osnovu prethodnog paketa (u smislu ako se igrač kretao u nekom pravcu, pa valjda se i dalje kreće). Na kraju kad istekne vreme i za ekstrapolaciju igrač laguje, tj. vidi se na jednoj poziciji, a onda skoči na neku sledeću.
Drastičan primer ekstrapolacije ste najbolje mogli da osetite kad server “zabode” na sekund – vi se krećete u nekom pravcu, onda nešto zabode, i buvalno vas vrati unazad.
Šta se tu u stvari desilo:
Vi se krećete
Prestaju da stižu paketi
Interpolacija radi onoliko koliko vam je podešen ex_interp
Po isteku, kreće ekstrapolacija vašeg CS-a po kojoj vi i dalje idete u istom pravcu
Konačno stigne novi paket (sa informacijom koja je zastarela u odnosu na ekstrapoliranu sliku, ali je informacija sa servera “starija” od one na vašem računaru)
CS vas vraća na poziciju koju server ima zabeleženu kao poslednju.
Da probam ponovo, samo malo manje tehički - u igri se računa samo ono što server zabeleži. Tj. ono što igrač vidi na ekranu nije uvek isto ono što se desilo na serveru - igranje na internetu je po prirodi takvo jer postoji kašnjenje u obradi podataka na serveru u odnosu na ono što igrač vidi kod sebe na ekranu.
Drastičan primer ovoga ste najbolje mogli da osetite kad server “zabode” na sekund – vi se krećete u nekom pravcu, onda nešto zabode, i buvalno vas vrati unazad. Ono što se desilo je da je nakratko bila prekinuta komunikacija između vašeg kompa i servera. Komp je "predviđao" šta će se desiti, a kad je ponovo uspostavljena komunikacija sa serverom, server vas je vratio tamo gde ste na serveru bili prema poslednim primljenim informacijama.
U suštini, to se stalno dešava - stalno postoji malo kašnjenje koje u milisekundama možete da vidite na "scoreboardu" kad stisnete tab.
Ta brojka koja se pokazuje na scoreboardu (pod uslovom da nije instaliran pingfaker) je podatak koliko vremena je potrebno da paket stigne od vašeg kompa do servera, i da bude "obrađen" (nije isto što i ping - ping je samo brzina potrebna da paket stigne do i od servera, bez obrade)
Kad ne bi bilo ex_interp komande, sve kretnje na vašem računaru bi bile iseckane u skladu sa paketima koji pristižu, ali ova komanda dozvoljava da vaš računar na osnovu ranije primljenih paketa predviđa šta će se desiti, i na taj način pravi tečnu sliku koju će pri dobijanju svežih paketa korigovati prema potrebi.
Ex_interp komanda upravlja "predviđanjem" između pristiglih paketa - vaš računar za predviđanje dešavanja uzima sve starije pakete što je veći ex_interp.
U praksi, to znači da, što je veći ex_interp, to je slika na vašem računaru manje precizna od onog što se stvarno na serveru dešava.
Ovde ping (samim tim i latency) igra veliku ulogu - što je manji ping (brže pristižu paketi) to je manji uticaj ex_interpa.
Pa, da probam i malo drugačije - to što vi na ekranu vidite da je neko otišao iza zida, a vi ga ipak pogodili u glavu, ne znači da ste vi zbog ex_interpa pogodili nekog iza ćoška, već da taj neko nije ni bio iza ćoška, ali je vama zbog VAŠEG ex_interpa VAŠ komp to prikazao, a realno, na serveru, on je bio ispred ćoška, i server je to normalno registrovao kao pogodak, jer na serveru ne postoji ex_interp već samo "suva obrada" pristiglih podataka.
Ili drugačije - ne može MOJ hitbox da kasni na serveru zbog MOG ex_interpa, već nečiji drugi hitbox kod mene na ekranu može da bude prikazan na pogrešnom mestu zbog mog ex_interpa.
A na serveru (jedino merodavno mesto) je sve isto bez obzira na pojedinačna podešavanja ex_interpa.
Naravno, to je drastičan, i relativno redak slučaj, ali se manji primeri toga dešavaju stalno.
U svakom slučaju, interpolaciju, a pogotovo ekstrapolaciju treba svesti na minimum.