Emlékszel még arra az időre, amikor a Prototype 2 megjelent? A Radical Entertainment által fejlesztett akció-sandbox játék elképesztő szabadságot, pusztítást és adrenalinlöketet ígért. James Heller bőrébe bújva New York romjain keresztül száguldani, ellenségeket felaprítani, helikoptereket letépni az égről, vagy éppen egy tankszörnyet darabokra tépni – mindez fantasztikusan hangzott, és papíron hozta is az elvárásokat. De valahol mélyen, a grafikai beállítások és a hardware-kompatibilitás sötét bugyraiban ott lapult egy probléma, egy suttogó rejtély, ami azóta is kísérti a játékosokat: a hírhedt 17 FPS-es limit.
Igen, jól olvastad. Sokan, a világ legerősebb gamer gépeivel felszerelkezve is azt tapasztalták, hogy a játék FPS száma indokolatlanul alacsony, gyakran stabilan 17 körüli értékre esik bizonyos területeken, harcok közben, vagy akár a semmi közepén. De vajon mi áll a jelenség hátterében? Egy egyszerű optimalizálási baki? Vagy valami mélyebben gyökerező, a játékmotor architektúrájában rejlő probléma?
A Titanium 2.0 Engine és a Multi-Core Mítosz
A Prototype 2 motorja a Radical Entertainment saját fejlesztésű Titanium 2.0 Engine volt. Ez a motor elképesztő ambíciókkal rendelkezett: képes volt hatalmas, nyitott városi környezeteket kezelni, rengeteg NPC-vel, járművel, dinamikus rombolhatósággal és hihetetlenül gyors tempójú akcióval. Amikor azonban a játék megérkezett a PC-re, kiderült, hogy a motor egyik legnagyobb gyengesége éppen a modern számítógépek egyik alapvető erősségét, a többmagos processzorok kihasználását képtelen volt hatékonyan kezelni.
Ez a jelenség az, amit CPU-bottlenecknek hívunk. A legtöbb modern játék úgy van megtervezve, hogy a számítási feladatokat (AI, fizika, asset streaming, stb.) elossza a processzor magjai között, így maximálisan kihasználva a rendelkezésre álló teljesítményt. A Titanium 2.0 Engine ezzel szemben, valószínűleg a fejlesztés idején domináns konzolarchitektúrák, vagy egyszerűen a tervezési prioritások miatt, nagyrészt egyetlen processzormagra terhelte a kritikus feladatokat. Ez azt jelenti, hogy még egy 8 vagy 16 magos, szörnyeteg CPU esetén is, a játék teljesítményét az a bizonyos egyetlen mag limitálta, hiába volt a többi mag szinte tétlen. Amikor ez a mag elérte a maximális terhelését, a játék „lefagyott” ezen a ponton, és az FPS szám drasztikusan leesett, gyakran a legendás 17 FPS-re.
Gondolj bele: van egy űrhajód (a processzorod), ami képes fénysebességgel repülni, de csak egy kis csővezetéken keresztül kapja az üzemanyagot. Hiába van tele a tank, ha a szűk keresztmetszet miatt csak cseppenként jut el hozzá az energia. Ez a Prototype 2 esete a modern CPU-kkal.
A Nyitott Világ és a Pusztítás Ára
A nyitott világú játékok fejlesztése eleve hatalmas kihívást jelent, és a Prototype 2 ezen a téren is extrém volt. A város tele volt élettel, járókelőkkel, járművekkel, ellenségekkel, mindezt dinamikusan kellett megjeleníteni és kezelni. A játékmenet egyik kulcseleme a teljes rombolhatóság volt: épületek dőltek össze, autók robbantak fel, katonák és szörnyek estek szét darabokra. Ez hihetetlen mennyiségű fizikai számítást igényel valós időben.
Minden egyes robbanás, minden széteső elem, minden NPC mozgása és AI döntése a processzor feladata. Ha a motor nem képes ezeket a feladatokat hatékonyan szétosztani a magok között, akkor egy-egy sűrűbb jelenetnél, ahol sok fizikai interakció és AI tevékenység zajlik, az egyetlen túlterhelt mag egyszerűen bedobja a törölközőt. Ebből adódik a „szaggatás”, még akkor is, ha a videókártya kihasználtsága alacsony, mert egyszerűen vár a CPU-ra, hogy az elküldje a következő képkockát.
Ráadásul a játék valószínűleg nem volt a leghatékonyabb az asset streaming terén sem. A nyílt világú játékok folyamatosan töltik be a szükséges adatokat a memóriából a hard drive-ról, hogy a játékos soha ne lásson töltőképernyőt. Ha ez a folyamat nem kellően optimalizált, az is hozzájárulhat a mikroszaggatásokhoz és az ingadozó FPS-hez.
Konzolról PC-re: Az Elhanyagolt Port
Nem titok, hogy sok játékot elsősorban konzolokra fejlesztenek, majd utólag portolnak PC-re. A konzolok zárt, fix hardverarchitektúrával rendelkeznek, ami lehetővé teszi a fejlesztők számára, hogy rendkívül mélyreható optimalizációt végezzenek. A PC-k ezzel szemben végtelen hardverkonfigurációt kínálnak, ami sokkal nehezebbé teszi az optimalizálást.
A Prototype 2 valószínűleg tipikus esete volt egy olyan PC-portnak, ami nem kapott elegendő figyelmet és erőforrást. A konzolos verziók még elmentek a maguk módján, de a PC-s verzió nem tudott profitálni a magasabb órajelű CPU-kból és a több magból, mert a motor belső működése egyszerűen nem volt rá felkészítve. Ez nem egyedi eset, számos más, hasonló korú játéknál is megfigyelhető volt a jelenség (gondoljunk csak a GTA IV kezdeti állapotára, vagy a Saints Row 2 hasonló CPU-gondjaira).
Megoldások és Mítoszok a Játékosok Szemszögéből
A játékosok természetesen próbáltak mindenféle trükkel javítani a helyzeten. Az egyik leggyakoribb javaslat a CPU affinitás beállítása volt a Feladatkezelőben. Az ötlet az volt, hogy a játékot egy bizonyos maghoz „kössék”, hátha az segít. Bár néha érezhető volt némi javulás, az alapvető probléma, a motor egyetlen magra való támaszkodása megmaradt. Mások a grafikai beállítások drasztikus csökkentésével próbálkoztak, ami viszont a játék vizuális élményét rontotta le jelentősen, gyakran nem arányosan javítva az FPS-t.
Érdekes módon a modern, sokkal erősebb processzorok megjelenésével a helyzet némileg javult. Nem azért, mert a motor hirtelen megtanulta volna a többmagos kihasználást, hanem egyszerűen azért, mert a mai egyetlen magok annyira erősek, hogy még a Prototype 2 CPU-igényes feladatait is képesek valamennyire kezelni. Ennek ellenére a játék sosem fogja elérni azt a sima, magas FPS-t, amit egy megfelelően optimalizált, modern cím. A 17 FPS-es mítosz tehát továbbra is él, mint egy emlékeztető a régi idők optimalizálási kihívásaira.
A Tanulság és a Prototype Öröksége
A Prototype 2 esete kiváló példája annak, hogy egy lenyűgöző játékélményt nyújtó, ötletes cím hogyan bukhat el a technikai megvalósítás, különösen a motoroptimalizálás hiányosságai miatt. A Radical Entertainment próbálta a maximumot kihozni a Titanium Engine-ből, de a PC-s port sajnos elvérzett a processzorok multi-core architektúrájának kihasználatlansága miatt.
A fejlesztők azóta sokat tanultak. A mai AAA játékok már szinte kivétel nélkül kihasználják a többmagos processzorokat, és a motorok is sokkal skálázhatóbbá váltak. A Prototype 2 mégis beírta magát a történelemkönyvekbe, nemcsak egyedülálló játékmenete miatt, hanem azért is, mert ékes bizonyítéka annak, hogy a puszta nyers erő nem minden. A jól átgondolt, optimalizált kód legalább annyira, ha nem jobban számít, mint a hardware specifikációja.
Összességében a Prototype 2 továbbra is egy szórakoztató, egyedi játék. Ha az ember el tudja fogadni a technikai korlátokat és az ingadozó képkockasebességet, akkor egy felejthetetlen élményben lehet része. A 17 FPS-es rejtély pedig nem csak egy bug, hanem egy történelemlecke is a játékfejlesztés fejlődéséről és a hardver-szoftver közötti örök táncról.