Ustawienia sieciowe graczy

Od HLDS.pl
(Przekierowano z Lag)
Skocz do: nawigacji, wyszukiwania

Spis treści

Wstęp

Trochę stary artykuł, będę musiał go odkurzyć z debilizmów, więc się będzie zmieniał co jakiś czas.

--KaszpiR 15:52, 9 sie 2006 (CEST)

Ten artykuł jest niepełny i wymaga uzupełnienia. Jeżeli jesteś w stanie - postaraj się go uzupełnić.. Pamiętaj, że nawet najmniejsza zmiana jest cenna i pomocna :)


Opis

Ustawienia sieciowe graczy CS

Turorial przyblizy wam jak lepiej ustawic wartosci takie jak cl_cmdbackup cl_rate, cl_updaterate , cl_cmdrate oraz rate aby lepiej wam sie gralo na serwerze.

Opis zmiennych

  • Ramka oznacza 1 fragment informacji przeslany miedzy klientem a serwerem (niezaleznie w ktora strone).
  • Ilosc ramek z serwra do klienta kontroluje cl_updaterate oraz rate.
  • Ilosc ramek od gracza do serwera kontroluje cl_cmdrate i cl_rate.


cl_cmdrate

Jest to liczba ile razy na sekunde gracz informuje serwer o swoich poczynaniach, to jest - ruchach na mapie, strzelaniu, ruchach myszy.

Im wiecej robisz (im bardziej ostra akcja) tym wiecej danych wysylasz. Najlepiej, jeśli będzie wynosił maksimum fps jakie osiągasz w grze, jednakże bardzo często 60 juz wystarcza.

cl_updaterate

Jest to liczba ile razy na sekundę gracz otrzymuje z serwera dane o tym co się dookoła niego dzieje - oznacza to ze dostajesz info jak lecą granaty, kto gdzie się porusza i strzela, bryzgi krwi , dźwięki audio, efekty HUD, latające pociski, rykoszety itp.

Jak jesteś w miejscu gdzie mało się dzieje (np nie ma graczy albo niewiele robią) to otrzymujesz mało informacji, ale jak wbiegniesz w miejsce gdzie się strzelają 4 osoby i latają granaty to dostajesz tych informacji o wiele więcej.

cl_updaterate najlepiej mieć troszkę wyższe od ilości fps jakie osiągamy w grze, jednakże nie oznacza to, iż będziemy na pewno dostawać tyle uaktualnień, gdyż to wydajność serwera i zmienne jak sv_maxupdaterate definiują ile można wysłać z serwera do gracza.

cl_rate

Ustawia maksymalny limit bajtow wyslanych od ciebie do serwera na temat twoich poczynan i powinna byc ustawiona na maksymalna wartosc uploadu jaka mozesz wycisnac z łącza

rate

Ustawia maksymalny limit bajtów odebranych przez ciebie jaie przychodza do serwera.

Powinna byc ustawiona na 80% maksymalnej wartosci download jaki mozesz wycisnac ze swojego łącza.

cl_cmdbackup

ustawia ile ramek mozna przesylac ponownie jesli nam lacze nie wyrabia np jak ma sie wysokie lossy albo choke

Dla nie kumatych

cl_rate, cl_cmdrate Gracz -------------->-->--> Server


rate, cl_updaterate Gracz <--<--<---------------- Server


Zakresy wartosci

Ilosc danych od gracza przewaznie jest mala, mniej wiecej 25 bajtow na ramke. natomiast serwer wysyla znacznie wiecej, jak sie nic nie dzieje jest to okolo 35bajtow na ramke, a jak jest ostra akcja to dochodzi nawet do 176 bajtow na ramke albo i wiecej.

Dosc latwo sie przekonac ile danych wchodzi i wychodzi patrzac na net_graph przyklad (oczywiscie u was moga byc inne wartosci)

77 fps 5ms
in: 34 1.48 k/s
out: 25 1.35 k/s

loss: 0 choke: 0

Pierwsza linia

pierwsza liczba reprezentuje ilosc wyswietlanych FPS druga liczba oznacza czas jakim sie rozni to co widzimy od tego co dostajemy od serwera i co wysylamy do sewera (o tym nizej)

Druga linia

reprezentuje dane wejsciowe jakie otrzymujesz z serwera. Tu mamy wielkosc ramki 34 bajty, co przy danym cl_updaterate przelicza sie na 1.48 k/s downloadu.

Trzecia linia

reprezentuje dane wyjsciowe jakie wysylamy do serwera. Tutaj mamy rozmiar ramki 25 bajtow, a to sie przelicza przy tym cl_cmrdate na 1.35 k/s uploadu.

Nasze łącze

Najcześciej informacje o naszym łączu mamy podane w kilobitach. Najczęciej także podawane są nam informacje o naszym maksymalnym downloadzie,a rzadziej o naszym uploadzie, ktory czesto tez jest wazny.

Przeważnie upload mamy 4 albo 8 razy mniejszy niz download przy łączach ADSL (asynchroniczne) ADSL to na przykład sdi, neostrada, astercity, chello.. większosć dostępnych teraz łączy. Takie łącze jest przeznaczone właśnie dla graczy.

łącza które mają taki sam upload jak download są to przeważnie SDSL (synchroniczne) i są znaczie droższe niz asynchroniczne, ale takie łącze powinien właśnie posiadać serwer.

Pamietajmy ze 8kb = 1B (8 kilobitów równa sie 1 kilobajt) w przeliczeniu na szybko. (nie mam zamairu sie tu zaglebiac i dokladnie tego liczyc)

Powiedzmy ze masz modem 56k, weg specyfikaji oznacza to ze masz 56kbit downloadu i 33kbit uploadu. Oznacza to stan idealny gdy nic nie zakloca linii.

W rzeczywistosci jakies 10% łącza idzie na dane dodatkowe - korekcja błędów, kontrola połączenia więc wartości jakie masz podane nie są wartościami realnymi tylko wartościami teoretycznymi jakie mozesz osiągnąc - w rzeczywistosci osiągasz mniej bo wpływa na to sam ruch sieci, jakość kabli pogoda, zakłócenia elektromagnetyczne (komorki, radio) i wiele innych czynnikow.

Czyli mamy w rzeczywistosci 56/8 = 7kbajtow/s downloadu i 33/8 = niecale 5k/s downloadu.

Neostrada

jakies 768kbit downloadu i 128 kbit uploadu (kiedyś) teraz ma 196kbit uploadu (czyli 24k/s) Po przeliczeniu wychodzi jakies 96k/s downloadu oraz 16k/s uploadu

1mbit 1024/8 = 128k/s downloadu

2mbit 2048/8 = 256k/s downloadu

Reszte sobie sami przeliczcie.

Jak obliczyc wartosci

Najpierw sie zajmiemy wartosciami cl_rate i rate.

cl_rate

Bierzemy nasz upload w bitach, mnożymy razy 0.9 a następnie dzielimy przez 8. Wynik powinien byc wartoscia jaka powinnismy usawic sobie w cl_rate. Jak wychodzi liczba po przecinku to ją zaokrąglamy w dół.

Jednakże wartością maksymalną jaką mozemy wstawić jest 20 000, dlatego przy łączach które mają lepszy upload niż Neostrada (128kbit czyli 16k/s) powinnismy ustawic 20000 Przyklady

Nazwa | Upload | Rachunki | cl_rate
----------------------------------------------------------------------------------
modem 56k: | 56000 | ( 56000*0.9)/8 = 6300
Neostrada | 128000 | ( 128000*0.9)/8 = 14400

rate

Bierzemy nasz download maksymalny w bitach, mnożymy razy 0.9 a nastepnie dzielimy przez 8. Czyli analogicznie jak przy cl_rate. Wynik powinien byc wartoscia jaka powinnismy usawic sobie w rate. Jak wychodzi liczba po przecinku to ją zaokrąglamy w dół.

Jednakże wartością maksymalną jaką mozemy wstawić jest 20 000, dlatego przy łączach które mają lepszy download niż Neostrada (768kbit czyli 16k/s) powinnismy ustawic 20000. Przy Neostradzie podałem gwiazdki - powinno sie wec ustawic 20000.

Nazwa | Download | Rachunki | rate
---------------------------------------------------------------------------------- 
modem 56k: | 33600 | ( 33600*0.9)/8 = 3780
Neostrada | 768000 | ( 768000*0.9)/8 = 86400 *** -> 20000

cl_cmdrate

Najlepiej gdy wezmiemy nasz cl_rate i podzielimy przez 25 (bo przewaznie tyle bajtow ma ramka). Wtedy np dla Neostrady mamy: 14400 / 25 = 576 ale wartoscia maksymalna dla cmdrate jest 400 (wyzej nie ma co ustawiac, nie widac roznicy) wiec ustawiamy cl_cmdrate 400

W rzeczywistosci najlepiej ustawic cl_updaterate rowny sredniej liczbie naszych fps w grze. Jak ustawimy wiecej to mozliwe ze serwer bedzie dropowal pewne dane ale ni powinnismy sie tym przejmowac bo zostaja one wyslane kolejny raz.

cl_updaterate

Najlepiej gdy wezmiemy nasze rate i podzielimy przez 175 (bo tyle bajtow srednio ma ramka). Np dla Neostrady mamy 20000 / 175 = 114 ale wartoscia maksymalna jest 100 wiec mozna spokojnie ustawic 100

uwaga, teraz warto popatrzyc na net graph w pierwszej linii mamy dwie liczby jesli widzimy tylko pierwsza (tzn fps) to jest ok

jesli widzimy druga takze to znaczy ze mamy pewne opoznienia w grze maga byc one zwiazane z kilkoma rzeczami - m in. wydajnoscią naszego sprzętu liczba ta sie zwieksz ajak mamy np cl_updaterate i cl_cmdrate zbyt ekstremalne (zarowno za male jak i za duze) najlepieje tak zmieniac cl_updaterate i cl_cmdrate aby ta liczba byla jak najmiejsza (1 cyfrowa) i pokazywala sie bardzo rzadko.

ta liczba oznaczac moze tez ze na serwerze moze byc ustawione sv_maxupdaterate wtedy musimy u nas takze zmiejszac cl_updaterate i cl_cmdrate.

cl_cmdbdackup

Czasami ustawianie wartosci zmiennych cl_cmdrate i cl_updaterate powyzej ilosci fps serwera moze okazac sie zbyteczne bo serwer ich nie przyjmie bo nie wyrobi.

Serwer srednio powinien miec 60-70 fps, dobre serwery maja powyzej 100.

najlepiej jest ustawic cl_cmdbackup jako cl_cmdrate / fps serwera Serwery na LAN na mecze np ESL maja wysokie ustawienia (okolo 200fps) i dlatego daje sie cl_cmdrate 400 a cl_cmdbackup 2

Na necie cl_cmdbackup jest standardowo 6 i jest parametrem wystarczajacym. Jak ustawisz powyzej 60 to jest to bardzo duzo i prawdopodobnie mozesz zapchac sobie niepotrzebnie lacze rzeczami czasem juz nieaktualnymi (jak serwer ma 60 fps a probujesz przepchnac 60 ramek to znaczy ze chcesz czasem miec dane z calej osatniej sekundy)

Kiedys tlumaczylem ze cmdrate powinen byc 4x miejszy od updatrate - autor tekstu byl w bledzie bo nie wzial pod uwage faktu ze ramka jest mniejsza w cmdrate dlatego mzoa ustawic cmdrate 4 albo i wiecej razy wieksze niz updaterate.

Choke i Loss

Choke

Choke procent danych jakie serwer albo klient powtrzymuje przed wyslaniem bo nie pozwalaja mu na to ustawione parametry. Po prostu przekroczone zostaly mozliwosci łącza na przesył danych. Choke do wartosci 10 jest akceptowalny.

Najczesciej pojawia sie jak nasze rate jest zbyt niskie do podanego cl_updaterate. Podobnie jesli mamy zbyt male cl_rate do zadeklarowanego cl_cmdrate.

W tym przypdaku powiniesmy najpierw sprawdzic czy nie przesadzilismy z cl_updaterate i cl_cmdrate i je sukcesywnie zmiejszac podczas gry az choke zniknie podczas ostrych akcji.

Jesli to nie pomaga zmnijeszamy wartosci rate i cl_rate.

Na net graphie choke jest wyswietlany jako kolor żółty w zielonym grafie (ten górny).

Loss

Loss wskazuje ile procent danych nie dotarlo do celu - oznacza ze cos jest zle z naszym łączem pod względem technicznym. Powinnismy takze wpierw obnizyc parametry opisywane w tym artykule. Loss do wartosci 10 jest akceptowalny.

Na net graphie los jest wyswietlany jako kolor czerwony w zielonym grafie (ten górny).

Ex_Interp

ex_interp domyslnie ma wartosc 0.1 , i jego zmiana jest czesto blokowana przez takie dodatki jak wwcl albo hlguard wartosci powyzej 0.1 sa blokowane przez sama gre half-life

jak wpiszemu ex_interp 0 to powinno sie ex_interp saamo automatycznie obliczyc jako 1/cl_updaterate ale w rzeczywistosci modele beda wtedy skakac i lepiej obliczyc to samemu wg ponizszego wzoru ex_interp = (1/ cl_updaterate) +0.02

przy cl_updaterate 50, ex_interp powinien wiec wynosic jakies 0.04

patrząc na net_graph widzimy dolny pasek (niebiesko żółty) najepiej tak ustawic ex_interp az nam sie nie pokazują żółto-czerwone fragmentu w graphie i wtedy mamy tylko fioletowo niebieski wykres.

Serwer

Na serwerze admin moze ustawic zmienne aby forsowac pewne wartosci. Dlaczego? Aby na przyklad nie placic za łącze więcej niż go stac.

Ponizsze wartosci kontroluja wartosci jakie gracze moga u siebie maksymalnie ustawic. Oznacza to ze jesli gracz ma wartosc wieksza niz ta ktora jest dana w parametrze sv_ to nie bedzie on z niej korzystal, bo serwer bedzie wywyslal wartosci ze swoich usatwien.

sv_maxrate

kontroluje maksymalna wartosc rate, jaka gracz moze otrzymac od serwera.

sv_maxupdaterate

kontroluje maksymalna wartosc sv_updaterate, domyslnie 30

stosowanie ponizszych wartości nie jest zalecane sczególnie przy zamawianiu HLTV na serwer z http://hltv.org

sv_minrate

kontroluje mininamlna wartość rate jaka wymaga serwer od graczy - powoduje zwiekszenie ruchu sieciowego, za wysoka warttosc dratycznie pogarsza gre wszstkim graczom.

sv_minupdaterate

kontroluje mininamlna wartość cl_updaterate , domyslnie 10

Przyklad: cl_updaterate 100 sv_maxupdaterate 50 w efekcie gracz bedzie dostawal 50 update na sekudne a nie 100 jak sobie zadeklarowal - oznacza to ze serwer mu bedzie wysylal mniej danych niz on chcialby dostawac - co dla niego nie jest ustawieniem zadowalajacym. Wiec klient recznie musi sobie ustawic cl_updaterate 50.

Przy wysokim cl_updaterate i innych parametrach mozna zauwazyc ze mozna miec upload do serwera wiekszy lub rowny downloadowi z serwera. Przwaznie nie trzeba sie tym przejmowac, ale nalezy miec na uwadze ze serwer otrzymuje od innych graczy takze dane ale łącze na serwerze powinno dac sobie rade bo dla niego upload clientow jest jego downloadem z netu. Ale trzeba pamietac ze serwer moze sam odrzucac zbyt czeste dane od klientow.

Zakonczenie

Przy pisaniu opieralem sie na:

- CS 1.6 Netcode explained - CS Report (dla cs 1.3 wszakże ale pare rzeczy jest nadal aktualnych) - http://board.counter-strike.pl - http://forums.unitedadmins.com - wlasnych obserwacjach



by _KaszpiR_ 20-04-2005 ver 0.7


Linki

Osobiste
Przestrzenie nazw
Warianty
Działania
HLDS.pl - Menu:
Inne
IRC
Inne sekcje:
Znajomi:
Narzędzia