Ez a jelenlegi játék PC-k Szent Grálja: 144fps. Pazaroltál egy nagyszerű játékmonitorra, és a leggyorsabb CPU-val és az egyik legjobb grafikus kártyával párosítottad, amit pénzért lehet kapni. Olyan sima, olyan érzékeny, és készen állsz arra, hogy a kiváló képességeiddel – vagy legalábbis a magasabb frissítési frekvenciával – legyőzd az ellenfeleidet. Csak egy probléma van. Sok játékban nehéz elérni a 144 fps-t (vagy még többet), néha pedig egyenesen lehetetlen. Mi az oka?
A játék alapvető kialakításával és funkcióival kezdődik. Nem akarok árnyékot vetni a konzolokra (mindegy, teljesen árnyékot vetek a konzolokra), de amikor a jelenlegi generációs játékplatformok közül több nem tud 60Hz-nél nagyobb sebességgel kimenetet adni, akkor természetes, hogy a rajtuk játszott játékok nem törekednek a 60fps – vagy egyes esetekben még a 30fps – túllépésére. Ha egy játékfejlesztő ebből a szempontból indul ki, akkor nagyon nehéz lehet a későbbiekben korrigálni. Láttunk már olyan játékokat, mint a Fallout 4, amelyek a fizikát, a mozgás sebességét és egyebeket a framerátához kötik, gyakran nemkívánatos eredményekkel.
Ez azonban nem csak a 30 vagy 60fps megcélzásáról szól. A játékok komplexitása folyamatosan növekszik, és a komplexitás több számítás elvégzését jelenti. Az egyjátékos játékok jellemzően más élményt jelentenek, mint a többjátékos játékok. Az utóbbiak természetüknél fogva versenyképesebbek, ami azt jelenti, hogy a magasabb fps előnyösebb lehet a legjobb játékosok számára, és gyakran kihagynak egy csomó olyan dolgot, ami növelheti a frametime-ot.
Gondoljunk például az olyan játékokra, mint a Counter-Strike, az Overwatch, a PUBG és a Fortnite. Nagyon kevés olyan AI vagy NPC logika van, amire szükség van. A világ nagy része statikus, és csak a játékosok rohangálnak, ami sokkal kevesebb overheadet jelent, és végső soron magasabb framerátát tesz lehetővé.
Az elsősorban egyjátékos játékok más tészta. Nézd meg az Assassin’s Creed Odyssey, a Monster Hunter World és a Hitman 2 környezetét. Több száz lény, NPC és egyéb entitás lehet, amit fel kell dolgozni, mindegyik különböző animációkkal, hangokkal és egyéb effektekkel. Ez még a leggyorsabb CPU-kat is le tudja kötni, ahol a feldolgozás nagy része történik.
Igen, a CPU és nem a GPU. Bár gyakran a GPU-t tekintik a játékteljesítmény szűk keresztmetszetének, ez leginkább a megfelelő felbontás és grafikai minőség kiválasztásáról szól. Ha eléggé lejjebb veszed a beállításokat és/vagy a felbontást, akkor a CPU lesz a korlátozó tényező. Az összetett játékokban pedig ez a CPU-határ könnyen 144fps alá csökkenhet. Míg a 144fps eléréséhez gyakran gyors grafikus kártyára van szükség, ugyanilyen gyors CPU-ra is szükség lehet.
Az Assassin’s Creed Odyssey majdnem elérheti a 144fps-t … egy RTX 2080 Ti-vel.
A Hitman 2 nagyjából 122fps körüli CPU-szűkületbe ütközik.
A Monster Hunter World szintén nehezen jut 120fps fölé.
Nézzük meg az Assassin’s Creed, a Monster Hunter és a Hitman CPU benchmarkjait. Az 1080p-n és alacsony vagy közepes minőségben futtatva kiváló skálázás van a CPU-teljesítmény tekintetében, de a 144fps még mindig egy nehezen leküzdhető akadály. Ami még fontosabb, hogy a skálázás leginkább az órajelek sebességéből adódik, a magok és a szálak száma kevésbé játszik szerepet – különösen a 6 magos processzorok felett haladva. Ez azért van, mert a legtöbb játékot még mindig egyetlen szál uralja, amely a munka nagy részét elvégzi.
Fordítsuk meg a dolgokat, és gondoljunk az egyes képkockákra milliszekundumokban. Egyenletes 60fps esetén minden egyes képkocka legfeljebb 16,7ms grafikai és feldolgozási idővel rendelkezik. Ugorj 144fps-re, és minden egyes képkocka csak 6,9ms, ami alatt minden elkészül. De mennyi időt vesz igénybe valójában az aktuális képkocka renderelésének minden egyes része? A válasz az, hogy változó, és ez átvezet az Amdahl-törvény megvitatásához.
Az Amdahl-törvény lényege, hogy mindig vannak olyan kódrészek, amelyeket nem lehet párhuzamosítani. Képzeljünk el egy hipotetikus játékot, ahol egyetlen 4,0 GHz-es Intel magnak 50 ms-ra van szüksége ahhoz, hogy minden egyes képkocka összes számítását elvégezze. Ez a játék 20fps-re lenne korlátozva. Ha a játékkód 75 százaléka felosztható párhuzamosan futó részfeladatokra, de 25 százaléka egyetlen szálon fut, akkor függetlenül attól, hogy hány CPU-mag áll rendelkezésre, a legjobb esetben is csak 80fps teljesítmény érhető el egy 4,0GHz-es Intel CPU-n. Csináltam néhány gyors és piszkos szalvéta matekot, hogy szemléltessem:
A játékkód átdolgozása úgy, hogy csak 12,5 százaléka fusson egyetlen szálon, talán még 5 százalék is segíthet. Akkor 160fps vagy akár 400fps is lehetséges, de ez olyan fejlesztői időt vesz el, amit máshol jobban el lehetne költeni – és persze a CPU-knak nincs végtelen számú magjuk és száluk. A lényeg az, hogy korlátozott mennyiségű idő áll rendelkezésre a felhasználói bemenet, a játék állapota, a hálózati kód, a grafika, a hang, az AI stb. feldolgozására, és a bonyolultabb játékok természetszerűleg több időt igényelnek.
Még a 4 GHz-es és gyorsabb CPU-k és a több ezer GPU-mag együtt dolgoznak, 6,9 ms gyorsan eltelik, és ha egy 240 Hz-es kijelzőn 240fps sebességgel futnak a játékok, akkor csak 4,2 ms van egy képkockára. Ha valaha is akad egy kis fennakadás az út során – például a játéknak be kell töltenie néhány objektumot vagy textúrát a tárolóból, ami egy gyors SSD-n néhány ezredmásodpercig, egy merevlemezen pedig akár több tíz ms-ig is eltarthat -, a játék erősen dadogni fog. Ilyen világban élünk.
Mondjuk másképp. A modern PC-k másodpercenként potenciálisan több milliárd számítást képesek átrágni, de minden egyes számítás rendkívül egyszerű: A + B például. Egyetlen entitás logikai frissítésének kezelése akár több ezer vagy tízezer utasítást is igényelhet, és az összes ilyen AI és entitás frissítés még mindig csak egy kis töredéke annak, aminek minden egyes frame-ben meg kell történnie. A játékfejlesztőknek mindent egyensúlyba kell hozniuk ahhoz, hogy elfogadható teljesítményszintet érjenek el, és a PC-ken ez azt jelentheti, hogy a régi négymagos Core 2 Quad vagy Athlon X4 processzortól kezdve a modern Ryzen vagy 9. generációs Core CPU-n át a modern Ryzen vagy 9. generációs Core processzorokig, valamint az Intel integrált grafikától a GeForce RTX 2080 Ti-ig terjedő GPU-kon keresztül mindenre képes.
Ezzel olyan játékokat lehet készíteni, amelyek rendkívül magas képfrissítési sebességgel futnak. Ezt azért tudjuk, mert már léteznek. De ezek a játékok általában nem a legmodernebbek a grafika, az AI és más elemek tekintetében. Alapvetően egyszerűbbek, néha nem is olyan nyilvánvaló módon. Még a játék és a grafika komplexitásának csökkentése is csak egy bizonyos határig vezethet. A hétéves CS:GO 1080p-n egy túlhajtott 5 GHz-es Core i7-8700K-val körülbelül 300 fps (3,3 ms képkockánként) a maximum, és az akadozások a minimális fps-eket ennek körülbelül a felére csökkentik. A CS:GO 270-300fps sebességgel futtatható a GTX 1050-től a Titan RTX-ig, mivel a CPU a fő korlátozó tényező.
Röviden, a 144fps elérése nem csak a hardveren múlik. Hanem a szoftverről és a játéktervezésről, és néha csak el kell engedni. Ha a 144fps-es játékra fáj a szíved, a legjobb tanács, amit adhatok, hogy ne feledd, hogy a framerate (vagy frametime, ha úgy tetszik) nem minden. Versenyképes többjátékos módban, ahol minden lehetséges késleltetési előny segíthet, csökkentsd a beállításokat a minimumra, és nézd meg, hogyan fut a játék, és esetleg növelj néhány beállítást, ha van mozgástér.
Még ha nem is tudod tartani a 144fps-t vagy többet, a 144Hz-es frissítési sebesség még mindig fantasztikus – már a Windows asztallal való interakcióban is érzem a különbséget. A jobb minőségű 144 Hz-es kijelzők támogatják a G-Sync-et és a FreeSync-et is, amelyek segíthetnek elkerülni az észrevehető akadozást és szakadást, amikor kicsit 144fps alá esik. A tökéletesen sima képfrissítési sebesség jó lenne, de önmagában ettől még nem lesz nagyszerű egy játék. Tehát dőlj hátra, és egyszerűen csak élvezd az utazást, függetlenül a hardveredtől vagy a framerátától.
Újabb hírek