Forza Horizon 2 technológiai interjú
dreampage 2014. Oct. 14.

Jelen pillanatban alighanem a Forza Horizon 2 a technikailag legfejlettebb autós játék, tekintve hogy milyen látvánnyal bír, és emellett mi minden folyik a háttérben, mindezt nyílt világban, dinamikus fényekkel és időjárással. Az angol Digital Foundry is így látja, ezért a technológiai elemzéseiről híres csapat leült egy kimerítő beszélgetésre a fejlesztőkkel. Ennek magyar fordítását olvashatjátok a folytatásban.

Beszéljünk az időhatárokról. Az Xbox 360-as Forza Horizon megjelenése és a végleges Xbox One fejlesztői hardver kiadása között eltelt egy kis idő. Hogyan befolyásolta ez a második rész előkészületeit?

Amikor az előzetes terveinket készítettük, még nehéz volt megjósolni, hová jutunk teljesítmény szempontjából. Viszont szorosan együtt dolgoztunk a Turn 10 csapattal, és tőlük sok korai információt kaptunk, úgyhogy viszonylag pontosan tudtunk számolni a várható teljesítménnyel.

Sok számítást végeztünk, hogy megbecsüljük a hardver végleges teljesítményét. Ahogy jöttek az új hardver és szoftver revíziók, leteszteltük a becsléseinket és elkezdtük felvázolni a kereteket. Így nem tudtunk rögtön végleges paraméterekkel tervezni, mintha a folytatást ugyanarra a gépre csináltuk volna, de az előzetes becsléseink nagyon pontosak voltak.

Részben ettől izgalmas új technológiával dolgozni, ez teszi a nagy költségvetésű játékfejlesztést nehézzé és érdekessé.

Mit gondoltatok az Xbox One hardverről, amikor először kézhez kaptátok, és mennyit hasznosíthattatok a Turn 10 tapasztalatából?

Egyértelműen generációs ugrás volt az Xbox 360-hoz képest, teljesítményben és funkciókban is. Egyértelművé vált, hogy nagyszerű játékot csinálhatunk majd, és a legtöbb tervünket megvalósíthatjuk vele. Látható, hogy az első részhez képest mekkora ugrás ez a játék, és ez nagyrészt a hardvernek köszönhető.

Sok tapasztalatot szereztünk, mivel a Turn 10-nel együttműködtünk a Forza Motorsport 5 fejlesztése során. Ők akkor már készültek a játék kiadására, úgyhogy sok betekintést engedtek abba, miben más egy játék megjelentetése az Xbox 360-hoz képest, és így mi is könnyebben tervezhettünk előre.

Ami a Turn 10 nyers technológiáját illeti, teljesen be vagytok zárva az FM5 kódbázisába, vagy tudtok vele játszani, esetleg hozzáadni valamit?

Már az elejétől fogva figyeltük, hogy a Turn 10 mit kezd az FM5-tel, és felhasználtunk minden tapasztalatot ami az új generációra váltással járt. Folyamatosan átvettük a fejlesztéseiket amíg be nem fejezték az FM5-öt, úgyhogy minden optimalizálásnak és bugfixnek mi is hasznát vettük. Nagyon sok munkába kerül egy Motorsport játékból egy Horizon játékot csinálni, de a motor stabil alapokon nyugszik, és mindkét csapat párhuzamosan fejleszti és építi.

Az Xbox 360-as első rész elég jól körvonalazta a Horizon koncepciót, de a folytatás mégis sok fejlődést mutat be. Volt valami egyensúlyozás az ambíciók és a hardver képességei között?

Olyan funkcióegyüttest hoztunk létre, amire nagyon büszkék vagyunk. Amikor elkezdtük a Horizon 2 fejlesztését, leültünk és kitaláltuk, hogy az új platformot hogyan tudnánk legjobban kihasználni a különböző területeken. Ha így kezdesz neki, akkor néhány nagyszerű funkció is kinő ebből, és inkább csak az lesz a kérdés, van-e idő megcsinálni mindet.

Hogy egy példát is mondjak, az online módot átmenet nélkülire és azonnalira akartuk csinálni, száműzve a hagyományos lobbikat. Ehhez a technológiai alapok szinte minden részébe bele kellett nyúlni, és óvatosan kellett beépítenünk ezt a projekt keretei közé.


Mindig is egy teljesen nyílt világ volt a terv? Visszanézve az első Horizon nagyon szűknek tűnik ahhoz képes, milyen világot építettetek fel benne.

A Horizon mindig is a nyílt világról szólt, de ezúttal tovább tudtuk vinni a koncepciót. Az új konzol, valamint az első rész fejlesztése közben szerzett tapasztalat segített ebben. Xbox 360-on volt néhány technikai tényező ami megnehezítette a világ megnyitását úgy ahogy szerettük volna, úgyhogy más megoldást választottunk. Xbox One-on ezek a tényezők már nem hátráltatnak minket, és az extra szabadság érzése nagyszerű.

Ugyanaz a Forza szimulációs rendszer fut a játék alatt, ami az FM5-ben is van? Vagy a nyílt világ, a változó útviszonyok és időjárás miatt fejleszteni kellett a technológiát?

Ugyanaz a fizika fut ami az FM5-ben, ugyanazzal a fejlett rendszerrel és aprólékossággal. A mi vezetési modellünk jóval megbocsátóbb, és az autók kezeléséért felelős tervezők remek munkát végeztek, hogy minden autóval élmény legyen a vezetés. A dinamikus időjárás megjelenésével a játékossal éreztetnünk kell, hogy megváltozik az irányítás ha nedves az út, de továbbra is könnyen "elérhető" és szórakoztató marad az egész.

Az Xbox One "csempézett" hardver erőforrásai jól illettek volna a nyílt világhoz a virtuális textúrázást tekintve? Gondoltatok rá, hogy ezt a módszert használjátok?

Az előkészületi fázis során gondoltunk rá, hogy ezt a módszert alkalmazzuk, de végül úgy láttuk, túl sok kompromisszummal járna, tekintve hogy mekkora a világ és mennyi adat kerül a fizikai adathordozóra. Végső soron szerintünk a mi megközelítésünk jobb, nagyon jó minőségű és változatos textúrák vannak a hatalmas panorámákon.

Ha az Xbox One alkotóelemeire nézünk, minden szempontból igazi generációs ugrás - kivéve a merevlemezt. Jelentett ez valamilyen komolyabb kihívást?

Már az első Horizonban is DVD-ről streameltük a világot, szóval az, hogy most mindezt a HDD-ről tehetjük, mindenképp nagy előny a számunkra. Az előző generációhoz képest jelentősen megnőtt az assetek mérete, de megvannak az eszközeink az adatok duplikálásához és a stream optimalizálásához. Az mindenképp óriási dolog, hogy a HDD most már minden dobozban alapfelszerelés.

Az Xbox One-ban 5 GB szabad memória felett rendelkeztek az Xbox 360 nagyjából 480 MB-jához képest. Ez több mint tízszer annyi memória. Hogyan használtátok ki?

A legtöbb memória az assetek minőségének növelésére és a nagyobb, részletesebb világra megy el. 1080p-ben jóval részletesebb textúrákkal kell dolgozni, és az Xbox 360-hoz képest komplexebb anyagokkal dolgozunk, amik extra textúrákat igényelnek. Például a fizika alapú rendering miatt a környezet anyagai különböző módon verik vissza a fényt, más a textúrájuk durvasága, így a művészek sokkal rugalmasabbak lehetnek. A több memóriára szükség van még a komplexebb geometriájú modellekhez is.


Sok nagyobb szabású "next-gen" játék alkalmaz fizika alapú renderinget. Tudnál erről beszélni egy kicsit?

A Turn 10 motorjával nagyszerű kiinduló pontunk volt. Fogtuk ezt, és meghatároztuk, mely területeken kell fejlesztenünk a Horizon 2-höz, miközben igyekeztünk megtartani ugyanazt a részletességet és egységességet. Közben mindezt átvittük dinamikus napszak- és időjárás-változás mellett egy nyílt világba. Ez jelentősen befolyásolta az egész projektet. Az assetek tekintetében az egész művész csapatot ki kellett képeznünk, hogy hogyan hozzák létre az asseteket a korábbi, nem fizika alapú renderinget használó projektekhez képest.

Ami a rendszer fejlesztést illeti, a Horizon 2 minden funkcióját ez alapján kellett megterveznünk. Például az időjáráshoz minden egyes anyag vízzel való érintkezését szimulálni kell. Ugyanezt alkalmaztuk az égbolt szimulációjánál, ami a fény és a légkörben található részecskék kölcsönhatása alapján produkál élethű látványt.

Van ennek hatása az assetek - például az autók és a környezet - elkészítésére? A fizika alapú rendering például a művészek munkáját is radikálisan megváltoztatta.

Igen, és tekintve, hogy mennyi assetet kellett legyártani, és ezek egységes minőségére is figyelni, ez nagy kihívás volt. Szerencsére a Turn 10 sokmindent megoszt velünk, ha az autókról beszélünk. A környezet létrehozása már problémásabb volt, és ezt tovább fokozta hogy Xbox 360-ról Xbox One-ra kellett ugranunk.

Mivel ennyire hasonlóak az autók a Motorsportban és a Horizonban, problémát jelentett, hogy ugyanazoknak az asseteknek kétféle renderert is ki kell szolgálniuk?

Bizonyos értelemben épp az ellenkezője igaz. Ezek a részletes assetek kiváló kiindulási pontot jelentenek, még akkor is ha a két játék működése eltérő. Ettől függetlenül minden autóval van dolgunk nekünk is, hiszen alkalmassá kell tenni őket az éjszakai világításra és az esős időjárásra, ami további erőforrásokat igényel.

Ti vagytok az elsők, akik a Forward+ renderinget használjátok egy konzoljátéknál. Mi ez, és milyen előnyei vannak?

Amit mi használunk, azt szerencsésebb inkább "Csoportosított Forward+" technikának nevezni. A Forward+ technika felosztja a képernyőt apró (általában 32x32 pixeles) alnégyszögekre, aztán kiszámolja, melyik alnégyszöget melyik fényforrás befolyásolja, és mindez a renderelés előtt történik. Az árnyékolás során először betöltöd a csökkentett fénylistát az érintett alnégyszögekhez, és csak azokat a fényeket számolod ki. Ennek az a célja, hogy olyan fényeket ne számoljunk azokra a területekre, amelyekre azok nincsenek hatással.

A hagyományos Forward+ technika egy mélység textúrát alkalmaz az adott jelenetre, hogy kiválassza a megfelelő fényeket a listáról. Ezzel két probléma van. Először is le kell renderelni a mélység textúrát a fő jelenet előtt, másodszor az átlátszó felületek ezen nem látszódnak.

A Csoportosított Forward+-hoz egyáltalán nem kell ilyen mélység előszámolás, mert minden alnégyszöghöz egyszerre több mélységben számolja a fénylistát, és a megfelelő csoportot alkalmazza a felület árnyékolásához. Minden ilyen adatot a GPU-n generálunk Compute shaderekkel, és ezt minden olyan helyzetre alkalmazzuk ami fényeket igényel.

Számunkra az a Forward+ előnye, hogy mindig együttműködik az MSAA-val, míg a közvetett technikák küzdenek az élsimítással. Másrészt így könnyebb szimulálni összetett anyagokat, mint amilyen a szénszál vagy az autók fényezése. Úgy találtuk, hogy a Forward+-t nagyon könnyű alkalmazni a már meglévő shaderekhez. A mi Csoportosított technikánk további előnye, hogy nem kell foglalkozni az átlátszó felületekkel, illetve nem kell előre mélységet számolnunk.


Számunkra talán a legnagyobb meglepetés a 4x-es MSAA használata a Horizon 2-ben - egy olyan korszakban, amikor a multi-sampling eljárásokat nem sokan alkalmazzák. Van egy olyan - talán téves - hiedelem, hogy az új konzoloknál a sávszélesség túl értékes, és az erőforrásokat jobb másra használni. Mi a titkotok?

Valóban úgy tűnik néha, hogy mi más irányba megyünk, mint azok a fejlesztők akik FXAA-t vagy más kombinált élsimítási eljárást használnak. Nekünk a képminőség nagyon fontos, és úgy találtuk, hogy a Forward+ bevilágítás és az MSAA kombinációjával érhetjük el a legjobb eredményt. Az ehhez szükséges erőforrás felosztást már a legelején megtervezzük, hogy legyen időnk mindenre. Bizonyos értelemben ez a döntés több rugalmasságot adott a számunkra, mert nem kell saját élsimítási eljárásokra időt pazarolni.

Úgy néz ki, hogy a növényzethez alpha-test eljárást használtok. Az MSAA mellett nem lett volna jobb alpha to coverage-et használni?

A füvön azt használunk, de ez teljesítménybeli kompromisszummal jár egyébként. Tekintve, hogy mennyire sűrű a növényzet, és mennyivel egységesebb bevilágításunk van, úgy döntöttünk, bizonyos növényzeteknél az alpha-test módszer kifizetődőbb.

Mivel AMD GPU-t használtok, nyilván hozzáférésetek van az EQAA módokhoz is - használtátok ezt a Forza Horizon 2-höz?

A projekt nagy részében EQAA futott, de úgy láttuk, hogy a 4x-es MSAA-val járunk a legjobban. A GPU adattömörítése olyan, hogy 4x-es MSAA-hoz valójában nem kell 4x-es sávszélesség, és a forward only rendering miatt a GPU esetében sosincs sávszélesség probléma, főleg ha az adatok többsége az ESRAM-ban van. Kevesebb mélység mintavételezésű EQAA ugyan növeli a teljesítményt, de csökkenti a képminőséget, mert a hardver nem képes bizonyos poligon él konfigurációk kiszámítására. Egy versenyes játékban, ahol a fókuszpont általában távoli, ez nagy különbséget jelent.

1080p, MSAA - máris komoly ESRAM kihívásról beszélünk -, hogyan kezelitek a memóriát?

A fejlesztés során különböző optimalizációs fázisokat jelöltünk ki, hogy mindig tartani tudjuk a stabil 30 fps képfrissítést. Folyamatosan elemeztük az ESRAM használatát ezekben a fázisokban, és meghatároztuk, hol tudunk még teljesítményt nyerni, különösen az ESRAM-ban lévő render célok optimalizálását tekintve. Ehhez aprólékosan elemezni kell, hogy mikor mire van szükség egy adott pillanatban a képen. Ugyancsak meg kellett értenünk, hogy mik ennek a rendszernek a hátulütői, így olyan rendszerekre tudtuk szabni az ESRAM használatát, amik hasznot húzhattak a nagyobb sávszélességből. Az ESRAM-ot elég könnyű kezelni, egyszerűen azért mert nem kell a textúrákat feldolgozni a beolvasásukhoz, illetve a textúrákat részben állandóvá lehet tenni.

Mi volt a legnagyobb technikai kihívás a dinamikus időjárásban?

A legnagyobb probléma az, hogy a környezet bármelyik pillanatban vizes lehet. Úgyhogy a rendering megoldásunkba bele kellett építeni a nedvesség koncepcióját. Minden anyag rendelkezik azzal a tulajdonsággal, hogy egy vékony vízréteg legyen rajta, és ezáltal másképp veri vissza a fényt. Olyan rendszert kellett kidolgoznunk, ami az alatta lévő shader modellt is élethűen kezeli a környezet állapota és az idő függvényében (például ugyanolyan vízmennyiség mellett másképp néz ki egy felület, ha egyre nedvesebb, vagy éppen felszáradóban van, mint ahogy az a való világban is történik).

Ugyancsak sok időbe került egy valós idejű tükröződés rendszer beépítése is, hogy a fény pontosan verődjön vissza a nedves felületekről. Mivel tudtuk, hogy az időjárás nagy szerepet fog játszani, már a fejlesztés legelején elhárítottuk ezeket a problémákat, hogy minden eshetőségre felkészüljünk, és pontosabban kezeljük az erőforrásokat.

Mielőtt a Playground Games megalakult, sok jó multiplatform címet készítettetek. Egyetlen gépre koncentrálni mennyi előnyt jelent?

Meglepően sok időt emészt fel a napi munkában, ha több platformra kell koncentrálni és közben megpróbálni mindegyiknek a képességeit megfelelően kihasználni. Ezen kívül bizonyos munkafolyamatokat többször is implementálni kell, minden egyes gép esetén külön-külön. A határidő miatt aztán gyakran egy gyengébb megoldás mellett kell kikötni, ami minden platformon működik.

Ha egyetlen gépre fejlesztesz, mindezek a problémák eltűnnek. A fícsörök listája megnőhet, és a tervezők és a művészek is sokkal boldogabbak! Az is nagyszerű, hogy a mérnökök közvetlenül programozhatják a hardvert. Úgy használhatjuk ki a platform képességeit, ahogy enélkül nagyon nehéz lenne. A felhő számítás egy nagyon jó példa erre.

Korábban már beszéltetek arról, mennyire megváltoztatta a játékmenetet a Drivatar rendszer. Ez egyszerűen beépült a ti kódotokba, vagy testre kellett szabni, mivel más a játék?

Mivel az FM5-ből hoztuk át a Drivatar technológiát, a Horizon 2-ben könnyű volt aktiválni. Ahogy ezt megtettük, a versenyek hirtelen sokkal élőbbnek tűntek. Ezután továbbfejlesztettük a rendszert, hogy lekezelje a nyílt környezetet is, így a Drivatarok már letérhettek az útról és rövidítéseket tehettek. Az számomra egy varázslatos pillanat volt, amikor először láttam egy Drivatart lekanyarodni az útról és ráhajtani a terepre.


Változtattatok rajta valamit a közösség visszajelzései alapján? Az FM5-ben kissé problémás volt az indulása.

A Drivatar rendszer folyamatosan fejlődik, és az FM5 megjelenése óta is rengeteget változott. Az FM5-ben vezető Drivatarok ma teljesen másképp viselkednek egyenként és rendszerként is, mint amikor hónapokkal ezelőtt a játék megjelent. E technológia megosztásával mindenki FM5-ös Drivatarját áthozhattuk a Horizon 2-be.

Akárcsak az első rész esetében, most is teljesen fix 30 fps volt a cél. De ez csak a megjelenítés - mi a helyzet a szimulációval?

A fizika szimulációja 360Hz-en fut, tehát ugyanolyan részletes mint az FM5-ben.

30 fps-es versenyes játékok esetén többször jól kezelték az input lag problémáját - például a Criterion a Need for Speed Hot Pursuitban. Ti hogy közelítettetek ehhez?

A Horizonból már sok tapasztalatunk volt erről. A kontroller input és a fizika számolását olyan későre tesszük egy képkocka esetében, amennyire csak lehet, hogy minimalizáljuk a lagot. Ezen felül az audio egy különálló magon fut, és ezt is olyan közeli szinkronban tartjuk a képpel, amennyire csak lehet, így a lag érzékelése is csökken.

Milyen stressz-tesztet alkalmaztok a sziklaszilárd képfrissítés megtartásához?

A Microsoftnak van egy erre specializálódott csapata Readingben, akik különböző automatizált stressz-teszteket alkottak. Ezek futnak mindenhol a játék világában. Saját eszközeikkel minden nap végigpásztázták az egész világot, és azonnali visszajelzést adtak azokról a pontokról, amik kilógtak a keretből. Mi ezeket rögtön tudjuk reprodukálni, és gyorsan a végére járhatunk a problémáknak.

Ez nagyon fontos a számunkra, úgyhogy olyan rendszereink vannak, amik folyamatosan figyelik a teljesítményt. Fontos, hogy emberi beavatkozás nélkül minél több helyzetet stressz-teszt alá vethessünk. Ez minden olyan esetre vonatkozik, amivel a játékos találkozhat a játék során, kiemelten figyelve a legrosszabb körülményekre. Ezek a rendszerek aztán dedikált szervereken futnak, és a fejlesztés során mindig friss információkat adnak vissza. Az utolsó fázis, hogy ezeket az információkat az illetékes csapattagok érthető formában kapják meg, hogy intézkedhessenek, és a játék mindig a keretek között futhasson.

Manapság nagyon ritkák a demók. Mi volt a Forza Horizon 2 demo célja? Részben a multiplayer infrastruktúra tesztelése talán?

Ennél jóval prózaibb oka volt a demónak. Hittünk benne, hogy egy remek játékot csináltunk, és minél előbb az emberek kezébe akartuk adni, hogy kipróbálhassák. Nagylelkű demót akartunk, amiben vannak online és közösségi funkciók is, hogy a játékosok a teljes élménybe belekóstolhassanak. Nagyon örültünk a reakcióknak, és annak is, hogy ezek a reakciók a teljes játékra is megmaradtak, ami az egész csapat számára rendkívüli sikerélmény.

Most, hogy a Horizon 2 megjelent, melyik részére vagytok a legbüszkébbek?

A szabadságra, amit a játék ad, nemcsak abban, hogy hová menj, de abban is, hogy mit csinálj. A játékosnak mindig rengeteg választási lehetősége van.

Számomra az, hogy a közösség mennyi lenyűgöző dolgot tud művelni vele. Néhányon mi magunk is meglepődünk. A NeoGAF fotós topikja tele van elképesztő képekkel. És soha nem lehet tudni, mit találnak az emberek, mikor belépnek egy online free roam játékba.

(forrás: Digital Foundry)