Komolytalan#97
"Gondolom, az első részben valami olyasmire gondolsz, hogy PC-n fognak futni különféle Flash és Java alapú virtuális konzolok."
Nem erre gondolok, hanem arra, hogy a konzol típusa nem fog számítani. Le akarsz ma játszani mpeg4-es filmet? Veszel egy telefont, vagy dvd lejátszót, vagy számítógépet, vagy fényképezőgépet, vagy tökmind1 mit, lassan már a mikrohullámú sütő is lejátsza. Ugyanez lesz a játékokkal is. Semmi más nem kell hozzá, csak egy szabványos virtuális gép, amilyen pl a javaVM vagy a flash plugin, amely képes a webről letöltött jar, swf, akármi futtatására. Az hogy ez java lesz flash, vagy harmadik, az a következő 5-10 év kérdése. Az hogy így lesz-e az szerintem nem kérdés. Vagyis nem kihalnak a konzolok, hanem minden konzol lesz. A "csak konzolok" halnak ki.
"Nos amellett, hogy ez mindig lassabb lesz, mint egy spéci konzol-hardver (persze csak az adott cucc bevezetése utáni náhány évig),"
Lassabb, csúnyább, stb, és! olcsóbb. Meg kényelmesebb. Nem kell annyi drót, nem kell annyi szart kötözgetni, stb. Emlékszel DOSról Windowsra váltásra? Pl a Windowsos NFS2 egy hányadék, és kib.szott lassú is volt a DOS-os NFS-hez képest. DOSon alatt volt akkoriban már pl Magic Carpeet, amihez grafikában még sokáig nem nőttek fel a Windowsos cuccok, főleg a szoftver renderesek. Mégis a Windows fejlődött tovább a relative szabványos D3D, OpenGL miatt.
"túl könnyen törhető lenne. Így komolyabb játékok nem születnének."
Nem lesz törhető, mert ezzel gyakorlatilag minden játék MMO lehet (ha kell, ha nem, ez lesz a védelem). Vagyis kiszolgáló szerver nélkül csak egy halott keret, kiszolgáló szerver emulátort meg nem fognak mindenhez írni.
"Meg még hozzátenném azt is, hogy a játékprogramok életének nem majdnem egész a függvényhívások sora, csinálnak mást is bőven."
Ha egy függvény hosszabb mint egy képernyő, akkor valami el van rontva. Mondjuk ezt én se mindig tartom be, meg képernyőméret függő is a dolog, de tény hogy 100 sor fölött már nem igazán áttekinthetőek az egyes rutinok, pláne hogy ha másnak kell beleturkálnia.
A lényeg az, hogy ami hardware intenzív feladat azt szabványosítani kell, belerakni a virtuális gépbe (pluginbe, nevezd ahogy akarod), és ezt mint függvény meghívni. Így ugyanolyan sebességgel fut mintha natív kód lenne (merthogy kb az), viszont a platform és egyéb függetlenség megmarad. Ha ezek aránya elég nagy lesz, akkor a VM által futtatott kód már futhat lassan, nem okoz jelentős lassulást. Pl: ha egy pluginben neked kell egy tömböt rendezned, az idő. Ha van egy általános sort parancsod, amit a VM belül futtat, és csak az eredményt adja neked vissza, akkor ez kb ugyanolyan gyors lesz, mintha C++-ban írtad volna. Csak elfut macen, linuxon, windowson, mindenen, amire az adott VM meg van írva.
"Szóval ami a második esetet illeti, szerinted minden szolgáltató beállít valami szupergépet, ami többmillió felhasználó számára számolja a képet, hogy neki elég legyen valami vékonykliens (pl. a tévébe építve)?"
Nem, szerintem már ma is a fordított irány a jellemző. Az egy szerverre kapcsolódott kliensek teljesítménye általában több 100-1000x akkora, mint a szerveré. A vékony kliens architektúra gyakorlatilag azon bukott meg, hogy 10eFt-ért vehetsz olyan processzort, ami csak 5x lassabb mint az 500eFt-s. Ergo nem éri meg szerveren számoltatni, amit csak lehet műveletet ki kell passzolni a kliens felé. Amit a szerver számol azért fizetni kell a szolgáltatónak, amit a kliens számol azért jó esetben a kliens még fizet is (pl fizetős MMO játékok)!