Czym jest Tickrate, Interp, Rate, LOSS, CHOKE i VAR

1

W tym wpisie zajmiemy się NETCODEM w CS:GO. Jak działa tickrate, czym jest interp, jak ustawić rate, czym jest VAR, SV, LOSS, CHOKE i jak potencjalnie zmniejszyć lagi w CS:GO.

TICKRATE

Tickrate czyli częstotliwość przesyłanych pakietów między klientem a serwerem. Od tickrate zależy jak płynnie będą się poruszały modele graczy i jak szybko będą przesyłane wszystkie dane między nami a serwerem.

csgo-tickrate

 

Serwery 64 tickowe przesyłają dane między klientem a serwerem 64 razy na sekundę. Serwery 128 tickowe przesyłają dane 128 razy na sekundę. Co to znaczy? pakiety na serwerze 128 tickowym są przesyłane dwa razy częściej niż na serwerze 64, dzięki czemu granie na serwerze jest znacznie płynniejsze, bo dane są przesyłane znacznie częściej. To co można jeszcze zaobserwować grając na serwerze 128 tickowym to to, że granaty inaczej lecą, trochę inaczej się strzela jest też nico inny movement - szczególnie można to zaobserwować robiąc Bunnyhop.

 

Od tickrate zależą dwie komendy - cl_updaterate oraz cl_cmdrate są to komendy klienta, które zazwyczaj są wymuszane przez serwer. Grając na serwerze z 64 tick, te komendy automatycznie ustawią się na 64. Z kolei jeśli gramy na serwerze 128 tickrate komendy powinny ustawić się na 128.

To że serwer pokazuje 128 tickrate nie znaczy, że tyle ma - niektóre serwery mogą mieć 128 tickrate, będąc niestabilnymi  w związku z tym, tickrate będzie niestabilny - pokazuje to SV i VAR na dole net graph.

csgo-tickrate-64-128

INTERPOLACJA

Interpolacja czyli tak zwany interp - wypełnia on lukę między przesyłanymi pakietami. Odpowiada za animacje postaci. Gdyby Interpolacji nie było, animacje postaci byłby odświeżane co 7 lub 15 milisekund zależnie od tickrate serwera, co by było niewystarczające.

Opóźnienia

Dzięki komendzie cl_interp_ratio możemy "cofnąć się w czasie" i renderować jeden lub dwa ticki do tyłu - dzięki temu animacje w CS:GO są płynne.

CL_INTERP_RATIO 1
64 tick = 15.625ms
128 tick = 7.8ms

CL_INTERP_RATIO 2
64 tick = 31.25ms
128 tick = 15.6ms

Ustawienia Komend

cl_interp - Ta komenda powinna być zawsze ustawiona na 0 dzięki czemu wartość tej komendy będzie zawsze przystosowana do serwera. Komenda cl_interp wyznacza w milisekunda cofanie się w czasie jeśli chodzi o renderowanie ticków które dostajemy od serwera. Nie wiesz o co chodzi? sprawdź film na początku tego wpisu - tam wyjaśniłem jak to działa.

cl_interp_ratio - Ta komenda ustala w ilu tickach cofamy się w czasie. Komendę możemy ustawić na 1 lub 2. Jeśli ustawimy komendę na 1 gra będzie nam renderowała jeden tick do tyłu, z kolei ustawiając 2 gra będzie nam renderowała 2 ticki do tyłu. Ustawiając na 1 ustalamy najmniejsze możliwe opóźnienie, bo wtedy opóźnienie będzie wynosiło tylko 1 tick, aczkolwiek ustawiając komendę na 1 wyłączamy protekcje zgubionych pakietów. Bezpieczniejszą opcją będzie ustawienie tej komendy na 2. Aczkolwiek jeśli masz dobry internet możesz spokojnie ustawić na 1 - jeśli zauważysz zgubione pakiety, wróć na wartość 2.

RATE

Rate czyli komenda, która determinuje jaką maksymalną wartość bajtów możemy pobierać od serwera w przeciągu jednej sekundy. Teoretycznie czym więcej tym lepiej, gdyż wtedy będziemy od serwera otrzymywać bardziej dokładne dane o pozycji graczach, co robią itd. aczkolwiek jeśli mamy słaby, niestabilny internet i ustawimy tę komendę zbyt wysoko, zaczną pojawiać się zgubione pakiety. Niżej masz opisane jaką powinieneś ustawić wartość komendy rate względem Twojego połączenia internetowego. Prędkość swojego internetu możesz sprawdzić na dowolnym speed-teście. Pamiętaj, że niżej podane są wartości Megabit nie Megabyte. Megabite - to co ci wyskakuje w speedtest. Megabyte - to z jaką prędkością pobierasz dane. Jeśli doświadczasz zgubione pakiety, powinieneś ustawić niższą wartość. Komendę tę ustawiasz w konsoli albo w swoim configu. Tutaj znajdziesz poradnik jak zrobić przejrzysty config w CS:GO.

  • .5 Mbps - rate 62500
  • 1.0 Mbps - rate 125000
  • 1.5 Mbps - rate 187500
  • 1.57 Mbps - rate 196608 (Standardowa wartość)
  • 2.0 Mbps - rate 250000
  • 2.5 Mbps - rate 312500
  • 3.0 Mbps - rate 375000
  • 3.5 Mbps - rate 437500
  • 4.0 Mbps - rate 500000
  • 4.5 Mbps - rate 562500
  • 5.0 Mbps - rate 625000
  • 5.5 Mbps - rate 687500
  • 6.0 Mbps - rate 750000
  • 6.2 Mbps - rate 786432 (Maksymalna wartość)

CZYM JEST VAR

Zacznijmy sobie od tego, że są dwa VAR'y - VAR serwera oraz VAR klienta.

csgo-sv-var

Wyżej podkreślony VAR i SV jest serwerowy i oznacza, że serwer nie radzi sobie z przesyłem danych i nic z tym nie możemy zrobić. Problemem tego może być np. zbyt duża ilość graczy, źle zoptymalizowana mapa, pluginy które mocno obciążają serwer. Jeśli serwer ma duże skoki SV i VAR nas również będzie lagowało ponieważ serwer nie jest w stanie w odpowiednim czasie przesłać do nas danych odnośnie innych osób na serwerze, czy też po prostu nie będzie potrafił odebrać naszych pakietów. Jak to wygląda możesz zobaczyć na filmie, który jest na początku tego wpisu.

Niektóre serwery po prostu są słabe, stoją na słabej maszynie, która nie potrafi obsłużyć większej ilości osób (Pozdrawiam pewien hosting na literkę G na którym VAR podskakiwał powyżej 10 przy mniej niż 10 graczach :D) Czasem też serwer nie potrafi obsłużyć danej mapy, która jest słabo zoptymalizowana. Chodzi mi tutaj o mapy tworzone przez społeczność. Wbrew pozorom mapy od Valve są dobrze zoptymalizowane, przynajmniej porównując je do niektórych map społeczności.

Ostatnio testowaliśmy nową mapę na mój Turniej Deathrunners która ma dużo elementów poruszających się, na serwerze było też ponad 40 graczy. Serwer mimo dobrej maszyny nie wyrabiał przy takiej ilości graczy + dużo poruszających się elementów zabijało maszynę. Jeśli mapa ma dużo modeli, również będą występować wysokie wartości SV i VAR, brak mgły przy dużej mapie również - hg_katana jest tego przykładem. (Mała lekcja dla osób tworzących mapy : P)

Tak więc - czasem jest to po prostu wina niestabilnego serwera oraz słabej mapy i nic z tym nie zrobicie, ale czasem błąd dotyczy po prostu nas i do tego teraz przechodzimy.

Z kolei VAR przy ilości FPS jest varem klienta, czyli naszym i na niego powinniśmy zwracać szczególną uwagę.
Wskazuje on naszą stabilność z serwerem, kiedy nasz komputer jest przeciążony VAR zaczyna podskakiwać wskazując naszą niestabilność. W momencie kiedy podskakuje ci VAR najprawdopodobniej będzie ci podskakiwał także LOSS i CHOKE.

CZYM JEST LOSS I CHOKE

LOSS, CHOKE oraz VAR podskakuje wtedy kiedy mamy przeciążone łącze bądź też komputer, jak kilka sposób na to jak potencjalnie temu zapobiec.

Jeśli zauważacie jakieś lagi podczas gry, mimo dobrego pingu wpiszcie w konsole komendę net_graph 1 i sprawdźcie czy czasem VAR, LOSS oraz CHOKE nie podskakuje do góry (ten obok FPS) i czy LOSS oraz CHOKE również nie podskakuje.

LOSS wskazuje pakiety, które nie zostały wysłane do serwera. Jeśli Twoje FPS są wysokie czyli np. ponad 130 to znaczy, że problem leży w Twoim internecie. Jeśli z kolei masz mało FPS to zapewne jest to kwestia obciążonego komputera - niżej znajdziesz jak go możesz odciążyć.

CHOKE wartość tej opcji w net graph mówi nam, że pakiety które wysłaliśmy nie zostały odebrane przez serwer. Wina może być Twoja bądź też serwera. Sprawdź czy przy okazji SV i VAR na dole netgraph nie podskakuje. Powiedziałbym, że na 90% jest to wina Twojego komputera, który nie potrafi przekalkulować wszystkich ticków - któryś z developerów CS:GO napisał o tym na reddicie. Jeśli grasz na serwerze 128 tickrate mając słaby komputer, który nie potrafi przekalkulować wszystkich pakietów, również będziesz miał lagi.

CO MOŻE POWODOWAĆ WYSOKI VAR, LOSS oraz CHOKE

Powodów przez które mamy podwyższone te wartości jest mnóstwo, najczęstsze z nich opiszę poniżej, a jak je naprawić znajdziecie jeszcze niżej.

Jak napisałem wyżej, VAR są wyznacznikiem naszej stabilności z serwerem. Niestabilność powodują głównie - Przeciążony komputer oraz Internet.

CO MOŻE POMÓC Z LOSS, CHOKE i VAR

Ustawienie komend rate na standardową wartość
Błędne ustawienia rate oraz interpu mogą powodować zgubione pakiety - jest to pierwsza rzecz którą bym sprawdził. Zrobiłem kiedyś poradnik o komendach CS:GO, gdzie powiedziałem, że wyższe ustawienia tych komend będą powodować lepsze połączenie z serwerem - Jest to oczywiście prawdą, lecz w przypadku słabego połączenia z internetem wyższe wartości komend mogą zabić nasze połączenie z danym serwerem, nasz CS:GO będzie próbował pobrać większe zasoby internetu niż może.  Ustaw te komendy w swoim configu, są to domyśle ustawienia komend oraz relatywnie niskie.
Jeśli nie wiesz jak korzystać z configu oraz jak zrobić plik autoexec sprawdź ten wpis - Poradnik - Jak zrobić Config

rate 196608 // możesz spróbować także niższą wartość Tabelka wartości
cl_cmdrate 64
cl_updaterate 64
cl_interp_ratio 2
cl_interp 0

Komendy ustalasz w konsoli albo w swoim configu. Tutaj znajdziesz poradnik jak zrobić przejrzysty config do CS:GO.

Mała ilość FPS? Zwiększ je!
Jeśli twój komputer jest mocno przeciążony i masz mało FPS również to przyczyni się do gubienia pakietów i powodowania dużego loss oraz choke w net_graph. Zadbaj, aby Twój komputer nie był przeciążony wyłączając zbędne programy i próbując zwiększyć FPS. Zrobiłem o tym poradnik - Jak zwiększyć FPS w CS:GO

Restart routera
Wyczytałem, że niektórym osobom po prostu pomógł sam restart routera. Give it a shot!

Obciążenie łącza
Całkiem możliwe, że Twoje łącze jest po prostu niestabilne bądź przeciążone, brat, siostra, albo sąsiad za płotem/ściana może się do tego przyczyniać. Co już z tym zrobisz należy do ciebie =)

Sprawdzenie spójności plików CS:GO
Sprawdzenie spójności plików gry sprawdzi czy z plikami CS:GO jest wszystko w porządku. Jeśli coś jest nie tak - pobierze je na nowo, które będą w pełni aktualne i "czyste" Całkiem możliwe, że niektóre pliki masz niekatulane.

Reset Configu oraz Ustawień Wideo
Całkiem możliwe, że problem leży w twoim configu który źle skonfigurowałeś bądź w ustawieniach wideo.

Aby zresetować cały config wraz z ustawieniami Wideo skasuj cały folder \cfg\ z głównego folderu gry - gra pobierze cały config na nowo po jej włączeniu. W razie czego zrób kopie całego folderu przed jego usunięciem.

Całkowita reinstalacja CS:GO
Jeśli powyższe kroki nie pomogą możesz spróbować zrobić reinstalacje całej gry.

Najpierw usuń pliki gry w Steam a potem całkowicie skasuj folder Counter-Strike Global Offensive z folderu \common\ Po tym możesz pobrać na nowo CS:GO ze Steam.

Aktualizacja sterowników karty graficznej oraz dźwiękowej
Świeże sterowniki karty graficznej zawsze mogą pomóc. Dlaczego karta dźwiękowa? Większość osób ma przestarzały sterownik dźwiękowy, bo nikt nigdy na to nie zwraca uwagi, stare sterowniki dźwiękowe są słabo zoptymalizowane i mogą fatalnie wpływać na nasz komputer. Dodam jeszcze, że silnik Source na którym chodzi CS:GO strasznie słabo radzi sobie z dźwiękiem. Tak więc warto sprawdzić czy nasz sterownik dźwiękowy czasem nie jest np. z 2009 jak mój jeszcze 2 lata temu 😀

Usunięcie -high z parametrów startowych
Niektórym ta komenda pomaga w zwiększeniu FPS i niestety wielu osobom również powoduje wzrost niestabilności. Jeśli masz te komendę w swoich parametrach startowych usuń ją i sprawdź jaki to przyniesie skutek. Znam parę osób które przez tę komendę miało spore problemy z CS:GO. Dodam jeszcze, że w niektórych przypadkach ta komenda od jakiegoś czasu powoduje dziwne działanie myszki w grze.

Dopisanie +mat_queue_mode 2 do parametrów startowych
Ta komenda przypisze wszystkie rdzenie twojego procesora dla CS:GO również może to pomóc z gubieniem pakietów. Jeśli przyniesie to przeciwny skutek - usuń ją z parametrów startowych.
Wartość tej komendy również możesz zmienić u ustawieniach wideo - Plik video.txt w folderze \cfg\ który znajduje się w głównym folderze gry. Standardowa wartość tej komendy to -1

O parametrach startowych również zrobiłem poradnik znajdziesz go tutaj - CS:GO Poradnik Parametry Statowe

Całkowite usunięcie parametrów startowych
Całkiem możliwe, że nawpisywałeś dużo zbędnych parametrów startowych, które po prostu powodują słabe działanie CS:GO. Skasuj je wszystkie i sprawdź jaki to przyniesie skutek.

Zwiększając swoje FPS - Poradnik jak zwiększyć FPS
Jeśli twoje FPS są niestabilne lub też są niższe niż 130 SV i VAR zawsze będzie skakać. Możesz skorzystać z mojego poradnika w którym opisałem jak możesz zwiększyć swoje FPS w CS:GO
Wyłącz programy w tle które powodują spadki FPS lub które wykorzystują sporą ilość internetu - czasami może to być nawet Skype czy TeamSpeak.
Pamiętaj, aby podczas gry zawsze mieć czysty system, nie chcesz mieć włączonych programów które pobierają duże zasoby procesora czy też internetu.
Jak napisałem wyżej, CS:GO słabo sobie radzi kiedy wysyłamy swój internet do wielu źródeł, TeamSpeak czy też Skype potrafi zabrać sporo naszego internetu. Jeśli korzystasz ze Skype podczas gry koniecznie przejdź na TeamSpeak - Skype zabiera jeszcze więcej zasobów komputera oraz internetu niż TeamSpeak. Jeśli z kolei korzystasz z TeamSpeak i przez to masz lagi, jedynym rozwiązaniem jest przejście na rozmowę głosową Steam - wiem, jest tam słaba jakość i generalnie nie działa wyśmienicie, ale za to zabiera to najmniej internetu i procesora. Ewentualnie zostaje jeszcze komunikacja w grze.

Zaprzestanie korzystania z WiFi
Korzystanie z WiFi = Słabe połączenie z internetem. CS:GO wymaga dobrego połączenia internetowego. Kiedy połączenie z internetem jest słabe pakiety się gubią. Znam osoby które miały z tym problem.

Tryb oszczędzania baterii (Laptopy)
Osoby korzystające z laptopów nie powinny grać z trybem oszczędzania baterii - zmniejszy to FPS przez co zwiększy się niestabilność z serwerem. Graj zawsze bez oszczędzania baterii mając podłączony laptop do zasilania.

Synchronizacja pionowa (Laptopy)
Naprawić ten błąd również pomaga ustawienie FPS na 60 komendą fps_max 60 oraz włączenie synchronizacji pionowej w ustawieniach karty graficznej. Jeśli nie grasz na laptopie i masz dużą ilość FPS nie baw się synchronizacją - zawsze chcesz mieć ją wyłączoną.

Przełączenie słuchawek do zintegrowanej karty dźwiękowej
Gdzieś kiedyś wyczytałem, że ktoś przełączył swoje słuchawki do zintegrowanej karty dźwiękowej i lagi ustąpiły. Może problem leży w twojej karcie dźwiękowej? śmieszne, ale możliwe =)

Zaprzestanie gry na serwerach z 128tickrate
Serwery z 128 tickrate są bardzo wymagające - wymagają minimum 130+ stałych FPS oraz mocnego połączenia z internetem. Jeśli korzystasz z WiFi albo z twojego połączenia korzysta kilka osób, gra na takich serwerach może powodować wysokie spadki pakietów..

Spora wiedza czerpana z Wiki Valve - https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking

Jeśli masz jakieś pytania albo problemy - Zapraszam na forum, gdzie możesz poprosić o pomoc Kliknij Tutaj

Share.