Amit az AMD tesz a PC-s játékokért

A Gaming Evolved partnerprogram

Bár manapság a a legtöbb nagy kiadót leginkább a konzolok érdeklik, a PC-s játékok helyzete sem mondható túlzottan problémásnak. Már csak azért sem, mert a PC-piac igen nagy, ráadásul három cégnek is érdekében áll ezt fenntartani. Nevezetesen az AMD-ről, az NVIDIA-ról és az Intelről van szó, amely vállalatok tesznek is azért, hogy elfogadható minőségű PC-s játékok szülessenek. Ebből a szempontból úgy gondoltuk, hogy elkészítünk egy cikksorozatot, amely pont azzal foglalkozik, hogy melyik érintett mit tesz hozzá a közöshöz, ami végtére is előnyt kovácsolhat a PC-s játékosok számára.

Első körben az AMD Gaming Evolved partnerprogramját, illetve játékfejlesztőket segítő politikáját vesszük górcső alá, de mindenki sorra kerül, minden érintett külön cikket kap. Mindenek előtt érdemes felidézni egy kisebb történelmi hátteret, mivel az AMD úgymond bevásárolta magát a PC-s játékok világába, amikor 2006-ban megvették az ATI néven ismert céget. Utóbbi vállalat rendelkezett saját partnerprogrammal, amely a Get In Game névre hallgatott. Ez az ezredforduló elején nem működött tökéletesen, mivel nagyon specializált rendszer alapján zajlott a fejlesztők segítése. A koncepcióval ugyan sikerült megnyerniük a Valve-ot, így a Half-Life 2 például egy Get In Game cím volt, de a szoftverfejlesztők nagy része nem szeretett a végletekig optimalizálni, vagyis sokak számára nem volt kiemelten fontos az ATI szakmai segítsége.

A Get In Game partnerprogram a fentiek következtében megszűnt, miután az AMD felvásárolta az ATI-t. Helyette viszont elindult egy másik vonal, ami a máig létező Gaming Evolvedet eredményezte, amely ma Ritche Corpus vezetésével működik. Ennek az alapjai nem sokban különböznek az elődnek számító Get In Game-től, tehát a cél a jó optimalizálás elérése, de új dolognak számított, hogy az AMD meghallgatta a fejlesztők igényeit, illetve saját házon belüli fejlesztéseket is levezényelt, amelynek eredményét a partnerek felhasználhatták. Persze az évek során a Gaming Evolved sokat változott, így mindig az aktuális piaci helyzethez igazodott. Ez mára elért arra a pontra, hogy az AMD már a fejlesztőpartnerek extrém kívánságait is teljesíti, ami tulajdonképpen azt eredményezi, hogy a gyártó a fejlesztéseinek jó részét a szoftvercégeknek rendeli alá.

Gaming Evolved

A Gaming Evolved egyfajta kiegészítésének tekinthetők még a Never Settle promóciók, amelyeken belül az AMD ingyen játékokat biztosít az egyes Radeonokhoz. Ez relatíve új dolognak tekinthető, de logikus irány, hiszen a kiadókkal való egyre szorosabb kapcsolat azt is jelenti, hogy az AMD egészen olcsón juthat játékkulcsokhoz. Egyszerű üzlet ez, hiszen a kiválasztott alkotások kapásból sokszázezer, vagy akár pár millió dolláros bevétellel indulnak PC-n. Van azonban egy érdekes része is ennek a koncepciónak, ugyanis mára az AMD rengeteg kiadóval van kapcsolatban, vagyis a Never Settle promóció részének lenni ma egyfajta jutalommá vált. Fontos kritérium, hogy oda kell figyelni az adott játék PC-s portjára, így az AMD azokkal a kiadókkal már le sem szerződik, akiknek a PC csak egy másodlagos platform. Friss információink szerint jelenleg az Electronic Arts, a Square Enix, a SEGA, a Nordic Games, az 505 Games, a 2K Games, a Capcom és a Deep Silver rendelkezik olyan szerződéssel, amely lehetőséget ad a Never Settle vagy hasonló promóciókban való részvételre.

A felsorolt kiadók kapcsán érezhető, hogy az AMD elsődlegesen az AAA kategóriás multiplatform címek támogatását tartja fontosnak. Persze a MMO és MOBA címek, illetve az eSport sincs megvetve, de érezhetően kisebb az ide irányuló figyelem. Ez részben a Gaming Evolved működésével kapcsolatos koncepció, mivel az MMO és MOBA címek tervezése másképp zajlik, vagyis szinte egyetlen fejlesztő sem tekinti kritikusnak a komoly optimalizálást. Maguk az MMO és MOBA programok is hosszabb távú befektetések, azaz egy termék életciklusa ideális esetben 4-6 év, vagy akár hosszabb időtartam is lehet, amikor számolni kell azzal, hogy a tervezett életciklus közepén le lesz cserélve a grafikát biztosító alrendszer, vagyis eleve nem éri meg jó teljesítményre kihegyezni a játékot.

Az AMD ennek a fejlesztési koncepciónak a kiszolgálására nincs igazán berendezkedve, mivel az MMO és MOBA fejlesztéseket vezénylő stúdiók inkább azt szeretik, ha a hardverpartnerük elvégzik helyettük a munkát ezzel átvállalva a költségek egy részét is. Az AMD ezt nem szokta megtenni, mivel az elkészített különböző technikáik és effektjeik sorra nyílt forráskódúak, vagyis ahhoz minden partnerüknek hozzá kell tennie a magáét, ha jó eredményt szeretnének látni. Erre pedig főleg az AAA kategóriás multiplatform címeknél van meg az erőforrás.

A fejlesztőeszközök

Az előbbi oldal alapján érezhető, hogy az AMD nagyrészt az önálló munkavégzést tartja szem előtt. A legtöbb szoftverpartnerük pont ezt kéri tőlük, tehát teljesen az igények kiszolgálása a cél. Ez a fejlesztőeszközökön és a különböző segítségeken is meglátszik.

A fejlesztőeszközök között a GPU PerfStudio, a GPU ShaderAnalyzer és a CodeXL érhető el a partnerek számára. Ezek mindent biztosítanak, amelyek szükségesek a megírt kódok alapos elemzéséhez. Az AMD ráadásul a GCN architektúrák közül a S.I. (Southern Islands) és a C.I. (Sea Islands) verziókat publikusan dokumentálja, illetve legújabb V.I. (Volcanic Islands) opcióhoz is lehet kérni dokumentációt, de utóbbi egyelőre titkos, így csak a kiemelt fejlesztőpartnerek férhetnek hozzá.


A GPU PerfStudio részletesebben

A programozók számára sarkalatos pont az úgynevezett GCN disassembler, amely a CodeXL IDE (integrated development environment, azaz integrált fejlesztői környezet), ezen belül is a CodeXLAnalyzer modul része. Utóbbi az egyik legfontosabb tényező a mai PC-s játékfejlesztés világában, ugyanis a fejlesztők képesek szabványos HLSL (High Level Shading Language) kódokat írni a Microsoft specifikációi szerint, de azt már nem láthatják, hogy az abból fordított Direct3D bájtkód hogyan fordul le az adott hardver utasításarchitektúrájára. Mint ismeretes ez az egész rendszer igen összetett, ami azt jelenti, hogy a magas szintű kód több lépcsőn keresztül jut el a hardverhez, vagyis több fordítás szükséges ahhoz, hogy az adott shader program egyáltalán fusson. Ebből a szempontból ráadásul különböznek is az API-k. Többek között a Microsoft DirectX API-jában van egy szabványos referenciafordító, amely a HLSL shadert előbb egy szabványos reprezentációra fordítja, ami tulajdonképpen a Direct3D bájtkód, majd az adott grafikus meghajtó ezt a kódot fordítja le az adott hardver utasításarchitektúrájára.

A GCN disassembler azt a célt szolgálja, hogy a fejlesztő a kész Direct3D bájtkódból kapjon egy olyan állományt, amely pontosan azt tartalmazza, hogy a hardveren az adott kód hogyan fog futni. Mivel a GCN architektúrák dokumentációi publikusak, illetve idővel azok lesznek, a fejlesztő képes látni, hogy a programja a hardver szintjén hol ütközik limitekbe. Az említett információkat kiegészíti a CodeXLAnalyzer a skalár- és a vektorregiszterek, illetve a helyi adatmegosztás (LDS) használatával kapcsolatos statisztikákkal, vagyis a programozó egy komplett képet kap arról, hogy mit kellene változtatnia a HLSL kódon, hogy az a hardver szintjén gyorsabban fusson.

A GCN disassembler ahhoz is segítséget nyújt, hogy a fejlesztők publikus csatornákon keresztül is adhassanak egymásnak tanácsot a hardver jobb kihasználására vonatkozóan. Utóbbi főleg azért nem jellemző, mert a gyártók rengeteg úgynevezett NDA-s, azaz titoktartási megállapodás alá eső információt osztanak meg a partnereikkel. Ezeket csak egy szűk fejlesztői csoport ismeri még egy nagy stúdión belül is. Ha azonban valaki talál valami új és értékes optimalizálási lehetőséget a GCN disassembler használatával, akkor azt szabadon megoszthatja a világgal. Ennek megfelelően ezt az optimalizálási lehetőséget más fejlesztők is elkezdhetik használni, ami összességében gyorsabb kódokat eredményez.

Speciális igények

Az AMD koncepciójának másik sarkalatos pontja a fejlesztőpartnereik speciális igényeinek kiszolgálása. Ennek egyik eleme a Mantle API, amelyet jelenleg csak kérésre érhetnek el az érdeklődők. Ezt a rendszert a fejlesztők kérték, és az AMD saját bevallása szerint majdnem 100 partnerrel dolgoznak jelenleg. Az érintettek 20%-a professzionális szoftvereket fejleszt, míg a többi partner játékfejlesztő. A hivatalosan bejelentette adatok szerint a Mantle API hét videojáték-motorba biztosan beépül, vagy akár már be is épült. Egészen pontosan a Frostbite (Frostbite Team), a CryEngine (Crytek), a Nitrous (Oxide Games), az Asura (Rebellion), a Gamebryo (Gamebase), a LORE (Firaxis) és a Panta Rhei (Capcom) rendszerek legújabb verzióiban van, illetve lesz jelen. Erről az irányról a PROHARDVER! hasábjain belül sokat lehet olvasni, illetve a tudástár felületen is folyamatosan frissül az API-t támogató játékok listája, így ezúttal csak említés szintjén foglalkozunk vele. A lényege továbbra is a fejlesztőpartnerek speciális igényeinek kiszolgálása marad, illetve nyilván az alacsony szintű hardverelérés következtében hatékonyabb optimalizálásra van lehetősége a stúdióknak.


A Mantle részletesebben

Az AMD TrueAudio is egyfajta speciális igénynek nevezhető, és ezt is kiveséztük már PROHARDVER! hasábjain belül. Ehhez is elérhető egy fejlesztőkörnyezet, de csakis zárt formában. Utóbbi egy komplex egyezmény eredménye, hiszen a PlayStation 4 konzol is azt a hardveres blokkot használja, amelyiket az AMD termékei, tehát erről nem lehet túl sok információt kiadni. Maga a TrueAudio leginkább a Sony igénye volt, és ha már elkészült a hardver, akkor az AMD úgy gondolta, hogy beveti a PC-n is. A TrueAudio alapkoncepciója nem különbözik a többi hardveres gyorsítást lehetővé tevő hangkártyától, viszont a szoftveres oldalon az AMD az elterjedt Audiokinetic Wwise, Firelight fmod és Microsoft XAudio2 middleware-ek direkt támogatását célozza, mivel a másik út, vagyis az OpenAL-re való támaszkodás a Creative-nak nem jött be.

A gépezet megolajozása

A Gaming Evolved az előbbiek mellett az új generációs effektek fejlesztésben is segít. Ebből a szempontból az AMD már másképp működik, mint régen. Pár évvel korábban a vállalat saját maga dolgozott ki effekteket, ami nem volt rossz, de több fejlesztő nem volt elégedett ezzel a modellel. Bár most is készülnek önálló effektek, de ezeket igen hamar publikálja az AMD a Radeon SDK-n belül, illetve sarkalatos pont, hogy az adott effektet tartalmazó csomagban megtalálható a teljes forráskód is. Sőt, újabban már egy portolási útmutatás is bekerül, hogy a fejlesztőpartner könnyen átírhassa az adott effektet a konzolokra. Ez szintén fontos, mivel az AMD csak a PC-vel foglalkozik a partnerprogramján belül, a lehetőséget viszont tényleg megadják az egyszerű portolhatóságra vonatkozóan, ezt a munkát ugyanakkor nem végzik el senki helyett.

A TressFX első bevetése
A TressFX első bevetése [+]

Lényeges változás a pár évvel korábbi modellhez képest, hogy az AMD már nem dönt önállóan az éppen fejlesztett effektekről, hanem egészen konkrétan ezek kooperációban születnek meg. Példákat felhozva a Forward Plus elkészítésében a Codemasters segített, vagy a TressFX a megszületésében vezető szerepet vállalt a Crystal Dynamics és a Nixxes Software, de megemlíthető a Silhouette Tessellation effekt is, amely részben a Rebellion nevéhez köthető, illetve a legújabb, GPUParticles opció a Creative Assembly közreműködésével készült. Leginkább tehát megrendelt kutatásokról van szó, vagyis az adott fejlesztőpartner találkozik egy problémával és megkéri az AMD-t, hogy segítsen megoldást találni rá. Ezután nyilván az adott játékban az éppen kidogozott effekt bemutatkozik, majd a jogok az AMD-hez kerülnek, hogy más fejlesztő is felhasználhassa a saját céljaira. A licenc ebből a szempontból nem jelentős. Lényegében csak annyit kér az AMD, hogy ha egy effekt valamelyik programban fel lesz használva, akkor arról az adott fejlesztő valamilyen formában tájékoztassa a céget.

A GPUParticles első bevetése
A GPUParticles első bevetése [+]

Az egyes effektek egyébként a hivatalos bemutatkozás után is fejlődnek. Ezért már teljes egészében az AMD lesz a felelős, de a nyílt forráskód következtében bárki elvégezheti a munkát önállóan is. A Radeon SDK effektjei főleg minőségben lépnek előre időről-időre, illetve a fejlesztőpartnerek kiemelt kérése az AMD felé, hogy optimalizálják az effektet a konkurens hardverekre is. A jó hír, hogy ebben valamilyen szinten az Intel is részt vesz, hiszen láthatják a forráskódot, és tehetnek javaslatokat arra, hogy min kellene változtatni az Intel IGP-k felgyorsítása érdekében. Akár konkrét kódokat is írhatnak, és ezt jellemzően meg is teszik, tehát ezek az optimalizálások elég gyorsan bekerülnek. Manapság nem ritka, hogy az adott effekt sebessége már a publikus megjelenésekor optimális az Intel hardvereken. Itt persze nem az izmos VGA-khoz tervezett effekteket kell figyelni, mert azok futtatásához a kisebb teljesítményű grafikus vezérlőkből szimplán hiányzik az erő.

Az NVIDIA termékire való optimalizálás egy picit nehezebb ügy, mert ahhoz az AMD-nek előbb vissza kell fejtenie a vállalat egyes grafikus architektúráinak működését, ami nem megy gyorsan. Márpedig ez a legtöbb fejlesztőpartner igénye, ugyanis nem mindenki mögött áll ott egy mély zsebbel rendelkező kiadó, mint az Electronic Arts, a Square Enix, vagy éppen a SEGA. Maga az architektúra visszafejtése is igen kényes terep a jogi oldalról megközelítve, tehát hivatalosan senki sem tesz ilyet, de valójában a legtöbb kiadó technikai csoportja számára alapvető célkitűzés az összes megjelent és dokumentációval nem rendelkező grafikus architektúra mielőbbi visszafejtése. Az itt megszerezhető információk nélkül ma nem lehet jól optimalizált programot írni.

A gondot természetesen mindig a pénz jelenti, hiszen számos fejlesztő a fennmaradásért küzd, tehát abszolút nem hiányzik, hogy egy pár fős, magasan képzett technikai csoport a munkaidejének jó részét erre költse. Ez a vezető oka annak, hogy a CryEngine videojáték-motor új verziói manapság jobban futnak az AMD hardverein, mert a Cryteknek sajnos anyagi gondjai akadtak az utóbbi időben, és ez bizonyos fejlesztési irányok beáldozásával járt. Ez persze az anyagi helyzet stabilizálásával megoldódik, de a probléma jól láthatóan jelen van. Az AMD ebből a szempontból a kisebb vagy kevésbé gazdag fejlesztőkön tud segíteni, ahol szóba sem jöhet az architektúrák önálló visszafejtése.

Azt sem szabad elfelejteni, hogy az egyes architektúra visszafejtése hivatalosan sosem történik meg egyik cégnél sem, tehát ez egy olyan dolog, amiről mindenki mélyen hallgat. Ugyanakkor megemlíthető, hogy a kisebb partnerek kérhetnek tanácsot az AMD-től, arra vonatkozóan, hogy mit kellene optimalizálniuk a GeForce-ok sebességének növelése érdekében. Ez szintén egy ingoványos terep a jog szerint, de hivatalosan itt sem történik meg soha a beszélgetés, csak mindig lesz valami megmagyarázhatatlan csoda, ami végül a kiadás előtt gyorsabb kódot eredményez.

Optimalizálás az új irányra

Jól látható, hogy a Gaming Evolved egy elég komplex partnerprogram, ami persze folyamatosan átalakulóban van. Jelenleg a legfőbb cél az AMD számára, hogy odaköltözzenek a fejlesztőpartnerek mellé. Ez egy olyan lépcsőfok, amit nehéz megugrani, de a vállalat nézetei szerint erre szükség van, mivel a következő időszakban drámaian megváltozik a programfejlesztés menete. Ne felejtsük el, hogy az alacsony szintű hardverelérést biztosító API-k már a küszöbön állnak, illetve némelyik már a gyakorlatban is bemutatkozott, így maga az átállás megkezdődött. Az AMD ezt az irányt már nagyon várja, mert felkészültek rá a dokumentációkkal, a fejlesztőeszközökkel, a GCN disassemblerrel és most rendszerprogramozóikat szeretnék elhelyezni a fejlesztőpartnereknél. Utóbbi egy apró biztosíték arra, hogy az adott szoftver az AMD hardverein biztosan jól megy majd, mivel van némi esély arra, hogy a dokumentálás és a fejlesztőeszközök, illetve a konzolokról áthozott optimalizálás ellenére a program alacsony szintű optimalizálása PC-n nem lesz tökéletes. Ennek az lehet az oka, hogy az alacsony szintű hardverelérést biztosító API-kkal a grafikus eszközillesztő lényegében egy shader fordító lesz, így ami eddig a Catalystban volt benne, az most a program része lesz.

Bizonyos értelemben ez felfogható úgy, hogy a mostantól az alkalmazás tartalmaz egy olyan réteget, amely a vezérli az összes kompatibilis grafikus hardvert a gyártóktól függetlenül. Az AMD nézőpontja szerint biztonságosabb, ha a fejlesztőpartner motorprogramozója mellett ül egy képzett rendszerprogramozó, aki tanácsokat tud adni az optimalizálásra vonatkozóan. Maga a hatékony kódolás a Microsoft szerint is nagyon fontos, hiszen a DirectX 12 is egy alacsony szintű hardverelérést biztosító grafikus API lesz, és az adott rendszer teljesítménye nagyjából kétharmad részt attól függ majd, hogy az alkalmazás architektúra-specifikus optimalizálása mennyire hatékony, míg a hardver elméleti teljesítménye a tempót csak egyharmad részt határozza meg.

Ezt akár a jelenlegi modellben is könnyen el lehet képzelni, hiszen néha előfordul, hogy egy-egy új játékhoz nem érkezik meg időben az optimális teljesítményt biztosító grafikus meghajtó, így a hardver sebességvesztést szenved el. Esetenként ez lehet akár igen sok is. Ez a jelenség a DirectX 12-ben is fennállhat, de annyi különbség lesz, hogy az új API-val az efféle problémát már nem lehet egy új meghajtóval orvosolni, mivel teljes egészében az alkalmazás kódja felel az esetlegesen nem hatékony a munkavégzésért. Ebből könnyen megérthető, hogy az AMD miért akar annyira odaköltözni a fejlesztők mellé. Mindenféle egyéb segítség biztosítása mellett is csak ez ad garanciát arra, hogy a program stabil és gyors lesz a Radeonokon.

A spártai szigor jelenti a fűszert

A Gaming Evolved kapcsán vannak dolgok, amelyekről jellemzően senki sem beszél. A partnerprogram többek között rendelkezik pár olyan kritériummal, amit nem egyszerű teljesíteni, vagyis játékfejlesztőknek komolyan el kell gondolkodni a belépésen. Az AMD elmúlt az években meglehetősen szigorú szabályozást ír elő a kritikus fontosságú partnereknek. A vállalat a jó teljesítményt nyújtó fejlesztőkkel nagyon bőkezűen bánik a Never Settle promóció részeként, de ugyanakkor a gyengébb eredményeknek még csak a lehetőségét sem tolerálják, így a kiemelt partneri státusz nagyon gyorsan felfüggeszthető. Ilyenre láthattunk példát is az elmúlt években, hiszen a Creative Assembly a Total War: Rome 2-re vonatkozóan nem teljesítette az elvártakat, így elvesztették az AMD kiemelt támogatását. Ez a fejlesztők számára sem volt kedvező, hiszen az említett játékot a megjelenés után sok hónappal sikerült olyan állapotba hozni, hogy azt elfogadható minőségként értékeljék a sorozat rajongói is. Ebből látható, hogy a Gaming Evolved szigorú követelményei csak az AMD által elfogadottnak vélt minőség fenntartását célozzák meg, tehát bármennyire is szigorúak a szabályok, a PC-s játékipar érdekét szolgálják. A Creative Assembly mára visszatért a Gaming Evolved partnerprogramba, és ez rögtön eredményezett egy Alien: Isolation című alkotást, amely példás minőséget képvisel az optimalizálás szempontjából.

A Gaming Evolvedbe tulajdonképpen viszonylag könnyű bekerülni, de kiemelt státuszt szerezni már nagyon nehéz, és azt csak úgy lehet megtartani, ha az adott fejlesztőstúdió állandóan teljesíti az AMD elvárásait. A vállalat nyolc kiadóval a tarsolyában mindenképp úgy gondolhatja, hogy jó irányba viszik a koncepciót, és azt sem szabad elfelejteni, hogy a Gaming Evolvednek is megvannak a maga erőforrásbeli korlátjai, vagyis jó eséllyel több PC-s kiadót nem is tudnának kiszolgálni.

A követelmények tehát szándékosan teljesíthetők nehezen, mivel az AMD a PC-s fejlesztői elitre hajt, így nem is cél, hogy a felhelyezett lécet akárki átugorhassa. Ugyanakkor ez azt is jelenti, hogy viszonylag sok fejlesztő számára nem a vörös oldal partnerprogramja jelenti az ideális választást, és itt jönnek képbe a konkurensek, név szerint az NVIDIA és az Intel, amely cégek sokszor elkapják a lepattanókat, illetve olyan stúdiók igényeit is kiszolgálják, akik számára a Gaming Evolved működése nem optimális.

Abu85

  • Kapcsolódó cégek:
  • AMD

Azóta történt