|
Forum poswiecone Ostrołęce Na kazdy temat o Ostrołęce
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
spec
Lamus
Dołączył: 07 Sie 2005
Posty: 9
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Ostrołęka
|
Wysłany: Pon 19:29, 15 Sie 2005 Temat postu: rate, cl_cmdrate, cl_updaterate, cl_rate - poradnik |
|
|
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)
Kod:
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_cmdrate 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
cl_cmdbackup ma domyslna wartosc 2
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 2 i powinno byc parametrem wystarczajacym, ale ja rekomenduje 6 szczegolnie jak macie lossy i lagi.
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 [link widoczny dla zalogowanych]
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)
- [link widoczny dla zalogowanych]
- [link widoczny dla zalogowanych]
- wlasnych obserwacjach
---------------------------------------------------------------------------------------------------
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
|
|
|
|
Możesz pisać nowe tematy Możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
|