Skutečná příčina „špatného netcodu“ Battlefieldu 4

Na YouTube se koncem minulého roku objevilo velmi zajímavé video od uživatele 90N1N3, které ukazuje a vysvětluje, proč v Battlefieldu 4 zažíváme tzv. vzájemná zabití, opožděná zabití za zdí a další problémy, které si spojujeme se špatným netcodem. Video má název „BF4 – The Actual Problem with the Netcode“ a níže si ho můžete prohlédnout. Jiný YouTube uživatel jménem TheSkillClinic o tomto videu dokonce prohlásil, že je to jedno z nejdůležitějších Battlefield videí vůbec, viz tento odkaz (doporučuji shlédnout celé od začátku, pokud budete mít chvilku čas – TheSkillClinic upozorňuje na další problémy BF4 a možná se o tomto videu dočkáte samostatného článku).

Nyní již k uvedenému videu. Na začátku uživatel 90N1N3 popisuje, jak měří časy různých úkonů, které voják provádí. Má dvě PC sestavy, na každé má stejné nastavení včetně network smoothing factor na 0%. Jednou dělá testy lagů při pingu 5ms a jednou při pingu 100ms. Výpočet času lagu začíná prvním framem (snímkem) pohybu a končí prvním framem (snímkem) odpovídajícím pohybu ve spektátoru.

U testů měřených při pingu pouhých 5ms, což jsou prakticky ideální podmínky pro hraní, je naměřena perioda až 100-200 ms, kde ostatní klienti zaostávají (lagují) pozadu. Když se tedy zabijí hráči navzájem během těchto 100-200ms, nastane tzv. vzájemné zabití, i přesto, že jeden z nich mohl vystřelit o dvě desetiny vteřiny dříve. V FPS hrách, které jsou založeny na reflexech hráčů a záleží zde tedy na každé milisekundě, je 100-200ms opravdu dlouhá doba. A to se jedná o ideální podmínky, kdy by měli všichni hráči na serveru ping pouhých 5ms.

Dále ve videu můžete vidět o jak velké spoždění (lagy) se jedná, pokud máte ping 100ms, což je podle mě mnohem blíže běžné situaci na nějakém public serveru pro např. 32-64 hráčů. S pingem 100ms je tedy jasně vidět, že spoždění (lag) je ještě mnohem delší a dostává se až přes 300ms.

Tyto testy ukazují, že rate (tempo), jakým jsou data odesílány a přijímány ze serveru, je maximálně 10Hz nebo 10x za sekundu. Tento údaj byl dokonce potvrzen vývojářem DICE s přezdívkou sliced_lime. Ti z vás, kteří trochu více hráli (kterékoliv) CSko, si určitě pamatujete, že se v konzoli (configu) nastavovaly hodnoty „cl_cmdrate“ a „cl_updaterate“ na hodnotu „100“, aby byla hra co nejvíce plynulá. Ta hodnota „100“ znamenala, že se vaše údaje odesílali a přijímali právě 100x za vteřinu, což je samozřejmě náročnější na kvalitu připojení, ale pro efektivní hraní, kde skutečně záleží na vašem aimu a postřehu, je toto nastavení nezbytné. Rate by měl minimálně odpovídat tomu, kolik máte FPS ve hře, tzn. nejlépe 60 a více. Dokonce alespoň nastavení ratu na 30 Hz by lagy dost zredukovalo, avšak v Battlefieldu 4 je tato hodnota nastavena na pouhých 10 Hz. Pokud byste chtěli vidět, jaký je rozdíl mezi tick ratem nastaveným na 10 Hz, 50 Hz a 100 Hz, doporučuji shlédnout tuto část již výše zmíněného videa od uživatele TheSkillClinic.

Zdroj: YouTube

Battlefield 1 lze pořídít v českých e-shopech za cenu od Kč do (Zdroj: Heureka.cz) Porovnat ceny >>

Štítky:, ,

45 komentářů

  • krosmen napsal:

    Fakt nádhera 😀 ale je třeba fakt že pod ping 22 sem se ještě nedostal

  • Nuada napsal:

    Ty rozdíly jsou hrozný, ve spectatoru je zabíjej v řádech sekund a já musim reagovat v pikosekundách.

  • Dzardajs Dzardajs napsal:

    Nejhorší je jak tam ukazuje to odesílání dat na server a zpět. Jak může hra v roce 2013/2014 mít tak malý refresh dat to fakt nechápu. Ale aspoň mi to vysvětluje všechny ty wtf momenty. 🙂

  • RAMMSTEIN RAMMSTEIN napsal:

    ja vam porad rikam ze to je EPIC FAIL tento paskvil a nikdy to nebude opravene 😀

  • mijunior mijunior napsal:

    CSko zase nemá padajici mrakodrap, evidentne nemůžeme mit všechno. Pak je na uvazeni každého jedince co preferuje a podle toho utrati sve peníze.

    • LinXcze napsal:

      Za co ho mínuskujete? Vždyť má naprostou pravdu…

    • Dzardajs Dzardajs napsal:

      Na mrakodrap jim sere pes 🙂

      Kdyby radši místo tý marketingový masáže jak je levolution super dělali na netcodu tak by bylo mnohem víc spokojenějších lidí a hru by třeba i doporučovali dál.

      Takhle na to každej nadává a tím odrazuje další kupce.

      Dneska když hraju tak už lidi na levolution kašlou protože to byl jen ten chvilkovej moment jak je to strašně cool script.

      Mě prostě neskutečně vytáčí momenty kdy do někoho střílím on mě následně zabije a až pak se otočí a vystřelí. Jako wtf ale to je moc 🙂

    • Vondrs napsal:

      K čemu je padající mrakodrap když jsou rozbitý základní principy FPS hry?

      • hacker.tom napsal:

        Naprosto s tebou souhlasím. Nejdřív by měli pracovat na takovém základu hry jako je zmiňovaná odezva. Už i BF3 je podle mě v tomto ohledu celkem zkriplené, co musí být pak tohle? Tento článek/video mě naprosto přesvědčil, že tu hru si nikdy nepořídím a litovat toho rozhodně nebudu. Tak zpackaný bastl by měli přestat prodávat. Fakt nechápu, když jsou problémy ohledně hry celkem veřejně známé, že to ještě vůbec někdo kupuje.

        • RomannetSK napsal:

          Tá hra nieje na tom až tak zle, dosť preháňaš … ja väčšinou hrám vo vozidlách a tam ani nieje poznať nejaký problém s netcodom, úplne v pohode.

    • Nuada napsal:

      Navíc ten výtah je jen teleport, a samotná destrukce je pouze vsakující se textura se spoustou kouře s následnou změnou na trosky, stejně jako v hrách před 7 lety. Chápu že by to bylo náročný na server, ale dneska jsou na světě takový technologie že se divím že tohle nejde. BF4 se tváří jako AAA ale spousta věcí je tam místo profesionálního přístupu vyřešená ,jak garážovým studiem bez rozpočtu. Další díl ale bude z Pacifiku nebo jiný marketingově zajímavý lokace z 2sv. A zase se prodá miliony kopií a už nikdy to nebude dodělaná hra.

      • djwiry napsal:

        Předskriptovaná destrukce mrakodrapu či jiných objektů v multiplayeru dle mého názoru musí ! Dovedete si představit kolik dat by se muselo přenést internetem kdyby se to dělo jen malinko jinak ? Už tak je tu objektů které mění pozici a pod. až až.

        Tím chci říci, že by to nebylo náročné ani na srvery ani na klientskou část, ale na provoz internetu, ještě přes LAN si to dokážu představit.

        • Dzardajs Dzardajs napsal:

          S těmi objekty které mění pozice bych to tak nadějně neviděl. Levolution probíhá u všech stejně a zbylé objekty po destrukci vetšinou mizí.

          Koukni se na toto video http://youtu.be/QzQM9T5rhq4 kde hráči v BF3 ukazovali právě ty objekty s kterými jde hýbat.

          A jak je vidno každý je má jinde. Pamatuji si když jsem se za to snažil schovávat ale po shlédnutí tohoto videa jsem zjistil že vlastně schovaný vůbec nejsem.

          A předpokládám že u BF4 to bude stejné takže ty objekty počítá pouze tvé PC a se serverem nemají nic společného 😉

        • klody napsal:

          Ses posral ne tady psát logické důvody proč tomu tak je 😀

  • Carlos Carlos napsal:

    Youtuber xfactor tohle video uz pred nejakou dobou preposlal svojemu kontaktu v DICE, a ten mu rekl, ze tickrate ve spectatu je nizsi nez u hrace primo ve hre. Aby to teda bylo skutecne prukazny, tak by ten cas nesmel bejt merenej ze spectatu ale normalne ze hry. Dalsi vec ale je, ze na to aby clovek vedel, ze je v BF4 na pomery FPS hry obrovskej delay neni potreba zadny video.

  • vandap napsal:

    Zdravím všechny hráče z ČR snad nebudu vypadat jako až moc velký amater ale jak jsem to čet tak jsem pochopil že je dobré hledat servry z co nejmemším pingem.No taky jsem si všimnul že někdy se mě celkem daří nějaké dobré skore Zabití/Umrtí a někdy je to hrůza a někteří mají skore třeba 28/0 ale je pravda že se neřadím mezi nejlepší hráče. 🙁 Je zde určitě dost zkušených kteří by poradily kde se připojovat např. jen Evropa a nebo snad nějakej seznam celkem vyvážených servrů pro nás z České Republiky.Díky předem celkem často sleduji články a rady na tomto blogu BF a dost mě již pomohl.Hraji na Xbox360 a tam ukazují jen čárky na servrech a jestliže jsou jen dvě tak jse ani nepřipojím.Ještě jednou díky a všem hodně killu 🙂

  • nicolai nicolai napsal:

    Vždy som sa čudoval, ako je možné že mi môj skill z CS nikdy nepomáha v takýchto podobných hrách. No proste sa v BF nedá hrať na úplnú presnosť. 🙂

  • hajcus23 napsal:

    mě spíš fascinuje že DICE a EA jsou (profesionálové) ve svém oboru a takovéto základní věci jim unikají. A nebýt komunity tak pomalu ani neví jak je to možné a jak to opravit a o testerech raději ani nemluvím ty to snad testujou ve spánku 😀 A za sebe můžu říct že BF4 je poslední co jsem koupil z celé série BF 😀

    • mijunior mijunior napsal:

      Ja si myslim ze oni si toho jsou moc dobre vedomi, ale bud nevedi co s tim nebo se jim nechce investovat vetsi prostredky v tomto pripade do technickeho zabezpeceni chodu hry?! Proto nam s velkou pompou serviruji padajici mrakodrapy, tri prd.le statistik a socialnich nesmyslu aby odvedli pozornost od jadra problemu.

  • MDFK_Deef MDFK_Deef napsal:

    You can only hit people where the server say they are 😀

  • IsawU IsawU napsal:

    no tak já mám na těch nejlepších serverech ping 14 (nevím jak v BF4)…. A 10 Hz odesílání informací???? To asi má bejt nějakej vtip…. Dokážu si představit 1 kHz jako uplně klidně možnou hranici…

  • Flop-Czech Flop-Czech napsal:

    Žádná hra nemůže být unikát nějaká je více zaměřená na příběh, jiná na grafiku, jiná zas na akci atd… V BF4 je to sprskaný do hromady a tak to vypadá 😀

  • Gemb napsal:

    Aky som rad, ze som BF4 nekupoval 😀
    Tak vam poviem, zaklad MP hry je aby netcode fungoval takmer 100%tne, aby sme v hre hitovali naozaj „presne“. V BF uz od Bad Company to DICE bere takym stylom, ze ved v MP staci aby si hitoval len „priblizne“ nieco si hra vymysli a hotovo 😀 😀 😀 Zaujima ma, naco sa bude dalej DICE vyhovarat 😀

  • Jupiman Jupiman napsal:

    TickRate serveru vůči sobě samotnému je cca 30Hz. TickRate hráče vůči serveru a obráceně je jen 10Hz. A na steam fóru si hráči CS:GO stěžují na TickRate 64Hz.

    Jakejkoliv odkaz na množství features (padající mrakodrapy, animace atd.) jsou zcestný, tyhle věci se dějí lokálně a server se o ně nestará, ten jen posílá informace kdo koho vidí, kdo kde je a kdo na koho vystřelil. Raději vyšší frekvenci než padající mrakodrapy. K čemu mi je tohle eye candy, když se každý dvě minuty naseru, protože mě někdo zabije v přestřelce, kterou jsem měl jasně vyhrát, nebo umírám naprosto kreténským způsobem.

  • klody napsal:

    Nechtěl jsem se k tomu vyjádřit, ale budiž. Všichni nadáváte na to, že je tickrate pouze 10Hz a udivujete se proč tomu tak je. Proč není třeba 64 Hz jako v CS:GO, vždyť je to taky FPS ne? Možná budu znít moc jako někdo z DICE, ale má CS:GO až 64 hráčů nebo vozidla nebo destrukci. Určitě se najde víc věcí, které přidávají k množstvím dat, které se musí přenášet po síti.
    Nejsem si jist jak je to u BF4, ale BF3 má maximální propustnost kolem 60Kb/s (download). Proč jenom tak málo? Tak třeba proto, že MS a Sony určují maxima, které hry musí splňovat. XBox360 má maximum (download i upload) 8KB/s (64Kb/s). Pak taky v Americe pořád existují neskutečně stupidní měsíční limity na down/upload, které mají snad všichni poskytovatelé. Myslíte si, že tyto skutečnosti můžou ignorovat? Opravdu? Nikde jsem nemohl dohledat kolik využívá BF4 a měřit se mi to nechce, ale rozhodně to nikdo necucal z prstu někdy v polední přestávce.
    Takže máme velmi limitovanou propustnost, limitovaný výkon serverů (nikdo nebude kvůli 2 serverům BF4 kupovat nový HW), 64 hráčů, vozidla, hybridní hit reg (primární detekce na klientovi + kontroly na serveru), částečnou desktrukci, celkovou komplexnost hry + uspěchané vydání = bugy. Při 10 Hz – tzn. 10 packetů za s. máme +- k dispozici 1 KB na jednu zprávu. Do toho 1 KB se musí vlézt minimálně pozice všech hráčů, události typu destrukce, spawnutí střel + asi vektory, pozice (směr pohybu) vozidel z celé mapy a nějaké další kraviny.

    Tak to chápu já a může to být taky blbost. Nicméně podle mého názoru to nejsou amatéři, ikdyž třeba bojují s množstvím legacy kódu a uspěchaným vývojem. Na druhou stranu bych byl rád, abychom postoupili do 21. století co se týče toho množství vyměňovaných dat za s. Všude píšou, že potřebujete aspoň 1MB/s a přitom vám pomalu bude stačít dialup.

    Pokud alespoň na PC budou schopni zvýšit „TickRate“ na něco kolem 30Hz, bez problému s přetíženými servery atd., tak budu více než rád, že jsme se někam pohnuli. Ale aby to nebylo za takových 10 let 🙂

    • bambas bambas napsal:

      ….Do toho 1 KB se musí vlézt minimálně pozice všech hráčů, události typu destrukce, spawnutí střel + asi vektory, pozice (směr pohybu) vozidel z celé mapy a nějaké další kraviny….

      Do 1kB urcite nemusis rvat pozice vsech hracu, ale zcela jiste jen nejaky tvuj nejblizsi radius, co se tyce presne polohy. Poloha ostatnich hracu na mape uz urcite nebude tak velka informace.Destrukci zcela jsite posilate nebudes muset, to muze klidne pocitat server, takze bude stacit jen nejaky flazik CO a KDY. Navic do 1kB se da narvat opravdu hodne. Je to jen o optimalizaci. Nechci delat z DICE nejaky neschopny vyvojare, nepochybuju o tom, ze jsou to profici. Ale poslenich minimalne 7 let mam pocit, ze se na optimalizaci sere – a neni to jen pripad DICE a BFka, ale tak nejak vsech her. Dost vyvojovych studiich funguje tak, ze dostane nejaky polotovar (engine, framework, popripade jen jeho jadro) a na tom stavi, bez ohledu na to, co je vevnitr. Zkratka blackbox. A v tom bych videl ten problem. Pokud se nepletu, Tak Frostbite si DICE nevyvijeli sami, takze bych rozhodne nehazel spinu na ne. Nicmene i tak mi tohle vsechno okolo prijde jako alibismus, protoze technologie, algorytmy jsou dnes na takove urovni, ze to co jsi tu psal, jde zcela urcite nejak vyresit.

      Nicmene koncovemu uzivateli je tohle vsechno u prdele a nemusi ho to zajimat. Koupil si produkt, a chce, aby fungoval. Stejne jako kdyz si jdes koupit cokoliv jineho. Nezajimaji te technologicke problemy firmy, ktera produkt nabizi.

      Ale my tu asi nic nevyresime. Zkratka se nekde neco posralo a nemusi to byt jen chyby v kodu. Ty chyby v kodu muzou byt klidne dusledek nejakeho problemu uvnitr studia, o kterem my nevime a asi ani vedet nebudem. A EA mam na tom hodne velkej podil viny – tlak na studio a vsechny, kdo se na produktu podilej…
      Doufam, ze se to nejak vyresi, DICE se z tech sracek vyhrabe a vsichni budou spokojeny.

      • klody napsal:

        „Do 1kB urcite nemusis rvat pozice vsech hracu, ale zcela jiste jen nejaky tvuj nejblizsi radius, co se tyce presne polohy“.
        Nikdo nevidíme do jejich implementace, ale co bys definoval jako nejbližší radius? To jako že když vemu snipu, tak přes půl mapy uvidím jak lidi prolézají skrz objekty? Destrukci jsem nemyslel jako výpočet všech mikrodestrukcí (nějakou particle simulaci), ale některé objekty ve hře nejsou jenom ve stavech – v pohodě, zničené. Chodí nejspíš jenom změny, určitě to nebude hodně dat.
        Engine jinak dělalo přímo DICE a důvody proč je tam 10Hz bych chtěl od nich slyšet, ale to se asi nikdy nedovíme. Tohle bylo ve všech battlefíldech co jsem kdy hrál a když jsem si kupoval BF4, tak jsem nečekal odezvu hry jako například v CSku.

        „Nicmene i tak mi tohle vsechno okolo prijde jako alibismus, protoze technologie, algorytmy jsou dnes na takove urovni, ze to co jsi tu psal, jde zcela urcite nejak vyresit.“
        Víme jak je to v reálu, že. Technologie, algoritmy jedna věc, požadavky a čas druhá. A kdyby existovalo nějaké geniální řešení, tak by o tom podle mě věděli.

        Já to co psal neprezentoval jako úplnou pravdu, ale aspoň jako malý náhled na to, že těch 10Hz může mít opodstatnění, ať už je jakékoliv. A taky to, že za tím může být možná něco víc než jenom neschopnost někoho programovat a nebo navrhnout Netcode (Každý jim to předhazuje nonstop a oni jenom sedí a smějí se…).

        „Doufam, ze se to nejak vyresi, DICE se z tech sracek vyhrabe a vsichni budou spokojeny.“ Utopie 🙂

        • bambas bambas napsal:

          Presne tak, nevidime do jejich implementace, atd. Vsechno jsou to spekulace.
          Ad ten radius – nemusi to byt radius prece radius jen od tvoji postavy, ale objektu. Pokdu vezmes snipu, podivas se do optiky, tak radius se nebude pocitat od bodu 0, kde se ty nachazis, ale bod nula bude definovan minimalni hranici optiky (odkud vidis). Preci je pri pohledu do optiky se objeky jakoby „nahusti na mensi prostor“….Prepocet udela server, ty dostanes v podstate jen „souradnice“.
          Tot jen muj nazor, ve skutecnosti to bude zcela urcite jinak, sofistikovaneji, lepe. Do toho nemame vyvojarum co kecat. Ja osobne nevidim problem ve vyvojarich, ale nekde uplne jinde.

    • IsawU IsawU napsal:

      8KB je 8000 znaků i s háčkama a čárkama, Což je docela ubohý a v MS a S by se měli zamyslet nad realitou…. Povolit 100KB by neměl bejt problém a 100000 je už hodnota se kterouby se dalo spokojit..

    • Synkre napsal:

      Po pravde asi nevieš čo hovoríš. Pokiaľ som správne pochopil z toho príspevku na reddite tak klientom sú zasielané info o polohe nepriateľov 30 krát za sekundu, ale naopak klienti posielajú len 10 krát za sekundu informáciu o svojom pohybe. No a teraz mi vysvetli koľko vecí sa deje u klienta ? Pohne myšou, kľakne si, poprípade vyskočí. Všetky tieto informácie musia byť aj bez komprimácie dostatočne malé aby ich bolo možné poslať.

      A za daľšie – tvoje navážanie sa do CS:GO je trošku nepodložené, pretože Valve narozdiel od DICE vlastní komplet infraštruktúru serverov (všetky ich prevádzkuje a platí aj za pripojenie do siete etc). Tieto idú na tickrate (obnova za s) spomínaných 64. Všetky neoficiálne servery môžu mať ľubovoľný tickrate. Najbežnejší je 128 alebo 102. A teraz mi povedz, prečo v BF4 nie sú schopní povoliť aspoň na vlastných serveroch zmenu tohto tickrate resp. prečo sa to nedá zmeniť v klientovi? To je to počúvanie komunity ?

      BF ako séria ma veľmi bavila ,ale úplne som ju prestal hrať kvôli tomu zmrštenému netcode. A nechápem ako je možné, že sa tá hra hrá súťažne.

  • Dzardajs Dzardajs napsal:

    Tady máme krásnou ukázku netcodu.

    http://www.youtube.com/watch?v=MUujyziBYWs

    Ale mohlo se také jednat o hodně rozdílný ping 🙂

  • Duch Vanoc napsal:

    Díky za share kvalitního YT videa a YT kanálu 🙂 Ra1der bude mít radost, až mu řeknu, že jeho video má úspěch v ČR 🙂

  • noegoncz noegoncz napsal:

    Já si spíš myslím, že o tom všichni víme tak velký kulový. Opravdu si myslíte, že to nikdo z vývojářů neví ? Nevěřím tomu, že jsou to takový „moulové“, že dokážou vytvořit takovou hru a „nevšimnout“ si problému, o kterém mluví komunita BF už nějaký ten pátek. Spíš mě mrzí, že se k tomu oficiálně do dnes nevyjádřili (opravte mne, jestli náhodou ano, netuším). Možná, že by pak alespoň trochu upadla kritika a nenávist některých BF hráčů vůči vývojářům a vůbec ten hatering kolem, který je až k blytí.

  • Cobra napsal:

    Podľa mňa túto hru robili tak, aby sa to dalo hrať cez mobilné internetové pripojenie EDGE. Preto také nízke obnovovacie frekvencie.
    V 2015 vydajú BF5, ktorý sa bude hrať čisto iba na ipade 🙂

Napsat komentář