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.