NetCode- teoria, co sądzicie.

Poznanska_Pyrka
PL Zwerbowany: 2011-11-10
2014-02-21 21:36
Tak sam ostatnio się zastanawiałem dlaczego mam lagi w BF4, a raczej różne dziwne akcje, które wszyscy dobrze znają.
Wydaje mi się, że problem leży w tym, że serwer nie raz wysyła w pewnych momentach błędne lub sprzeczne instrukcje. Wtedy client prosi serwer o ponowne przesłanie danych co powoduje chwilowe zwiększenie pingu, serwer od razu stara się to wyrównać i wtedy zaczyna się wszystko walić.

Jest to tylko teoria i ciekawy jestem co o tym myślicie? Może uda nam się coś wymyślić coś, na co gamonie z DICE nie wpadły.
Poznań!
GamerMilan123
Zwerbowany: 2011-12-28
2014-02-21 21:48 , edytowano 2014-02-21 21:56 autor: GamerMilan123
Tu jest wszystko ładnie wyjaśnione nt. "netcode" w BF4: http://www.youtube.com/watch?v=8C0COfAHHf0 [youtube.com] http://www.youtube.com/watch?v=4COlzIbYQ0s [youtube.com]
Stefan-od-miesa
PL Zwerbowany: 2011-10-29
2014-02-22 10:35
Autorzy jasno powiedzieli na reddicie, że netcode nie jest idealny i nigdy nie będzie.
MaRen1122
PL Zwerbowany: 2013-10-30
2014-02-22 10:47
i kropka w temacie
RuthlessMissle
PL Zwerbowany: 2011-12-04
2014-02-22 11:10
Stefan-od-miesa powiedział:
Autorzy jasno powiedzieli na reddicie, że netcode nie jest idealny i nigdy nie będzie.

Wiadomo dlaczego? Jak sobie przypominam piękne czasy, gdy tłukło się w MOH:AA przez sieć i ten idealny netcode, gdzie liczyły się dosłownie setne sekundy pinga...
GTX 770, i5 4670k @ 4.5 GHz
RoShkoShny
PL Zwerbowany: 2012-02-09
2014-02-22 11:18 , edytowano 2014-02-22 11:32 autor: RoShkoShny
Ja natomiast zauważyłem że nie ping czyni netcode lepszym, a szybkość łącza.Mało tego, okazuje się że na wolniejszym łączu 2Mb/s ping 30-40, netcode nie jest tak odczuwalny jak np na łączu 100MB/s ping 20-30

Prawdopodobnie chodzi o wielkość odbieranych jak i wysyłanych pakietów. Przykładowo łącze 100MB/s jest przystosowane do większych pakietów i pomija te mniejsze pakiety, przez co są straty. Jak ktoś jest obeznany to wie o czym piszę.
X7ExecutorX7
Zwerbowany: 2012-10-12
2014-02-22 11:22
Tak czy siak jak gram jeszcze moha warfighter to jak widze to w bf4 jest duża losowość w starciach 1 v 1 czego o mohu powiedzieć nie można - tam netcode jest idealny.
RoShkoShny
PL Zwerbowany: 2012-02-09
2014-02-22 11:32 , edytowano 2014-02-22 11:45 autor: RoShkoShny
Dało by się netcode naprawić, ale...Developerzy skupili się również na graczach z wolnym łączem. Gdyby dla przykładu w wymaganiach minimalnych Bf4 pisało że potrzeba chociaż 7MB internet zwiększając pobór pakietów przez grę to byłoby znacznie lepiej, jeśli chodzi o te osoby z szybkim łączem.Pytanie tylko czy serwery by to wytrzymały :D

W prawie każdej grze sieciowej istnieją opcje do sposobu łączenia internetu z grą, gdzie można ustawić parametry z jakiego łącza korzystamy
-Dial-up 56kb
-ISDN 128kb+
-xDSL 1MB+
itd

Zaś w bf mamy tylko jakie wygładzanie sieciowe
12korek
PL Zwerbowany: 2011-11-30
2014-02-22 11:48
RoShv1 powiedział:
Ja natomiast zauważyłem że nie ping czyni netcode lepszym, a szybkość łącza.Mało tego, okazuje się że na wolniejszym łączu 2Mb/s ping 30-40, netcode nie jest tak odczuwalny jak np na łączu 100MB/s ping 20-30

Prawdopodobnie chodzi o wielkość odbieranych jak i wysyłanych pakietów. Przykładowo łącze 100MB/s jest przystosowane do większych pakietów i pomija te mniejsze pakiety, przez co są straty. Jak ktoś jest obeznany to wie o czym piszę.


to ujowo bo mam 120, mam nadzieje ze cos z tym zrobią jednak
RoShkoShny
PL Zwerbowany: 2012-02-09
2014-02-22 11:54
Nie naprawią, tak jak pisałem wyżej. Deweloperzy nie odetną od gry ludzi z wolnym łączem
RuthlessMissle
PL Zwerbowany: 2011-12-04
2014-02-22 12:35
No to co? Uruchamiany netlimitera (program) i ustawiamy limit łącza, aby lepiej się grało? :)
GTX 770, i5 4670k @ 4.5 GHz
RoShkoShny
PL Zwerbowany: 2012-02-09
2014-02-22 12:50 , edytowano 2014-02-22 13:03 autor: RoShkoShny
To nic nie da.
Gra jak i serwery mają specyficzny tryb odświeżania... A dokładniej 10hz, czyli co 10 klatek serwer odświeża informacje średnio 4kb/s nie ważne ile by się działo na serwerze.
Tu macie więcej informacji http://www.youtube.com/watch?v=4COlzIbYQ0s [youtube.com] Angielski
SmarujBoWchodze
PL Zwerbowany: 2011-11-02
2014-02-22 13:33
Nie co 10 klatek tylko 10 razy na sekunde. Czyli co 100ms jest wysyłany pakiet z informacjami.
RoShkoShny
PL Zwerbowany: 2012-02-09
2014-02-22 14:07 , edytowano 2014-02-22 14:15 autor: RoShkoShny
10Hz czyli częstotliwość odświeżania liczy się w kl/s,czyli 10 : sekundę, a nie 10 x sekunda, ale to taki mały szczegół.

Z resztą na tym filmiku co dałem koleś pokazuje jak wygląda 10hz odświeżanie gdybyśmy grali z takim odświeżaniem jak serwer :P
x-Szaty-x
PL Zwerbowany: 2011-10-25
2014-02-22 14:30 , edytowano 2014-02-22 14:35 autor: x-Szaty-x
Prędkość łącza nie ma nic do rzeczy, ping ani się przez to nie zwiększa ani nie maleje, ramki są takie same (o ile sobie ich nie zmienimy) a i tak nie używamy TCP, gry działają po UDP, więc nie ma korekcji przesyłania danych (TCP)
Porównywanie netcodu z MOHa do BF3/4 to jest mocno nietrafione porównanie, inna skala map, pojazdy, zabudowania, zniszczenia (choć te są pewnie po stronie klienta). Do tego osławione Levolution, to też wymaga synchronizacji danych.
Zmieńcie sobie wygładzanie danych, jeżeli gracie na serwerach z pingiem ok 30-40 na 30, jeżeli z mniejszym, to mniejsze wartości, jeśli z większym, to większe.

Jedyne dziwne zjawisko, jakie zaobserwowałem, to starcie graczy z niskim pingiem poniżej 10ms z kimś z wysokim pingiem np.60ms, absurdalnie, ten z wyższym ma większe szanse, a powinno być na odwrót.


Stefan-od-miesa powiedział:
Autorzy jasno powiedzieli na reddicie, że netcode nie jest idealny i nigdy nie będzie.

Dokładnie, zbyt dużo informacji jest do wymiany, stąd niski tickrate.
OnePortal.pl - Twój portal, wejdź i dołącz. Forum o sprzęcie - http://oneportal.pl/forum/
x-Szaty-x
PL Zwerbowany: 2011-10-25
2014-02-22 14:37
Przenoszę do odpowiedniego działu.
OnePortal.pl - Twój portal, wejdź i dołącz. Forum o sprzęcie - http://oneportal.pl/forum/
SmarujBoWchodze
PL Zwerbowany: 2011-11-02
2014-02-22 14:50
@RoShv1
Napisałeś
"A dokładniej 10hz, czyli co 10 klatek serwer odświeża informacje "
A to jest nie prawdą, nie wprowadzaj ludzi w błąd.
Poznanska_Pyrka
PL Zwerbowany: 2011-11-10
2014-02-22 15:00 , edytowano 2014-02-22 15:02 autor: Poznanska_Pyrka
Przez filmik wnerwia mnie jeszcze bardziej ten BF4. Dostrzega się te błędy cały czas, ja mam praktycznie co 2 kill tak...
Poznań!
Lord_Nikkon007
JP Zwerbowany: 2013-02-25
2014-02-22 15:00
x-Szaty-x powiedział:
Prędkość łącza nie ma nic do rzeczy, ping ani się przez to nie zwiększa ani nie maleje, ramki są takie same (o ile sobie ich nie zmienimy) a i tak nie używamy TCP, gry działają po UDP, więc nie ma korekcji przesyłania danych (TCP)
Porównywanie netcodu z MOHa do BF3/4 to jest mocno nietrafione porównanie, inna skala map, pojazdy, zabudowania, zniszczenia (choć te są pewnie po stronie klienta). Do tego osławione Levolution, to też wymaga synchronizacji danych.
Zmieńcie sobie wygładzanie danych, jeżeli gracie na serwerach z pingiem ok 30-40 na 30, jeżeli z mniejszym, to mniejsze wartości, jeśli z większym, to większe.

Jedyne dziwne zjawisko, jakie zaobserwowałem, to starcie graczy z niskim pingiem poniżej 10ms z kimś z wysokim pingiem np.60ms, absurdalnie, ten z wyższym ma większe szanse, a powinno być na odwrót.


Stefan-od-miesa powiedział:
Autorzy jasno powiedzieli na reddicie, że netcode nie jest idealny i nigdy nie będzie.

Dokładnie, zbyt dużo informacji jest do wymiany, stąd niski tickrate.


YYY przepraszam bardzo ale co ty gadasz? Tickrate ustalony na 10Hz to jest jakaś żenada. Podczas gry transfer danych między serwerem a mną jest na poziomie jakiś 20KB/S (pi razy oko) więc znowu tak dużo danych nie ma (zwłaszcza że czasy połączeń modemowych odeszły w niepamięć). Jeśli weźmiesz tickrate ustalony na 10Hz to odświeżenie informacji następuje co 100ms. Do tego dodajmy skopane oprogramowanie które podobno pokazuje, że mamy utraty pakietów choć gdy się testuje łącze do danego serwera nawet na dużych paczkach - utrat nie ma. Wiec jeśli masz utratę pakietów, 100ms nagle się zwielokrotnia.

Ale przyjmijmy że DICE w swojej "mądrości" ustawiło tickrate na absurdalnej wartości. Pytanie dlaczego? Czy aby zapewnić sprawne działanie gry? No to ostro przeszarżowali, bo powoduje to więcej problemów niż zalet (w FPS'ach właśnie prędkość odświeżania musi być jak najwyższa). Znając praktykę EA/Dice, patrząc na poprawki, to po prostu ustawili taką wartość bez przeprowadzenia żadnych testów Jeśli dodamy, że gra jest skopana i nawet nie umieją dopracować map (start samolotem na jednej z map) to o czym my tu rozmawiamy? Właśnie tickrate powinien być ustawiony na maksymalnie wysokim poziomie aby zapewnić płynność rozgrywki i po prostu uczciwość. Zamiast tego (wg Twoich słów, że jest sporo danych do przesłania) mamy wodotryski, które mało dają. BF4 to nie YT, żeby musiał przesyłać takie ilości danych. Paczki sa małe ale powinny iść jak najszybciej. Zresztą powiedz mi co tak dużo serwer musi przesłać do mnie, że uniemożliwia to zwiększenia tickrate? Skoro gra leci na odświeżaniu 100ms , to czemu nie dać TCP/IP. Ludzie z niższymi pingami spokojnie by się wpasowywali w ramkę odświeżenia i dropy przestały być tak straszne. Ja nie wiem czemu np. w CS tickrate mógł być wysoki i nic się nie działo (ok gra starsza ale zawsze) a w BF4 kiedy jakoś i prędkość łącz się znacząco zwiększyła tickrate jest tak niski.

Tak czy siak do dziś EA/Dice nie powiedziało słowa o przyczynach i planach rozwiązania tego problemu. Znając EA, będą mieli to kompletnie w d... i skażą użytkowników na one shoot kill i uśmiercanie postaci nawet kiedy ta schowa się za przeszkodą. No to rzeczywiście "magia" im się udała po zbóju.
CPU: i7 3930K MOBO: ASUS RAMPAGE IV Formula RAM: 4x4G 1866MHz CMX4GX3M1A1600C9 SSD: Samsung 840 PRO 256 GB + Samsung 840 EVO 128 GB GPU: 2-way SLI Zotac GTX680 AMP! Edition PSU: Silverstone Strider Gold Evolution 750W SST-ST75F-G-E BD-ROM: BH14NS48 CASE: NZXT Phantom 630 MB + Scythe Kaze master COOLING: Koolance CPU380I + Swiftech MCR220/320 360mm/240mm + EK-D5 Vario Motor + EK-D5 X-RES 140 CSQ + 2X Kolance VIDGTX680 + EK MOSFET ASUS RF4 CSQ + NB Eloop NB12-P + Noctua NF-P12
x-Szaty-x
PL Zwerbowany: 2011-10-25
2014-02-22 15:36 , edytowano 2014-02-22 15:46 autor: x-Szaty-x
Lord_Nikkon007 powiedział:
YYY przepraszam bardzo ale co ty gadasz? Tickrate ustalony na 10Hz to jest jakaś żenada.

Nie ja ustalam tickrate, co do bzdur o przesyłaniu
http://game.kingj.net/pages/extra-tickrate [game.kingj.net]
poczytaj tę cześć o przełożeniu na kl/s, np. konsole "wybuchły" by przy większym tickrate
Większość ludzi ma komputerki, które są w stanie poprawnie wyświetlić 50-60 kl/s a ty chcesz zwiększać tickrate? powodzenia, już widzę jak im się gra przy 10kl/s
Teraz już muszą zmniejszać max_fps do 30 żeby pograć.
Tak, czy owak nie do mnie pretensje.

Edit
Na angielskim forum ludzie twierdzą, że obecnie BF4 ma 20 tickrate, co potwierdzałby to, co wcześniej napisałem, optymalny ping to 50-60ms (dalej polecam zabawę "wygładzaniem danych")

Edit2
Żeby faktycznie podnieść tickrate i nareperować netcode, trzeba by przebudować cały silnik gry, taka jest moja opinia. I to twierdzę od dawien dawna, jeżeli ktoś czeka na poprawę netcode, to niech się przygotuje na długie oczekiwanie.
OnePortal.pl - Twój portal, wejdź i dołącz. Forum o sprzęcie - http://oneportal.pl/forum/