31. 8. 2020

DOOM - 144p/10 fps


Oficiálna, licencovaná verzia DOOM 1 na asi najpomalšom možnom hernom HW: Super Nintendo Entertainment System (tiež nazývaná Super NES, SNES) má 8/16 bit CPU 65C816 na 3.58 MHz CPU s 128 KB RAM, grafickú časť obsluhovalo PPU s 64 KB VRAM. Najčastejšie herné rozlíšenie je 256x240 pixel v 256 farbách a zvuk malo na starosti 8 kanálové SONY SPC700 s 16-bit DSP a vlastnou 64 KB audio RAM. Išlo samozrejme primárne o 2D konzolu, trochu anemické CPU a relatívne pomalšie DMA na tak veľa farieb, takže konkurenčný Megadrive s lepším a o dosť rýchlejším CPU a s menším počtom farieb zvládal "tu istú" hru často rýchlejšie a vo vyššom rozlíšení. SNES mal aj niečo ako pseudo 3D grafický "mode 7" išlo však "len" o afinnú transformáciu 2D plochy do 3D priestoru, šikovné ale nevhodné pre skutočné priestorové kalkulácie, nie to ešte rýchle textúrovanie povrchov. Nintendo si tieto skutočnosti a budúcnosť hernej grafiky plne uvedomovalo a pre SNES hľadalo hardvérove a softvérové riešenie. A našlo ich na západe.

SNES Mode 7 grafika - pôsobivé ale pre potreby DOOM hier nepoužiteľné

Argonaut Games sa postarali o ten HW upgrejd. Argonautov založil britský tínejdžer na výške Jeremy Elliott "Jez" San alias J.San alias Jason preto ten “starogrécky” názov firmy. Veľmi šikovný chlapec, ktorý predal mnoho kópií 3D strielačky Star Glider 1 a 2 na Amige a Atari ST /aj pre ZX Spectrum, samozrejme/ a CIC ochranu Gameboy/SNES kartridžov prelomil za desať minút nahliadnutím do kódu ich hier a použitím pár centového rezistoru a kondenzátora. Počas výstavy CES 1990 machrovali s 3D grafikou na starom, čiernobielom GameBoy /8 bit Z80 CPU práve ako to ZX Spectrum/ a keď poskočíme v čase aj technologickými 3D demonštrátormi pre NES/SNES. Načasovanie nemohlo byť lepšie, lebo v tom čase nintendo v tajnosti pracovalo na "3D" hrách založených na Mode 7 grafike – napríklad Pilotwings a Shigeru Miyamoto nebol nadšený z toho, že SNES nemá dostatočný výkon na 3D modely lietajúcich strojov ťažších ako vzduch, chcel filmové švenkovanie kamery okolo objektov.

Nintendo bola v tých časoch, ešte viac ako dnes, nepreniknuteľná korporátna pevnosť, arogancia a pýcha, ktorá sa s barbarským západom veľmi nebavila, mysleli si, že na to nie sú odkázaní. Pozvanie argonautov do japonska teda bolo veľkým prekvapením. Dvaja ich členovia Jez /23r./ a Dylan /18r., 3D kód/ teda leteli do Tokia a tam sa stretli s najvyššími za jedným stolom / Miyamoto, Gunpei Yokoi, Takehiro Izushi, Yasuhiro Minagawa, Genyo Takeda/. Japonci ukázali rozpracované tajné projekty, vrátane Pilotwings a spýtali sa či tu je nejaká možnosť to nakódovať lepšie. Dostali promptne negatívnu odpoveď, ale briti ponúkli aj riešenie - keď dostanú jeden milión dolárov urobia im čip do kartridža, ktorý to zvládne. Prachy dostali. Vznikla akceleračná Super FX architekúra s vlastnými na mieru ušitými inštrukciami a Miyamoto sa vytešoval nad 3D modelmi a fly-by kamerou v plne polygónovej hre Star Fox.

Druhá generácia Super FX /RISC na 21.4 MHz namiesto 10.74 a viac RAM/ poháňala hry ako Super Mario World2: Yoshi’s Island, Winter Gold a DOOM. Ak ste teda otvorili DOOM SNES kartridž našli ste tam 16 bitové RISC s 512KB framebufferom, kde zapisoval svoje dáta, "iba" 2 MB ROM s kódom hry a jej asetmi /a DOOM vážne potreboval raz toľko/. Obal, farbu plastu DOOM katridža bola tiež unikátna – červená. Z celého cirka 800 kusového katalógu SNES hier bolo dovolené iba trom mať inú farbu ako sivú /DOOM a Maximum Carnage boli červené, Killer Instinct bol čierny/.

Máme teda HW /dopredu poviem, že pre potreby DOOM enginu stále katastrofálne nedostatočne výkonný na úrovni i286 na 20Mhz s mizerným GPU/ a potrebujeme ešte geniálneho kódera. Randy Linden. Určite ho poznáte - pre Amigu uvaril Dragon's Lair /nemožné konverzia "laser disc" arcade kabinetu/ a je to on, čo v čistom asm kóde naprogramoval PS1 emulátor Bleem! pre PC a neskôr Bleemcast! pre SEGA Dreamcast. Je to pán prográmtor. Obdivoval hru DOOM, kolosálny posun v grafike a hernej mechanike a rozhodol sa vo voľnom čase, ako hobby projekt, dostať túto hru na SNES pomocou cracknutého kartridžu s hrou Star Fox /SFX2 čip/.


A dokázal to úplne sám, na zelenej lúke, z nuly a bez internetu. Od kompletných vývojárských nástrojov pre SFX čip až po vlastný klon DOOM engine. Presne tak, lebo nemal prístup ku zdrojovému kódu ID softu, takže si to nakódoval po svojom v čistom asembleri /PC DOOM engine je céčku/ a nazval to Reality engine. Nemá prakticky nič spoločné s carmackom okrem toho, že číta dáta z toho istého WAD súboru. Obmedzenia zo strany SNESu boli brutálne a 2 megabajtová ROM bola zaplnená do posledného bajtu vitálne dôležitými asetmi /vošla sa tam aj podpora pre myš a Xband modem, teda online MP/. Čo sa nevošlo, letelo preč, preto niekoľko tých chýbajúcich levelov, zvukov, animácii enemákov a každý bubák kričí ako Imp. Duch hry, jej hrateľnost však ostala plne zachovaná a slušný predajný úspech sa nakoniec dostavil.

Grafika. Extra kapitola ku technickej stránke. SNES s akcelerátom transformácie geometrie stále nemá dostatočný fillrate pre plnenie obrazu pixelami alebo textúrami. Z tohto dôvodu je preto strop a podlaha miestností DOOM SNES verzie zobrazená iba ako farebný gradient, ditherovaný prechod. A muselo sa ísť dole aj s rozlíšením. Z natívných 256x224 sa pomocou čierneho rámčeka dokola mínus pevný status bar zišlo na 216x144 pixelov grafiky v hernom okne. A pretože pixely po vertikále boli duplikované tak vo finále SNES Reality "doom" engine renderuje v hre DOOM iba 108x144 pixelov na priemerných 10 fps !! asi ako ta i386/25Mhz, keď sa to dá podľa YT odhadnúť.

A teraz si svorne poplačme aká krivda sa nám stala, keď budeme musieť hrať niektoré PS5 hry v mrzkom rozlíšení 2560 × 1440/60fps s RT efektami. Randy Linden je fanatik. Je to človek, čo si zohnal amigu, urobil na nej C64 emulátor, vyriešil pripojenie C64 floppy mechaniky. Potom išiel na výstavu a pred prezidentom Commodore spustil tu amigu, spustil ten emulátor, vložil do C64 floppy mechaniky C64 hru a nabootoval to a na tej amige aj hral. Ohromení boli všetci. Podobné sadnutie si na zadok nám už všetkým pri moderných hrách roky chýba, bez ohľadu na fenomenálny prebytok výkonu či už pri PS4 alebo pri nadchádzajúcih next gen konzolách. Dnes Randy s vlastnou start-up firmičkou robí nejaké malé veci pre android /hej, vyzerá to ako Quake engine, čo už asi nikoho neprekvapí/. Nový HW vzdialený už len niekoľko týždňov teda máme nespochybniteľne v tip-top kondicií, čaká sa na geniálnych kóderov a herných dizajnérov.

15. 8. 2020

/Ne/kontrolovaná explózia


Projekt Manhattan. Amíci počas druhej svetovej makali na atomovke. Z dôvodu maximálneho utajenia boli práce rozdelené na desiatky rôznych miest po celej krajine /vrátane UK/ a robili na tom desaťtisíce ľudí. Malo to najvyššiu prioritu, nikto však nevedel, čo presne vlastne robia. Jeden z predákov mal problém motivovať svoj tím /absorpcia pomalých neutrónov v rôznych materiáloch/, lebo ako inteligentní ľudia chápali, že pracujú na super dôležitej, dielčej úlohe a hrubo tušili odkiaľ vietor fúka ale chýbal im celkový obraz. Iná kapacita, žid Richard Feynman, teoretický fyzik, Nobelova cena - oboznámený so všetkými skutočnosťami to celé tmelil a lepil dokopy, synchronizoval a ťahal do úspešneho konca. Bomba vybuchla, amerika si to úmyselne vyskúšala na živej sile v reálnych podmienkach. Išlo o jediný dôvod použitia oboch bomb. Demonštrácia sily pred rusmi, áziou a praktický pokus. Práce na bombe inak išli precízne vedecky, pragmaticky, s funkčnou vertikálnou a horizontálnou komunikáciou, koncentrovane, bez závažných mimoriadných situácií.

Katastrofa raketoplánu Challenger. Šéfom vyšetrovacej komisie bol práve Richard Feynman a našiel katastrofálny neporiadok, podnik riadený obludne cynickým aparátom plných psychopatov. Na dôvod havárie sa prišlo okamžite, bol totiž roky dobre známy. Feynman slúžil ako "expandable" hlásna trúba, ktorá to povie za ostatných. Raketoplán je podobne ako atomovka nesmierne komplikovaná vec bežiaca v tých časoch na hranici a za ňou našich technických /metalurgických, aerodynamických, materialových, vypočetných atď./ možnosti. Raketoplán mal známych niekoľko desiatok kritických až superkritických chýb, o ktorých vedeli všetci inžinieri na spodku a ktoré sa postupne smerom nahor ututlávali a bagatelizovali s cieľom dosiahnúť politické body. NASA musí dostať potrebný rozpočet, raketoplán musí letieť, amerika a prezident musia vyzerať dobre. Feynman konštatoval absolútne zlýhanie komunikácie, vrcholne nevedecké, cynické, amorálne správanie vo vedení NASA /tiež politici vo Washingtone, aero-zbrojárska klika/. To zabilo tých ľudí po štarte. Menej ako v hirošime ale rovnako plánovane.

Toto všetko a mnoho ďalšieho ma napadlo pri pohľade na HALO Infinite /343 Industries/ fiasko. Vraj chyba "velenia". Nejde však o problém len tejto jednej franšízy ale vlastne všetkých AAA hier. Dnes jednotlivé sekcie vo veľmi veľkých firmách - technologická časť, dizajn hry, kultúrne boje /SJW, WOKE, LBGT/, marketing, predaj, akcionári, strategické plány s IP idú po mimobežných cestách, egá si lezú po hlavách, nikto nepočúva "spodok" a vrch vie "najlepšie" čo je dobré. Rozpočet budúcich super AAA bude v stratosfére, riziko neznesiteľné a klasik povedal : "beda tej dobe, ktorá v zlých časoch nenájde správneho vodcu /Marle, Malevil/, ktorý tou búrkou stádo v zdraví povedie".


zábava !!

Minule sa na neogafe niekto opýtal, čo je za tým, ze poslednú Zeldu vlastní 1/3 Switch hráčov. Niečo nemysliteľné pri PS4 "only" hre. Je ta gamesa tak herne dobré alebo je to tým, ze tam proste tých hier tohto kalibru nie je dosť. Objektívny pohľad je, že herná stránka je vysoko nadpriemerne dobrá. Dostupný výkon na strane HW PS5 bude o viac ako rád vyšší než pri nintende Switch. Videl však niekto z vás nejaké "vision" video, ktoré reflektuje na skutočnú kvalitu, na to čo hráči chcú, aby sme sa konečne trochu posunuli ďalej od PS2 stredoveku ? Nie nevidel, nikoho váš názor nezaujíma. Rozhodnutia idú zhora od stolu riaditeľov, plebs to má iba bez slova zaplatiť. Ďalšia Zelda sa určite komplexnosťou /herné väzby, kombinácie, replayabilita/ posunie ešte viac do next gen budúcnosti. Pre nintendo sú ich hry ako projekt Manhatan. Pre SONY je to raketoplán Challenger. Ja som teoretický fyzik Feynman a jednoznačne žalujem zmrdov zo SONY za náhradu škody za posledných 20 rokov. Psychická ujma a tak - "auf Schadenersatz verklagen". Sráči a diletanti.

3. 8. 2020

Spomaľ, máš privysokú rýchlosť


"Vnímam ju len šiestym zmyslom". Tak spieva Katka Knechtová so svojou skupinou Peha. Dev tím hry Ghost of  Tsushima sa pochválil, že nahrávanie hry je tak rýchle, že to až museli spomaliť, aby si hráči stihli prečítať užitočné herné tipy na nahrávacej obrazovke.  Playstation 4 HDD pritom nie je žiaden zázrak techniky, je to pomalá notebooková 5400rpm šunka, ktorú by ste vo svojom hernom desktope určite nechceli. Mnoho hráčov ale aj expertov bolo teda prekvapených, keď videli ako suverénne si ten šmejd počína a náhravacie časy, rýchly "fast travel" prechod po mape medzi vzdialenými bodmi alebo reštart po smrti herného avatara sú obdivuhodne rýchle. Často až na hranici okamžitého nahratia. Je zjavné, že tu niekto dal dokopy výnimočne dobrý, programový kód.


bleskové loadingy

Šéf programátor Adrian Bentley je ten náš človek. Vo voľnom čase pracoval práve na niečo podobnom a v hre to použili. Super optimalizovaný algoritmus pre streaming ultra pakovaných herných dát. Popis terénu, scény o veľkosti 200x200 metrov majú v Sushi hre so všetkým podstatným /geometria, objekty, všetka foliage, skripty/ zabalený do veľkosti 2 megabajtov. Herné dáta sú počas inštalácie na HDD umiestňované precízne na tie najlepšie miesta z pohľadu rýchlosti a prístupu. Niečo podobné svojho času spomenul aj Insomniac Games pri kódovani PS3 hry Resistance: Fall of Man /2006/, kde ako príklad pri jednej skutočne dobre urobenej kompresii dát geometrie scény a optimalizovania načítania sa daný blok nahrával namiesto 2.8s iba za menej ako 0.1s. Nie náhodou sa im to rovnako dobre darí aj v Spidermanovi pre PS4 a určite aj z toho dôvodu bola táto hra vybraná ako demonštrátor bleskovo rýchleho načítania z SSD na PS5.  Z menu do hry pod jednu sekundu.

V nie tak dávnej histórii sa bojovalo o rýchlosť alebo kapacitu uložiska prakticky neustále. Ako Amiga alebo Atari ST s chudokrvnou floppy mechanikou, ktorá slimačou rýchlosťou od 30KB/s pomaly cucá data. Určite sme vtedy mierne závideli konzolkám ako staré SNES s ROM kartridžom, ktorá tu 128 kilovú pracovnú pamäť naplnila "v sekunde" a "seek time" bol v stovkách nanosekúnd, nie milisekúnd či až mnoho pol sekundách. Problémom bola veľkosť toho kartridžu o priemernej veľkosti 2-4 megabajty. Neskôr tam nintendo montovalo aj HW dekompresor /ako dnes PS4 a PS5/ a dáta mohutne pakovalo. Playstation 1 s CD mechanikou kapacitné problémy sice elegantne vyriešilo, ostali však tie smutno pomalé rýchlosti. Double-speed CD mechanika s 300KB/sec a pomalým presúvaním hlavičky po placke je ako návrat ku flopáčom na amige. PS2 v tomto smere tiež nové nič nevymyslela. DVD malo vyššiu kapacitu, vyššiu rýchlosť, nárastla však aj veľkosť RAM, ktorú bolo treba zaplniť. Absencia HDD bola citeľná a technickej kvalite hier a komforte /inštalácia viacerých hier na HDD bez DVD diskotéky/ by zabudovaný HDD ala prvý Xbox zjavne už vtedy veľmi pomohol.

Playstation 3 a Playstation 4 mali HDD v defaulte. Problém s kapacitou sa vždy dal nejako poriešiť, ostávala nízka rýchlosť 5400rpm HDD s ohľadom na značný nárast veľkosti RAM medzi PS3 a PS4 - z 512 na 8192 mega a razantne vyššie nároky PS4 hier na zásobovanie dátami. Takže jasný tlak na prechod na veľmi dlho, veľmi drahé SSD. Pri PS5 sa primárne najdôležitejší problém s rýchlosťou úložiska vyriešil radikálne implementáciou de fakto najrýchlejšieho možného riešenia na trhu /konzumný segment/ s odstranením všetkých slabých miest v celom reťazci pohybu dát od SSD do RAM, nielen teda na úrovni SSD radiča ala PC.

Hrubá výkonnosť celého SSD PS5 systému sa v jednom z hlavných parametrov /objem dodaných dát/ udáva na hodnote až 22 GB/sec. Pre porovnanie PS3 rovnako rýchlo komunikovala so svojou lokálnou 256 megovou natívnou VRAM. Ide teda o enormne vysokú cifru a dopracovali sa ku nej kombináciou surovej rýchlosti toho SSD PS5 radiča a HW dekompresorom Kraken, voliteľne aj implementovaním plynulo "strátového" RDO algoritmu /používaný aj pri H264 video kodeku/. Konkrétne testy zamerané na typické "herné dáta", textúrky rôzneho typu a spol.: 

Dataset 1 (Texture data BC1,3,4,5, and 7. Mix of diffuse, normals, etc.)
Kraken ratio: 1.76:1 (PS5 perf will be: 5.5GB/sec * 1.76 = 9.68GB/sec)
Kraken + RDO ratio: 3.13:1 (PS5 perf will be: 5.5GB/sec * 3.13 = 17.2GB/sec)

Dataset 2 (Texture data BC6 and 7. Mix of diffuse, normals, etc.
)
Kraken ratio: 1.78:1 (PS5 perf will be: 5.5GB/sec * 1.85 = 10.1GB/sec)
Kraken + RDO ratio: 3.99:1 (PS5 perf will be: 5.5GB/sec * 1.99 = 21.9GB/sec)


SSD samozrejme nemá a nikdy mať nebude tu jemnosť, granularitu, flexibilitu výkonu klasickej RAM a teda ju zatiaľ nemôžte použiť ako jej priamo 1:1 náhradu alebo to virtualizovať ako  plnohodnú ramku. Ak si však v hlavnej systémovej RAM vyhradíte napríklad 800 megovú kešku /čo je čírou náhodou reálny príklad z PS5 Unreal 5.0 dema/, tak vám túto oblasť pamäte vie SSD plniť práve tými 10 až 22GB za sekundu. To je strašne gigantické množstvo dát, ak si uvedomíte, že PS4 HDD to dokáže v intervale nejakých 10-100 mega/sec s grafikou hier - Uncharted, Spiderman, Horizon, Sushi, GTA 5, RDR 2. Prvé teda čo každého hráča napadne je ako sa to prejaví v budúcich PS5 hrách /detto XSX/

A na to si budete musieť ešte dosť dlho počkať. Roky. Epic sám píše, že so SONY sa točili vyše dvoch rokov okolo nového IOPS SSD subsystému PS5. Nie je to tak jednoduché. Vývojárske middleware, SDK, grafické engine na tak robustnú dodávku dát dnes nie sú ešte stavané. Aj špičkoví herní vývojari majú len hrubú predstavu čo s tak strašným objem herných, grafických dát majú robiť. Čiste teoreticky môže byť celá kapacita PS5 SSD, teda 825 gigabajtov skrze tých 22 giga/sec prístupná hre ako jedna veľká "terabajtová" RAM, o pár rokov aj mnoho terabajtová s rýchlosťou cez 50+ giga/sec. A som si istý, že iba 5% zo skupiny famóznych civilných šoférov odšóferuje dlhodobo formulu F1 bez toho, aby sa neprizabili v druhej zákrute po štarte v každom preteku. V blízkej budúcnosti nás čaká výkon, ktorý bude úplne nad sily veľkej väčšiny progišov malých a stredne veľkých firiem. Iba giganti s obludným rozpočtom si budú vedieť siahnuť na maximálny potenciál herného HW.