A felhőben játszani jó! Vagy mégsem?

Az elméleti működés nem éppen biztató

Sokat hallottunk már a számítási felhőről. Az elképzelés borzasztóan egyszerű alapokra épül, vagyis a felhasználó által használt kliens helyett a program számításait egy interneten keresztül elérhető kiszolgáló dolgozza fel, majd az eredményt visszaküldi a kliens számára. Ez az elv számtalan helyzetben kiválóan működik, így adja magát az ötlet, hogy a játékok futtatását rá lehetne-e bízni a felhő erejére. Természetesen a válasz igen, de kérdés, hogy megéri-e, vannak-e buktatók, illetve az élmény mennyire lesz meggyőző. A felhős játék láthatóan érdekli a hardvergyártókat is. Az AMD már konkrétan erre a feladatra tervezett szervert is kínál, mely Fusion Render Cloud fantázianéven érhető el. Természetesen az NVIDIA sem rejtette véka alá, hogy az ötlet érdekli őket, míg az Intel anyagilag is komolyan támogatja a technológia kiterjesztését.

Mielőtt a gyakorlati tapasztalatokat bitekbe öntenénk, érdemes az elméleti részt elemezni, mivel komoly különbségek vannak a kliensgépen történő teljes feldolgozáshoz képest. Ahhoz, hogy ez érthető legyen, nagy vonalakban szemléltetjük, hogy manapság miképp működik egy kliensgépen futtatott PC-s játék. A felhasználó a beviteli eszközökkel vezérli a programot. Lényegében egy-egy gomb lenyomása egy-egy parancsot jelent, melyek az adott összeköttetésen keresztül eljutnak a masinába. A különböző szoftveres rétegeken áthaladva a kiadott utasítást a központi processzor feldolgozza, és elkezdi kiszámítani a jelenetet. A játékosnak persze szükséges egy visszajelzés, ami egy virtuális kamerán keresztül valósul meg. A jelenetben a játékos helyzetét a kamera határozza meg, ám ezt látható formába kell önteni. Itt kerül előtérbe a grafikus processzor, melynek a CPU átadja a szükséges információkat, hogy a felhasználó számára látható jelenetrészletből egy képkocka készüljön. A kiszámolt képkockát ezután a GPU elküldi a kijelzőnek, mely megjeleníti azt. Természetesen mindez borzasztó gyorsan történik, de a feldolgozás menetéből már most látszik, hogy a kiadott parancs és a hozzá tartozó képkocka között idő telik el. Ezt az időtartamot nevezzük input lagnak. Maga a jelenség kivédhetetlen, de az emberi agy számára egy bizonyos időtartam alatt lényegében észrevehetetlen.

A felhős játék működése
A felhős játék működése [+]

Az input lag mértéke természetesen nagyon függ az adott kliensgép képességeitől, beleértve ebbe a megjelenítőt és a beviteli eszközöket is. Utóbbi esetében legfeljebb 8 ms-mal érdemes számolni; ez attól függ, hogy az adott eszköz milyen frekvencián kommunikál a PC-vel. A legtöbb USB interfészre köthető termék 125 Hz-en dolgozik, de a játékosoknak készített megoldások esetében 1000 Hz-es paramétert is lehet látni, ami nyilván drasztikusan csökkenti az előbbi értéket. Ebből gyakorlatilag arra is választ kaptunk, hogy a hardcore játékosok miért nem szeretik az átlagos egereket. A PC belsejében zajló feldolgozás időtartama lényegében a kliensgép teljesítményétől függ, de 40 ms-on belül végezni kell, különben a program sebessége 25 képkocka/másodperc alá esik, ami mindenki számára érezhető akadást eredményez.

A kijelzőn a kép megjelenítéséhez szintén idő kell. Ez megint sok dologtól függ, de megfelelő szinkronizáció mellett pár ms-ra is csökkenthető a késés. Látható, hogy rengeteg tényező játszik szerepet az input lag mértékében, így általánosan nem lehet kijelenteni, hogy az adott kliensgép milyen késleltetést eredményez, de felállítható egy ideális eset, amiből ki lehet indulni. A játékosok körében elfogadott a 60 képkocka/másodperces teljesítmény, mint igény a folyamatos képmegjelenítéshez. Ha az adott program ilyen tempóval fut, és a megjelenítő frissítése is 60 Hz-re van állítva, akkor a beviteli eszközön kiadott parancs és a megjelenített kép között 40 ms telik el, ami az adott szituációt tekintve megközelítőleg két és fél képkocka késés. Természetesen lehet 120 képkocka/másodperccel és 120 Hz-cel is számolni, ami még alacsonyabb input lagot eredményez, de elégedjünk meg az előbbi számítással, hiszen a 40 ms lényegében észrevehetetlen késés.

Fontos azonban megjegyezni, hogy az előbbi számítás csak akkor érvényes, ha az adott gépben egy CPU és egy GPU van. Ha a konfiguráció AFR technológiát alkalmazó CrossFireX vagy SLI kiépítést használ, akkor a teljes számítás borul attól függően, hogy hány GPU van összekötve. Példának okáért két darab, AFR módban működő GPU már 80 ms-os input lagot eredményez fenntartva 60 képkocka/másodperces tempót és a 60 Hz-es frissítést a kijelzőre. Ez az eredmény még mindig megfelelő lehet, de három, illetve négy GPU esetében – az előbbi számításoknál használt körülményekkel – már 100 ms fölötti késleltetésről beszélhetünk, ami véleményünk szerint magas érték, de nyilván ez az igényektől függ, így lehet, hogy számos felhasználónak még megfelel.

Természetesen 120 képkocka/másodperc és 120 Hz mellett már két AFR módban üzemelő GPU-val is hozható a 40 ms-os késleltetés, azaz a CrossFireX, illetve SLI nem menthetetlen. Semmiképp se feledjük, hogy az input lag nem a folyamatos futásért felel, csupán egy mérőszám a kiadott parancshoz tartozó képkocka számításának időigényéről. Érthetőbb példával előállva, a játék akár 200-300 ms-os input lag mellett is futhat tökéletesen folyamatosan, de ilyenkor egy akciójátékban megszokottnak mondható, úgynevezett fejlövéshez a virtuális karakter elé kell célozni, és nem a fejére, ahogy az elvárható lenne. Ez természetesen nem elfogadható, és itt jön elő a felhős játék egyik legnagyobb, gyakorlatilag kivédhetetlen problémája.

Azt már látjuk, hogy a kliensen a számítás hogyan működik, de most nézzük meg, hogy mindez a felhőben miképp zajlik! A beviteli eszköz és a megjelenítő késleltetését most hanyagoljuk, mert ezekre az előző bekezdésben tárgyalt szabályok vonatkoznak. A felhő esetében a legnagyobb különbség, hogy a számítások nem a kliensgépen zajlanak, hanem egy távoli szerveren. Ennek megfelelően a parancsot nem a processzor dolgozza fel, hanem a szolgáltatáshoz tartozó program teljes egészében elküldi az adatokat a szervernek. Itt jön képbe az internet, ahol megszokott dolognak számít a késleltetés. Teljesen világos, hogy szerver oldalon elképesztően magas teljesítmény áll rendelkezésre, így a feldolgozás nagyon gyors lehet, ám a komoly büntetés a világhálón valósul meg.

A teljes késleltetés attól függ, hogy a szerver mennyire van messze, illetve a felhasználó internetelésének sebessége is beleszól ebbe. A kész képkocka letöltése szintén időbe telik, majd ezt be kell tölteni a grafikus vezérlő frame bufferébe. Mindezt végrehajtva a képkocka megjeleníthető lesz a kijelzőn. Mivel borzalmasan sok tényezőtől függ a felhős modell esetében az input lag, így még elméleti szinten sem lehet pontos értékkel előállni, de minimum 100 ms-mal érdemes számolni, ám az átlagos lag inkább 160 ms-hoz közelíthet. Ez egy óriási problémája lehet az egész elképzelésnek, mert számos hardcore játékos érzékeny erre a jelenségre, így értékelhetetlennek találják majd az egész szolgáltatást.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények

Hirdetés