Vélemény: rémálom komoly játékot tervezni Androidra, de a Google-t nem zavarja

A Vulkan egyáltalán nem megoldás, csupán egy grafikus API, ami csak úgy magától nem könnyíti meg a fejlesztők dolgát.

Ha a konzolokat nem számítjuk, akkor jelenleg három elterjedt platformot célozhatnak a játékfejlesztők a komolyabb projektjeikkel. Ezek közül egyik nyilván a Windows, hiszen sokaknak van PC-jük, így biztos meglesz a megfelelő vásárlóbázis, míg a másik az iOS, amely gyakorlatilag az ultramobil piacot tekintve számít jelentős tényezőnek. A harmadikat szándékosan hagytuk utoljára, ugyanis az Android az ultramobil szegmenst tekintve, pusztán a számok tekintetében igen komoly hátteret tudhat magáénak, de olyan méretetlenül komoly a fragmentáció, amely gyakorlatilag már az egész platformot veszélyezteti.

Ha csupán az operációs rendszereket tekintjük, akkor a Windows, az iOS és az Android frissítési politikája között jelentős különbségek vannak. Az iOS tiszta sor, az Apple kínálja a szoftvert és a hardvert is, tehát alapvetően minden lehetőségük megvan arra, hogy az eszközük mögé a legjobb hátteret biztosítsák. A Windows esetében kicsit bonyolultabb a helyzet, de függetlenül attól, hogy a hardverek jelentős többségét nem a Microsoft szállítja, az operációs rendszer frissítéseit biztosítják, tehát a maguk dolgát ugyan nem teszik könnyűvé, de igen szorosan együttműködnek a partnereikkel, hogy a Windows Update szolgáltatáson keresztül a frissítéseik, illetve a fontosabb eszközillesztők elérhetők legyenek.

A platformok közül az Android a legérdekesebb, ugyanis az operációs rendszer frissítéseiért az adott eszköz gyártója felel, és a Google nem igazán erőlteti azt, hogy a régebbi ultramobil szerkezetekre felkerüljön a legújabb verzió. Mindez azt jelenti, hogy használt eszközökön sokféle Android lehet, sokféle verziójú eszközillesztőkkel, ami borzasztóan megnehezíti a fejlesztők dolgát. A sokat reklámozott Vulkan API elérhetősége erre csak rátett egy lapáttal, ugyanis a Google még a legújabb Android verzióban sem tette kötelezővé a Vulkan implementációk szállítását. Persze a gyártók érzik ennek a jelentőségét, és majdnem mindenki kiad egy megfelelő meghajtót az érintett API-hoz.

Elméletben egyébként nem kellene ebből gondnak lennie, az Android fejlődik, annak új változatait ki lehetne adni a modernebb eszközökre, illetve az ARM, az Imagination és a Qualcomm is folyamatosan fejleszti az érintett grafikus vezérlőkhöz tartozó Vulkan implementációt, tehát ezt is nyugodtan lehetne szállítani a különböző frissítésekben.

A fentiekből látszik, hogy ha lenne egy aprócska kontroll a Google részéről, akkor működhetne az egész, de a keresőóriás keze nagyjából megáll a saját hardvereinél. Ezekre vállalják a terméktámogatást, míg a többi gyártó eszközéért a kisujjukat sem mozdítják. Emiatt nem csak az a gond, hogy rengeteg eltérő Android verzió van a telefonokon és tableteken, hanem az is probléma, hogy az egyes grafikus vezérlők a hardver tekintetében hiába ugyanazok, a telepített Vulkan meghajtó már eltérő. Ráadásul a PC-s környezethez képest itt azért komoly hiányosságok is vannak, mivel nem túl sok pénzt ölnek az érintett gyártók a grafikus eszközillesztő fejlesztésébe. Emiatt ezekben bizony komoly hibák is vannak, amit addig nem lehet letudni, amíg az adott eszköz gyártója nem hajlandó a frissítést biztosítani.

Szintén nem kedvez a fejlesztők számára az egyes integrált grafikus vezérlők konfigurálása. Az ARM és az Imagination nem különösebben tesz ajánlásokat, hogy az egyes licencelt fejlesztéseikhez mennyi memória legyen hozzárendelve. Úgy vannak ezzel, hogy majd az eszköz gyártója dönt erről. Olyan mérhetetlenül sok variációs lehetőség van viszont, hogy szinte minden cég mást választ, amit a program oldalán külön le kell kezelni, hiszen a Vulkan már egy explicit API, vagyis a memóriamenedzsment közvetlenül az alkalmazás oldaláról történik. Nagyon egyszerű példán szemléltetve az egészet, a problémák gyökere ott van, hogy hiába van rengeteg androidos eszközben egy adott típusú integrált grafikus vezérlő, ezek paraméterezése a memóriára, illetve már a konkrét Vulkan implementációra vonatkozóan is eltérő. Emiatt az applikáció oldalán figyelembe kell venni az összes különbséget, annak ellenére, hogy a hardver megegyezik.

A fentiek miatt az Androidon ugyan érezhető a Vulkan API-ra való átállás, de sajnos eléggé lassan történik, mivel hiába vérzik legalább ezer sebből az OpenGL ES, akkor sincs a mai eszközök erre vonatkozó meghajtóiban annyi hiba, amennyi a Vulkan eszközillesztőkben, és még a memóriamenedzsment is könnyebb. Az egész viszont probléma a Google számára, hiszen az Apple rendkívül jól áll a konkurens Metal API terjesztésével, nagyon jól fogják ugyanis azt a bizonyos kormányrudat, amivel egyre nagyobb előnybe kerülnek szoftveres szempontból.

Az egész jelenség azért kellemetlen, mert egyre több gyártó jelentkezik úgynevezett gamer telefonnal. Android mellett viszont nem tudni, hogy mire fel. Ha ebből a platformból a Google egy játékosok számára értékelhető felületet akar csinálni, akkor minimum arra lenne szükség, hogy kitalálnak valamit arra, hogy a gyártók könnyebben frissíthessék a szállított Vulkan implementációt, mivel jelenleg sokszor az van, hogy egy adott eszköz elérhetővé válik egy bizonyos verziójú Vulkan meghajtóval, és az egész életciklusát azon teljesíti, nem törődve azzal, hogy abban milyen hibák vannak. A fejlesztők számára tehát van egy végtelenül töredezett platform, sok eltérő hardverkonfigurációval, sok eltérő eszközillesztővel, és erre kell játékot írni, ami jelenleg úgy néz ki, hogy kiválasztják a legelterjedtebb telefonokat és tableteket, amelyekre külön kell optimalizálni, hogy egyáltalán működjenek.

Csak összehasonlításképpen. A Microsoft Windows platformjához az Intel, az AMD és az NVIDIA kéthavonta minimum egy új eszközillesztőt biztosít, jellemzően jóval többet, de ennyit biztosan. És még ilyen körülmények között is bizony becsúszik némi hiba a Vulkan implementációkat figyelembe véve. Ez a fejlesztés velejárója, de nincs különösebb gond, pár héten belül jön valamilyen javítás. Emiatt hiába töredezett platform a Windows, a Microsoft nagyon erősen segíti a gyártókat abban, hogy működjön a felépített rendszer. Lehet, hogy nem konzolszintű, "letölt és futtat" típusú az élmény, de kisebb hibák mellett életben van és fejlődik. Ehhez képest bizony lehet találni nem kevés olyan androidos eszközt, amelynél az előtelepített Vulkan implementáció bizonyos szempontból hibákat tartalmaz. Talán a felhasznált integrált grafikus vezérlő tervezője még kínál is rá javítást, de a felhasználónak mindez elérhetetlen, amíg az eszköz gyártója nem látja úgy, hogy ezt a frissítést biztosítani kellene. Márpedig a gyakorlat azt mutatja, hogy a legtöbb gyártó ezekkel a kérdésekkel nem törődik, nagyjából úgy vannak vele, hogy majd a fejlesztők valahogy a program oldalán kezelik a problémákat. A piac nagyságát tekintve ezt sok stúdió meg is teszi, de pusztán a korábbi évek tapasztalataiból kiindulva mérhetetlenül nagy optimizmusra vall pár cég részéről, hogy a teljes Android ökoszisztéma aktuális kontrollját figyelembe véve a gamer telefonokat egyáltalán realitásnak érzik.

Azóta történt

Előzmények

Hirdetés