Alapjaiban lehet rossz a The Division netkódja

A Titanfall egyik vezető programozója szerint nagyon úgy tűnik, hogy a The Division hálózati kódját alapjaiban rontották el.

Alapjaiban lehet rossz a The Division netkódja

Miután egyre több panasz érkezik a felhasználók részéről a The Divisionben tapasztalható csalásokkal és exploitokkal kapcsolatban, Glenn Fiedler úgy gondolta, hogy egy kicsit közelebbről is megvizsgálja a játékot, gondolatait pedig egy blogbejegyzés keretein belül osztotta meg velünk. Az úriember márpedig otthon van a témában, korábban ugyanis a Titanfall senior programozójaként dolgozott, előtte pedig a Sony Santa Monica stúdiónál volt vezető hálózati mérnök.

Fiedler hangsúlyozta, hogy ő konkrétan nem játszott a The Divisionnel, azonban végignézte a YouTube-on fellelhető videókat a csalásokkal kapcsolatban. Ezek között több olyan "apróbb" exploit akad, amit szerinte a Ubisoft tesztelőinek észre kellett volna vennie ugyan, de ezek még nem olyan égetők problémák.

Az igazán égető probléma szerinte például ebben a videóban látható:

Itt ugyanis a felhasználó egy kliens oldali programot használ arra, hogy átrakosgassa a memóriában az adatokat, és meg tudja változtatni a fegyver tulajdonságait, de olyan videókat is találni, ahol átrakja magát a pálya egyik pontjáról a másikra. Ez pedig Fiedler szerint annak a jele, hogy a The Division minden valószínűség szerint megbízható kliens oldali hálózati modellt használ. Ha pedig ez a helyzet, akkor a játék problémáit PC-n egyszerűen nem lehet majd megoldani, hacsak nem írják újra a teljes hálózati kódot. Mindez konzolokon nem kifejezetten nagy probléma, hiszen ott a felhasználók eleve nem tudnak hozzáférni és módosítani a klienst, vagy csalásra használható programokat futtatni (a konzolokon ezért viszonylag sok játék használ ilyen hálózati modellt egyébként).

Ellenőriz a szerver? Nem ez a jó kérdés!

Először a bétában lehetett arra utaló nyomokat találni, hogy a The Division szerverei nem igazán ellenőrzik a klienstől érkező inputokat. Ezt követően a Ubisoft is beszélt arról, hogy a végleges verzióban több szerver oldali ellenőrzést építenek be, de a játékosok még most is azt kérdezik: oké, de ha ennyi a csalás, akkor miért nincs még több ellenőrzés? Miért nem figyel oda jobban a szerver?

Fiedler azonban felhívja a figyelmet arra, hogy ez alapvetően téves gondolkodás, egy modern shooter hálózati részének egyáltalán nem így kellene működnie. Nem annak kell történnie ugyanis, hogy a játékos csinál valamit (mondjuk újratölti a fegyverét, vagy elkezd lövöldözni), azt a kliens elküldi a szervernek, a szerver ellenőrzi, hitelesíti minden egyes mozzanatát, minden játékos minden akciójáról eldönti, hogy biztonságos-e, majd mágikus módon felismeri a csalókat, és még ki is bannolja őket a játékból.

Fiedler leírja, hogy a modern kompetitív shooterek alapvető hálózati működését a Quake állította fel, és a Counter-Strike tökéletesítette, és azóta is ezt a modellt használja mindenki, többek között a Titanfall, a Call of Duty és az Overwatch is. Ennek alapvetően két eleme van: az egyik a kliens oldali előrejelzés, hogy a játékos ne érezzen lagot a saját cselekedeteit követően (például ha mozog, vagy lő). A másik, hogy valójában mi történik, az már a szerveren dől el, a szerver azonban igyekszik visszaszámolni, és kompenzálni a játékos lagját. Így tehát ha a kliensen mi eltaláltunk valakit, azt nagy valószínűséggel tényleg eltaláltuk, mert kompenzáció után a szerver is erre az eredményre fog jutni.

Csak annak kellene megtörténnie, ami a szerveren is megtörténik

A lényeg azonban mégiscsak az, hogy a játékos bármit is csinál, valójában a tényleges játék a szerveren történik. Csak az számít, amit a szerver csinál, és a szerver sosem bízik meg abban, amit a kliens csinál, legyen szó bármiről: mozgásról, lövésről, a lövés sebességéről, a töltények számáról, a nálunk lévő fegyverekről, stb., mindent kiszámol.

Ez tehát azt jelenti, hogy egy ilyen rendesen megírt netkód esetében hiába próbál bármit is mókolni a játékos, annak a végeredménye nem fog számítani. Ha például megnöveli valahogy a fegyvere tárát, vagy meggyorsítja a lövési sebességét, akkor ez nála a kliensen ugyan megjelenik, de ezek a golyók a valóságban semmilyen sebzést nem fognak okozni, hiszen igazából nem léteznek.

Ha meghackelik az inventoryt, és olyan fegyvert adnak maguknak, amivel valójában nem is rendelkeznek, az sem számít, hiszen a kilőtt golyók sebzését egy olyan fegyver alapján számolja ki a szerver, amiről úgy gondolja, hogy a játékos valójában rendelkezik vele.

Ha a memóriát hackelve átrakja magát a játékos egyik pozícióból a másikba, az is teljesen mindegy, hiszen valójában abban a pozícióban marad, ahol a szerver szerint lennie kell, és a többiek is ott fogják látni őt.

Van remény a The Division számára?

Fiedler szerint ha nem a fenti módon készülne el egy kompetitív shooter hálózati kódja, hanem fordítva, és a szerver tényleg megbízik a kliensben, és csak olyan eseményeket kér le "hitelesítésre", mint például, hogy "én most lelőttelek téged", az valójában sosem tehető teljesen biztonságossá PC-n.

"Remélem, hogy nem a megbízható kliensre épülő hálózati modellt használják. Remélem, hogy tartogatnak valami trükköt. Remélem, hogy valójában rendesen megírt hálózati kódjuk van, ami a szerver köré épül fel, és így meg fogják tudni oldani a problémákat. De szerencsétlen módon jelenleg minden jel arra utal, hogy nem ez a helyzet" - fejezi be az elemzést Fiedler.

Tesztek

{{ i }}
arrow_backward arrow_forward
{{ content.commentCount }}

{{ content.title }}

{{ content.lead }}
{{ content.rate }} %
{{ content.title }}
{{ totalTranslation }}
{{ orderNumber }}
{{ showMoreLabelTranslation }}
A komment írásához előbb jelentkezz be!
Még nem érkeztek hozzászólások ehhez a cikkhez!
Segíts másoknak, mond el mit gondolsz a cikkről.
{{ showMoreCountLabel }}

Kapcsolódó cikkek

Magazin címlap arrow_forward