Interpolacja - Secret-Service

Transkrypt

Interpolacja - Secret-Service
Interpolacja
Przewodnik Lerp v2.3.4c
przetłumaczony przez nocny_napoleon
Co to jest interpolacja?
Interpolacja ma pomóc utrzymać grę płynną , nawet gdy występuje utrata pakietów lub
podczas oczekiwania pomiędzy pakietami. Przy użyciu interpolacji wartości 100 ms, stan gry
można zobaczyć (wszystkie pozycje gracza do obiektu) po upływie 0,1 sekundy:
Co to będzie oznaczać? A to że cl_interp 0,1, czyli to co widzisz będzie 100 ms za aktualnym
stanem gry, który otrzymałeś. Dodaj sobie do tego ping 50, a otrzymasz 150 ms opóźnienia. Na co interpolacja wpływa? Przeciętny gracz nie będzie bawił się ze zmianą wartości interpolacji, ale w pucharowej albo
turniejowej grze to może być bardzo ważne a także może zdecydować o zwycięstwie
ponieważ:
- decyduje to o "odbiciu" huntera/ jockeya a dokładnie o czasie w jakim należy to zrobić
- jak blisko lub jak daleko wydaje się być Ocalały kiedy chcesz go zaatakować (opiszę to
dokładniej w kolejnymm artykule: Długie ramiona Tanka)
- ile czasu potrzeba by zbić/deadstop przed językiem smokera / atakiem chargera /
uderzeniem
- ile poruszających obiektów dotrze do nas podczas utraty pakietów
Zasadniczo lerp może odgrywać wiele ważnych ról także w różnych sytuacjach podczas
użycia broni ręcznej. Większość graczy będzie korzystać z dostosowania ich lerpu od wartości
domyślnej. Należy pamiętać, że wartość lerp nie ma nic wspólnego z tym, czy faktycznie
tracisz pakiety, czy nie bo to zależy od stanu Twojej sieci. Interpolacja jest tylko do
zwalczania zniekształceń spowodowanych przez utratę pakietów i do niwelowania
oczekiwania między pakietami. A więc ustawienie interpolacji na 0 sprawi, że gra straci
płynność (a dokładnie wszystko co sterowane przez SI), ale to da najbardziej aktualny stan
gry (no oprócz opóźnienia spowodowanego pingiem), i zazwyczaj daje więcej czasu na
deadstop huntera, jockeya.
Jak powinienem ustawić moją interpolację? Generalnie chcesz aby lerp miał wartość niższą jak domyślnie 100 ms.Niektórzy ludzie
przełączają lerp przy zmianie zainfekowanej strony. Aktualnie organizatorzy lig i turniejów
opracowują zasady dotyczące zmian lerpa. Gdy będziesz ocalałym, będziesz chciał najniższą
wartość lerp. Wartość maksymalna u graczy zazwyczaj wynosi 67 ms, a najniższa to 0 ms.
Inne popularne ustawienia to: 10 ms, 16.7 ms, 20 ms, 33 ms, 38 ms, 40 ms. Generalnie wiele
z tych wartości jest zbędnych, a jedynie dokonują drobnych różnic w tym co widzisz na
ekranie i jak serwer oblicza Twoją pozycję i ataki. Dla zainfekowanych wyższe wartości lerp często mogą być przydatne. Ocalali zwykle uciekają
od SI . Zazwyczaj ocalały będzie upewniał się czy jest poza zasięgiem atakującego. Ale, jeśli
atakujący używa wysokiej interpolacji, ocalały zaczyna się poruszać za 100+ ms. Przy użyciu
Lerpa bardzo wysokiego, np 400/500 ms, ten stan znacznie się zaostrza. Dlatego wartości
Lerp są blokowane powyżej 100 ms. Zaleca się ustawić taki lerp, by po stronie zarażonych grało się komfortowo. Również atakując
lub robić szarże chargerem będzie znacznie trudniej mając wysoki lerp. Z wysokim lerpem
często będzie tak że chargerem przelecimy przez ocalałego ponieważ jego widoczna pozycja
będzie inna od tej na serwerze.
Twoją wartość interpolacji (lerp) ustala się według następującego wzoru opartego na cvars
klienta (Dalsza część ENG w razie pytań proszę o kontakt): Code: [Select]
min( max( cl_interp, cl_interp_ratio / cl_updaterate ), 0.5f )
To put this in english: Your cl_interp value is limited to a minimum value of cl_interp_ratio / cl_updaterate and a
maximum of 0.5 (500 ms), and is set by the cl_interp cvar value.
Note that for example cl_interp 0.04 results in 40 ms lerp.
When setting your lerp, a good idea is to set your cl_updaterate as high as possible, your
cl_interp_ratio as low as possible, and then your cl_interp to what you actually want. This will
minimize the value of the cl_interp_ratio/cl_updaterate-imposed limit and let you pick what you
want for interp.
For example, I use 16.7 lerp, and my autoexec contains the following
Code: [Select]
rate 30000
cl_cmdrate 100
cl_updaterate 100 cl_interp 0.0167
cl_interp_ratio -1 // actual value will clamp to the minimum value allowed by the current server
Normal servers allow 60 updaterate and a minimum interp ratio of 1. Confogl servers lock
updaterate to 30 and allow interp ratio 0. This kind of a setting covers both bases.
Note that as you can see from the code, it is normally also advised to increase your rate setting
to the L4D2 maximum of 30000, which tells the server that you can receive up to 30000 bytes/s
which every normal connection nowadays should be able to handle. I also like to keep my
cl_cmdrate value the same as my cl_updaterate, although due to engine limitations it
technically doesn't make a difference whether you use 30 or 100 cmdrate.
If you use this snippet, edit the value for cl_interp as you wish depending on which lerp you
want to use.
Note that on regular servers such as VALVe's official dedicated servers, the minimum lerp you
will be able to use is 16.7
So what lerp should I use?
If you are still unsure what lerp to use after reading the guide until here, I would recommend
you to stick with the 16.7 lerp for now. If you see too many jerky animations, increase it until
you feel comfortable with them. A lerp above 50 ms should give most users completely smooth
common infected animations.
Lerp on Net Graph
The source network graph will show your your lerp value somewhere in the middle. See
http://developer.valvesoftware.com/wiki/TF2_Network_Graph for picture.
This value is going to be your calculated final lerp value in most cases. i.e. this value will be the
calculated result of the min/max formula above. This can be useful in determining if your
interp-related cvars are set correctly.
The COLORS on the net graph are mostly useless to be honest. All they do is make people
misread the TF2 Network Graph article and spread stupid rumors like:
Quote from: Uninformed Moron
35 on Valve servers is orange, which is okay. That represents a warning of possible lost
packets. Yellow IS lost packets.
I learned all of this from word of mouth and decided to ignore all existing literature on the
subject.
Yellow Lerp: The server's framerate is such that its own internal update interval is less than
your interpolation time. Usually L4D2 servers calculate 30 frames per second, so, again,
anything below 33 ms will show up as yellow on a Valve Official/default dedicated server. Of
course, your interpolation value will still work just fine. It will just look yellow on network graph.
:|
Orange Lerp: Your interpolation value is set to less than 2 / updaterate. This condition can only
appear while the Yellow lerp condition is not triggered. This is also completely bullshit. It's
basically a warning that when you lose packets, you'll probably see entities jump around. The
value they use (2 / updaterate) Is not completely arbitrary. If you actually set your interpolation
value to 2 / cl_updaterate or above, you'll have 2 extra buffer packets in your interpolation
range in case any update packet ever gets lost. Again Orange lerp is all about "What if I lose packets?" It's only a warning that entities may
jump around if a packet is lost.
Neither yellow or orange lerp on network graph are indicators of packet loss or any other
network issues. If you have yellow lerp, asking the server admin to turn up the server framerate is a good idea.
In practice, neither of those conditions really matter at all.
Questions and Myths about lerp
Quote from: Random Player
Shouldn't I set my lerp so it's close to my ping?
No, lerp has nothing to do with ping. Lerp is merely for creating smooth animations.
The server knows about your current ping and always automatically corrects your hitboxes
when calculating hits server-side.
Quote from: Random Player
Won't my hitboxes be more inaccurate the higher my lerp is? I can even see the difference If I
enable the hitboxes!
No, the hitboxes you can see with sv_showhitboxes are the server-side hitboxes. When the
server calculates whether you hit a shot or not, it knows not only about your current ping but
also about your current lerp and moves the server-side hitboxes of other players back in time to
correct this offset.
Quote from: Random Player
Don't I need to time my deadstop differently depending on the ping or lerp of the target hunter?
Don't hunters with higher lerp screw me up?
No, the pounce hit detection from hunter and jockey as well as the charge hit detection are
different from the melee hit detection of scratches or tank punches. No matter what ping/lerp a
hunter, jockey or charger uses, you always have to time your skeet/deadstop/level/dodge
exactly the same. Your timing only depends on your own ping and lerp.
Quote from: Random Player
My Lerp is a funny color in net_graph! I'm losing packets! ABANDON SHIP! You broke my game
ProdigySim!
No. Lerp cannot cause packet loss. See above section on colors.
PLIK autostart.exe z lerpem 16ms wkrótce zostanie
zamieszczony w dziale DOWNLOAD
Secret [SS] Service http://secret0service.cba.pl/index.php?file=Sections&op=article&artid=2

Podobne dokumenty