26. 3. 2020

Spider-Man PS4 : malé technické postmortem alebo Marx a Engels


Insomniac Games /IG/ v roku 2014 pripravilo pre Xbox exkluzícne hru Sunset Overdrive. Super frenetická akčná sandbox hra. V rokoch 2015 až 2018 pracovali na Spidermanovi pre PS4. Hypotetická PlayStation 4 s 3.2Ghz CPU /+100%/ s 1.6Ghz GPU /+100%/, s 100 gigovým BD /+100%/ s 8 gigabajtami RAM čiste iba pre hry a s hoc aj tým najjednouchším SSD s rýchlosťou čítania pod 800 mega/sec by skrátila dobu vývoja tejto hry minimálne o pol roka, možno aj viac. To je záver postmortem prezentácie z GDC 2019 /toho roku pre COVID-19 zrušenej vývojárskej konferencie/.

lokácia NY centrálna stanica - PS2 versus PS4, na PS5ke nabudúce už aj s raytracingom, eh

Spiderman pre PS4ku je doteraz najväčšia hra, ktorú kedy IG urobili. Najväčšie mesto, obrovské množstvo dát, najväčšie problémy ako to celé pretiahnúť cez konzolu. Sunset engine bol skutočne veľmi dobrý, jednoduchý, efektívny ale musel byť totálne prepracovaný. Na omnoho väčšom Spidermanovi totiž stále makal rovnaký počet ľudí ako na 6 krát menšom svete Sunset city /120 versus 700 hex grid tiles veľkosti mesta/.

IG pre potreby Spidey hry použilo 6 a pol jadier Jaguar CPU, na ktorom bežali desiatky "jobs". Technika naučená ešte na CELL CPU. Časový budget na frame 33ms/30fps bola primárne nastavený s ohľadom na CPU, ktoré išlo na zlomky milisekúnd svojich možnosti. Úmorné mesiace ladenia ako to tam napchať. V roku 2015, v úvode herného prototypovania, im po uliciach behalo asi 30 plne simulovaných AI botov, viac CPU neutiahlo, ak mal ostať čas aj na inú prácu. Vo finále hra simuluje do 1500 chodcov v najbližšom okoli /s kontextovaný prepínaním na full AI botov/ a ďalšie tisíce ako blbé a takmer neanimované marionety vo veľmi veľkej diaľke aby sa "naplnili" ulice. Použili kopu infa z prác na AI a modelovaní davu z Assassin prednášok /Ubisoft/. Zen 2 CPU 8c/16t použité v PS5 by na dvoch jadrách bol pravdepodobne raz taký rýchly ako dokopy tých 6 jadier jaguára.

Pri PS4 GPU sa snažili úspešne natlačiť do asynchrónnej časti grafickej pipelajny celý model nasvietenia vrátane ambientnej oklúzie, screen space reflexií,  procedurálnych vĺn na mori  so základnou interakciou /rýchle Fourierove transformácie alias FFT/ ale čím viac času trávili ladením tým viac konečných termínov museli posunúť. Malá odbočka. Pri úrovni detailnosti geometrie, počet polygónov, medzi modelom v animačke /90K/ a herným /5K/ je nutné opäť mnoho krokov grafika a herného enginu navyše aby bol prechod plynulý a neviditeľný, čo samozrejme stojí svoj čas. Na PS5 nie je problém mať 250K tu a i tam a nestratiť tým ani sekundu.

Streaming dát z HDD. Kolosálne ťažkosti. Pri Sunsete bola rýchlosť postavy natvrdo stanovaná na 14ms/s čo je cca 50kmh. Spiderman však na pavúčom vlákne letí maximálkou až 32ms/s, teda 115kmh. Rýchlosť HDD je bohužiaľ v oboch prípadoch rovnaká. Engine hry Spidermana sa snažil streamovať 3 plošné "tiles" každá veľkosti 128x128 metrov v jednom momente, čo však nedáva možnosť mať na jednu dlaždicu viac ako 20 mega dát, viac HDD nevie dodať. Teraz si predstavte ten skok z 20 mega na 200 alebo 2000 pri PS5. Optimalizácie /šachovanie s mipmapami textúr, geometriou, animáciou, celý manažment toku dát/ pri Spidermenove boli časovo vyčerpavajúce a veľmi extenzívne.

Kapacita BD placky bola hrubo nedostatočná - 50 gigabajtov bolo rýchlo a vysoko prekročené. Vzhľadom na príšerne pomalé HD museli použiť starú fintu ešte z čias PS1/PS2 s ich CD/DVD mechanikami, keď je časť dát /hlavne grafika/ uložené po ploche úložiska duplikovane aby sa šetril hľadací čas/seek time, preskakovanie hlavičky zo stopy na stopy. Pri Spidermanovi však takto pribudlo 10 gigabajtov dát navyše z pôvodných neduplikovaných 900 mega !! Používali L4Z kompresiu a skúšali aj mnoho iných, opäť však narazili limity procáku a Zlib HW dekompresora. Aj preto dnes to zdôrazňovanie oveľa výkonnejšieho Kraken kompresného alogoritmu PS5ky /HW Kraken dekompresor vie dodať až 20 gigabajtov dát za sekundu ak mu ich SSD dokáže zabalené doručiť/.

RAM. Spiderman stojac na vrchole mrakodrapu hľadí do diaľky a silueta mesta a budov pomaly rotuje okolo vás. Propblémom je, že hlavný vizuálny dojem veľkomesta okolo vás nerobia len samotné lesklé krabice barákov ale hlavne /ako ukázali testy/ tie malé prkotiny na domoch. Klimatizačné jednotky, vežičky so zásobnikami na vodu, antény, požiarne schodiská. A musia byť viditeľné do veľmi veľkej diaľky a sú ich stovky, tisíce. Len podobná drobnosť si natrvalo uchmatne z RAM aj 250 mega, čo je praticky toľko čo hlavné jadro enginu.

Záver. Na PS5ke nemusí stredne veľká firma s AA hrou nutne útočiť grafikou, animáciou a zvukom na niekoľko oscarov naraz. Hru ako Spiderman dá PS5ka podľa mňa ľahko v 4K/60 /hoc aj s použitím upscale/ a pretože všetky technické limity PS4 sú odstránené /rýchlosť CPU, GPU, SDD, veľkosť RAM/ môžete tú istú hru dať dokopy aj do 2 rokov. A nemusím vám hovoriť aký obludný rozdiel je platiť 100 ľudí navyše jeden celý rok, teda 120 človeko-mesiacov alebo sa rovnaký čas tešiť zo zisku a pracovať už na ďalšej gamese. Ideme do recesie a efektivita, nákladovosť tvorby hier budú najbližšie roky životne dôležité.