Ustawienia sieciowe graczy

Od HLDS.pl
Skocz do: nawigacji, wyszukiwania

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 :)

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


1. Opis zmiennych 2. Zakresy wartosci 3. Nasze ³±cze 4. Jak obliczac wartosci 5. Choke i Loss 6. Ex_Interp 7. Serwer 8. Zakonczenie


1. 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

cl_updaterate - jest to liczba ile razy na sekunde gracz otrzymuje z serwera dane o tym co sie dooko³a niego dzieje - oznacza to ze dostajesz info jak leca granaty, kto gdzie strzela, bryzgi krwi , dzwieki audio, efekty hud, latajace posicki, rykoszety itp. jak jestes w miejscu gdzie ma³o sie dzieje (np nie ma graczy albo niewiele robia) to otrzymujesz malo informacji ale jak wbiegniesz w miejsce gdzie sie strzelaja 4 osoby i lataja granaty to dostajesz tych informacji o wiele wiecej

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 maksymalna wartosc 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



2. 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) Code: 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.


3. 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 bajt)

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 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.


4. 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


Teraz zajmiemy sie ustawieniem cl_cmdrate i cl_updaterate.

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. Jakustawimy 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





5. 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).


6. 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.



7. 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

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

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.



8. 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 http://nvt.prv.pl


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