18/06/21

Jak funguje reverse image search... nejspíš

Jak funguje "reverse image search" neboli vyhledávání podle obrázku ve vyhledávačích jako Google nebo TinEye můžeme jen hádat. Pravděpodobně vychází z dostupných veřejných technologií. TinEye byl první známější vyhledávač obrázků s touto funkcí a byl spuštěn v roce 2008. Google vyhledávání ubrázků spustil v roce 2001, avšak funkci vyhledávání podle obrázku přidal až v roce 2011, shodou okolností se v této době stal trendem thread v programovací části redditu, kde diskutující řešili, jak nejspíš TinEye funguje. Toho si autoři TE všimli a jejich odpověď byla "TinEye is Magic!". Abychom se dostali k jádru tohoto kouzla a jak nejspíš podobné vyhledávače, ale i technologie na to napojené fungují, musíme si ujasnit pár základních pojmů. Jako co je to bit, byte, integer a hash. Předpokládám že to víceméně všichni znají, ale pro připomenutí... (experti mohou přeskočit)


Bit Byte

Bit je 1 nebo 0 a takto se vyjadřují čísla v binární(dvojkové) soustavě. Byte (bajt) je 8 bitů, např. 10011101, což je v desítkové soustavě číslo 157 a v hexadecimální(šetnáctkové) je to 9D (9 x 16 + 13 = 157 (13 je protože hex soustava počítá 0-9 a pak ABCDEF místo 10 – 15, takže D je 13). Počítačová paměť umí uložit jako nejmenší fragment jeden byte(8 bitů).

Integer

Integer znamená latinsky celý a je to tedy pouze celé číslo a využívá se při programování. "signed a unsigned" znamená že je možné číslo vyjádřit se znaménkem - a nebo bez něj. Budeme se zabývat jen tím s kladnou hodnotou. Bežně užívaný nezkrácený integer Int32 je 32 bitů dlouhý kus v paměti, tj. 4 bajty a jeho maximální hodnota je tak 32 jedniček v binárním kodu. Nebo FFFFFFFF v hexadec. soustavě a 4 294 967 295 v decimální.

(Jen pro zajímavost uvedu, že YouTube muselo poprvé kvuli korejské písničce Gangnam Style přejít ze signed 32 inteegeru počítání views na 64bit z důvodu že skladba mířila k přesažení max hodnoty signed int32 tj. 2147483647 a při přetečení by to začalo počítat od minimální hodnoty -2147483648)


Hash

Hash je prakticky integer o různých délkách bitů 64, 128, 256... Získává se ze vstupních dat pomocí nějaké funkce a výstupem je číslo. Nejčastejší užití je při šifrování internetové komunikace HTTPS, nebo při komunikaci s modemem přes WiFi. Jsou různé druhy a užití, nemá prakticky žádné hranice. Některé hashe jsou reverzní, tj. že z jeho hodnoty lze dopočítat původní data a z některých nikoliv, takové slouží například k ukládání hesel do databáze aby heslo na přihlášení na web nebylo uloženo jako prostý text. Když se uživatel někam přihlašuje tak je heslo převedeno na hash a na serveru se porovnávají hashe aniž by šlo zjistit co je původní slovo. Teoreticky se může stát, že dvě rozdílá vstupní data mají hash stejný, ale nevím zda tomu může být i u hesel, nejspíš se počítá s pravděpodobností jako u klíčů a zámků, že existují duplikáty ale není pravděpodobné že se potkají se správným zámkem.

Image Search

(Tím jsem se dostal k samotnému hledání. Dále popíšu základ a spekulaci jak to nejspíš může a nemusí u známých vyhledávačů fungovat v principu)

Nahrajete obrázek na Google nebo TinEye a vytvoří se z něj na straně serveru takzvaný "perceptual hash" (narozdíl od výpočtu hashe hesla, výpočet hashe obrázku probíhá u nich na serveru, aby nikdo nevěděl jak hash počítají). Takže v tomto případě zde nemusí být angažována žádná AI, ani machine learning. Perceptual hash je vlastně orientační hash jak daný obrázek vypadá pro lidské oko. Hash lze vytvořit více způsoby. Já popíšu ten, se kterým jsem dělal pokusy, tj. Difference hash.

Jak už vám asi došlo, vyhledávání obrázků probíhá porovnáváním těchto hashů. Perceptual hash musí být odolný na jemné změny v obrázku jako změna barev, ořez, vodoznak a nebo rozdílný poměr stran. Nemůžou se zde využít již existující typy využité při šifrování hesel a připojení, protože my potřebujeme aby podobné obrázky měly velmi podobné hashe. U šifrovacích hashů by tak stačilo zmenit jediný pixel a vyšlo by uplně jiné číslo. 

Zmiňovaný difference hast vypočteme tak, že si to celé zjednodušíme tím, že zdrojový RGB obrázek převedeme do černobílé barvy, tím se docílí odstranění rozdílů v barevné saturaci a zároveň obsáhneme i černobílé verze obrázku a rychleji se počítají následující výpočty, protože místo tří barevných kanálu máme jen jeden. Dále se v mé metodě obrázek zmenší na 8x8 pixelů. Tím nám vznikne mžížka s 64 pixely v odstínech šedé. Jeden pixel má v paměti velikost 1 byte a může mít hodnotu 0 – 255 (0 = černá, 255 = bílá).

V mé metodě toto 2D 8x8 pole převedu na 1D pole o 64 hodnotách. Takže máme 64 bytové(bajtové) pole, to je 512 bitů. Nám to ale stačí převést na 64 bitů aby obrázek vyjadřoval jeden 64 bitový integer. Zárověň nás nezajímá přímá hodnota pixelů v obrázku, protože ta se může lišit pokud například někdo zmenil jas nebo kontrast. Náš zajímají rozdíly mezi sousedy (proto difference hash). Takže si prakticky projdeme to 1D pole s 64 byt hodnotami a vždy porovnáváme dva sousedící byty. Metody se můžou lišit ale při vytváření databáze a následném hledání je potrebné použít vždy stejné postupy a to i v případě zmenšování (a vlastně i tím resamplování) obrázku a konvertování stejně tak, aby v případě zmeny techniky přesamplování (cubic, nearest, bilinear) nedošlo k jiné miniatuře a jiným poměrům mezi pixely a následné nekompatibilitě s již vytvořenou databází.


Příklad

V příkladu na následujícím obrázku máme obrázek A, 4K screenshot z nedávno remasterované verze Terminátor 2.  B je HD Bluray neremasterovaná verze. C je lehce jinak oříznutá verze B ale v 240p s artefakty od komprese a logem televize. D nemusím vysvětlovat. Obrázek se transformuje na poměr stran 1:1, což probehne současně se zmenšením na 8x8 pixelů a následně se obrázek převede do černobílé. 

Hash získáme z černobílé miniatury tak, že porovnáváme hodnoty sousedních bytů(pixelů) 1 – 64 a nakonec 64 s 1. Například pokud je byte[1] > byte[2] zapíše se do výsledku 0 a pokud byte[1] < byte[2] zapíše se 1. Tímto nám vznikne binární číslo o 64 bitech 1 a 0, které se pro zkrácení a čitelnost zobrazuje v hexa decimálním formátu. Hash screenshotu A je tak v binárním kodu 0001 1001 1101 1001 1101 1101 0001 1101 0001 1001 0001 1001 0001 1101 000 11101 a v hexadecimálním 19d9dd1d19191d1d. 

Tento kód je uložen v nějaké databízi spolu s odkazem na daný obrázek a pak už je jen na vyhledávači zda si pro další účely nechá i originál, ale není to potřeba. Takže informace o podobě jednoho obrázku zabírá pouhých 8 bytů(bajtů). Porovnávání se dělá porovnáním binárních hashů za pomocí Hammingovy vzdálenosti, prakticky pouhý součet rozdílných bitů. 

Na obrázku tak lze vidět že pokud bereme A jako startovní obrázek v databázi (např. v Google), tak B se liší o 4 bity, lehce oříznuté C s kompresí a malým tozlišením se liší o 6 bitů, ale jen o pouhé 2 od obrázku B (modře) a D je rozdílný obrázek a tam se liší 35 ze 64 bitů. Hodnota kde se rozdíl pohybuje kolem 50% je vlastně absolutně nestejný obrázek, protože kdyby se blížila 100% tak by nám vycházelo že se jedná o invertované barvy téhož obrázku. Dle článků které jsem četl se dají obrázky považovat za podobné cca do hodnoty 10 rozdílných bitů ze 64 což je cca 15%.


Další užití a závěr

Terminátor 2 má 137 minut, odečteme titulky 7 min. 130m x 60s je 7800 sekund a při 24 snímcích za sekundu dostaneme 187200 snímků, ze kterých se skládá film. 187200 x 8 bytů = 1462,5 kb hash informací na celý film. Pokud bychom hashovali jen každý druhý frame jsme na 731 kb a optimalizovat by se dalo dál, jako třeba mazat hashe kde není rozdíl vetší než 3 bity. Věřím že bychom se tak dostali až na nějakých 25-50 kb. A teď jsem popsal jak nejspíš funguje Content ID na YouTube. Máte hash tabulku o velikosti pár kb a jste z ní schopni poznat celý dvouhodinový film bez AI.

Závěrem bych chtěl dodat, že když jsem si kolem této problematiky hledal materiály, byl jsem překvapen, jak je to v principu jednoduché. Samozřejmě se v praxi používají i složitější hashovací funkce, ta mnou uvedená je dle testů asi nejblbější. V odkaze naleznete porovnání s dalšími hashovacími funkcemi.

A zde jako zajímavost je článek jak někdo používá AI na reverzní výpočet obličejů z 256 bit (16x16) hashe.


17/06/21

Uni-Engine

V poslednom článku som povedal A a teraz musím aj B. Špecializované bloky na "HW" podporu všetkého možného vznikli nielen na to, aby sa dosiahol vyšší výkon celého systému, ale hlavne pre uľahčenie práce kóderom. Nie všetci sú totiž rovnako dobre kvalifikovaní a zruční. Atari ST nemá blitter, ale je možné /a vlastne aj nutné/ túto funkciu vyriešiť softvérovo, ak to teda dokážete. Nemá ani hardvérové sprajty alebo skrolovanie. Amiga to má a život je tam o toľko jednoduchší. Obrovský problém je v tom, že podobne špecializovaný HW nedrží dlho krok s dobou alebo so špecifickými potrebami tej ktorej konkrétnej hry. Chýba mu totálna flexibilita ručného kódu. Epic takto "ručne" navrhol nové spracovanie svetla a geometrie a "zistil", že časti HW v GPU na to určené sú priliš pomalé. Strašne pomalé.

A situácia eskaluje. Epic investoval more peňazí a času do vývoja tejto novej paradigmy a sú pritom prinajlepšom ešte len v polovici. Plné vybavená UE5 podľa ich predstav bude mať hodnotu väčšiu ako celý budget pre nasledujúce GTA a ten bude gigantický. Sledujete, čo sa vám snažím naznačiť ? Trhová dvojka - Unity engine asi bude chcieť s UE5 držať krok. Majú však vôbec na to ? Dosť váham a zároveň viem, že s bežiacim časom sa nám počet kvalitných multiplatformých enginov /middleware, až mainframe/ rýchlo blíži ku čislu 1 /slovom : jeden/. Zákonitá hegemonizácia trhu vzhľadom na nepríčetne veľkú ekonomickú náročnosť toho také niečo vyvíjať, držať pri živote a ďalej zlepšovať.

Uni-Engine je moja vlastný pracovná hypotéza stará viac ako 15 rokov, že príde čas, keď si skutočne komplexný, robustný engine triedy AAAA /grafika, audio, fyzika, AI, online/ bude môcť dovoliť v prípade multiplat prostredia až jeden jediný vývojár. A bude sa musieť vymyslieť nový biznis model, čo s tým a ako do zlepšovacieho kolotoča zapojiť aj ostatných mimo materskú firmu. A do tohto bodu sa vlastne dostávame práve teraz. Nemôžte čakať, že si stovka malých AA dev tímov sadne pri PS5 /mega PS6/ na zadok a podobný engine si do leta na kolene urobí. Zvládnu maximálne niečo vhodné pre obligátnu "PS2 gameplay" a v konzole sa budú potiť akurát tak ROPs jednotky, aby tu "oldschool" parádu dostali do 4-8K rozlíšenia.

Quake Rally a tiež Quake Battle Chess, Quake DOTA, Aliens alebo TPS pohľad ala Lara Croft

Metodika uni-engine musí byť aplikovaná aj na úrovni veľkých softvérových veľmocí ako SONY, MS, Ubisoft, T2, Activision. Teda jeden modulárny engine pre všetko. Snowdrop engine /Ubisoft/ by mal zvládnuť WRPG sandbox hru. TPS, FPS pohľad na herný svet. V tom istom RPG lesíku vymeníte za behu kone za rally autá alebo bociany za motorizované rogalá. Od úrovne mora až na mesiac. SONY má isté skúsenosti s vlastným enginom Phyre /multiplatformový/ a teraz sa jemne pretláča do popredia Decima engine holanďanov z Guerrilla Games, Nič viac zatiaľ zrejmé nie je. PS5 Returnal použil núdzovo UE4 lebo vlastný engine bol mimo síl malého dev tímu a SONY nič vhodné neponúklo.

Všetci chcete natívne PS5 hry v maximálnom možnom technickom prevedení. Zabudnite, ale potom na to, že si 20 herných SONY štúdií bude robiť každá vlastne middleware na úrovni UE5 alebo dokonca za ním. Vyslovene som zvedavý ako sa Naughty Dog, Santa Monica, SONY Bend, Guerrilla Games, Sucker Punch, Insomniac Games a ďalší budú snažiť túto situáciu efektívne vyriešiť. Inak môže dojsť k tomu, že third party giganti s hrubým kapitalovým vankúšom si budú robiť s trhom /aj mimoherným/, jeho smerovaním, technickou, hernou vyspelosťou, čo len chcú. SONY in-house hry budú tí chudobnejší príbuzní a pomyselné rozdielové nožnice sa budú rýchlo roztvárať ešte viac.

16/06/21

Konzoly - optimalizácia HW jeho úplným ignorovaním

Grafická karta Voodoo 1 od 3Dfx bola jedna z prvých, výborných a cenovo dostupných 3D akcelerátorov na trhu. Čo ma zmiatlo bolo to označenie 3D akcelerátor. Už som vtedy čo to o grafike vedel a čakal som HW podporu pre spracovanie geometrie a nasvietenia, aby sa odľahčilo CPU. Voodoo 1 však nič také neobsahuje. Akceleruje proces rasterizácie, čo je niečo úplne iné a nejde primárne o nejakú 3D grafiku. Proste marketingové hry, lepšie to na krabici vyzerá. Rasterizáciu dovtedy robilo tiež CPU a ide vlastne o projekciu herného 3D sveta na 2D maticu obrazovky. Príšerne komplikovaný proces náročný na pracovné CPU cykly. V HW podobe na GPU nespočetne krát priebežne masívne vylepšovaný. Ide o čiernu skrinku každého GPU. Posvätný blok silikónu, ku ktorému má prístup iba výrobca toho HW a poskytuje ho ako obetu bohom skrze ovládače ku grafickej karte. Manuálne prevzatie kontroly nad rasterizáciou je už roky tabu.

Ešte pred zopár rokmi napríklad Nvidia povedalo toto: "Rýchlosť spracovania vertexov na GPU teraz rastie rýchlejšie ako spracovanie pixelov a v blízkej budúcnosti očakávame nástup tzv. veľmi pokročilých geometrických algoritmov. Vylepšenia procesu rasterizácie ako je nový režim konzervatívnej rasterizácie umožní okrem iného aj rýchlejší nástup raytracingu a globálnej iluminácie." Dnes je však realita dramaticky odlišná. Epic hovorí, že HW rasterizácia je mŕtva a je na otázka dňa, či ju nevypustiť z návrhu dizajnu budúcich GPU úplne a neinvestovať takto uvoľnený silikón na užitočnejšie veci. Softvérový rasterizér Epicu bežiaci na GPU v UE5 je totiž v priemeru o 300% výkonnejší ako jeho HW konkurencia na tom istom GPU v ich konkrétnom engine. Ak teda v týchto podmienkach beží po PS5 GPU "novom" a NV 3090 po "starom", tak Nvidia skonči v poli porazených.

Raytracing. Často čítam herných laikov ako nadávajú na RT HW v next gen konzolách. Neberú ho vážne a podceňujú ho. Je možné ho "oklamať", zrýchliť podobne ako tú HW rasterizáciu ? Samozrejme, že áno. A nielen tak, že RT reflexie dáme vypočítať v 4 krát menšom rozlíšení a rozdiel do vyššej kvality získame napríklad CB /checkerboard/ upscale algoritmom ala Ratchet pre PS5 alebo nám pomôže rasterizácia pre časti obrazu, kde sa dá použiť "screen space" pracovný priestor alebo traceovanim lúčov proti silne zjednodušenej proxy /zástupnej/ geometrii skutočných objektov ako to robí aj UE5 a mnoho ďalších. Ukážem vám jeden luxusne didaktický príklad ako postupovať pri RT HW konzol efektívne, so zdravým sedliackým rozumom.

Tiene. Tie veci, ktoré vznikajú, keď do cesty fotónom vstúpi nejaký objekt a nastane ich oklúzia. Priame tiene, ak medzi zdrojom a tieniacim objektom sa už nič okrem vzduchu nenachádza a nepriame, keď tieň vznikne cestovaním lúča, ktorý sa už minimálne raz niekde odrazil. Je teda výrazne oslabený, farebná hodnota/energia môže byť zmenená a roztyl na hranách tieňa už značný. Výpočetne náročnejšie /tzv. AO, ambientná oklúzia/. Rasterizované >priame< jasne viditeľné tiene boli v hrách vždy jedným z klasických problémov. Tragické rozlíšenie /shadow mapa je textúra a kvalita sa rovná obrovské objemové nároky/, stabilita, vykresľovacia vzdialenosť, uhlové artefakty. RT tiene to všetko elegantne riešia ale sú zároveň minimálne o rád pomalšie. Čo s tým ?

Použijeme Toy Engine /na ilustráciu, bezvýznamný, multiplatformový engine/, Intel HD 4000 laptop, ďalej klasickú scénu na testovanie grafiky - Sponza Atrium. Všetko v rozlíšení 1280×720 pixelov. Najprv tam hodíme tieň získaný bežnou rasterizáciou s tieňovou mapou o bežnom rozlíšení 1024x1024. Sledujte nižšie na obrázku obrysový tieňový aliasing. Zubatosť je značná, aj keby ste dvihli rozlíšenie tieňu na 4K. Objem dát ide strmo nahor. Náš intel laptop tie 1K tiene dáva za 3.7ms. Obratená hodnota lomeno 1000 sa rovná 270 fps. OK. Teraz raytrace podoba v podobnom rozlíšení. Tieň je peknučký a čo nie je na statickom zábere vidieť, tak je aj extrémne stabilný, bez ohľadu na uhol pohľadu, sklon normál povrchu alebo vzdialenosť. Doba renderingu je 92.2ms a teda 10.8 fps. Koniec rozprávky, ten HW na to naozaj nestačí, alebo ?

vľavo "škaredka" 1K tiene ako bežné shadow mapy /rasterizácia/, vpravo krajšia raytrace verzia

Alebo zapojíme mozog a znížime renderovací čas RT tieňov na nejakých 13 ms /77 fps !!/ s prakticky úplným zachovaním kvality RT tieňov, aj keď pôjde o rasterizačne-RT hybrid techniku. Ako sme to urobili ? Ak si ešte raz pozriete vyššie ten raster a RT tieň, tak spoločný prienik majú v tej čiernej mase v strede tieňov a líšia sa kvalitou na ich okrajoch. Myšlienková konštrukcia. Čo tak nechať rasterizáciu vypočítať ten "stred" a RT HW aplikovať iba na "okraje" ? A to je aj správna odpoveď. Zníženia počtu pixelov /trojuholníkov/, ktoré musí RT HW otestovať klesne dramaticky a simultánne s tým stúpne výkon. Asi vás neprekvapí, že keď na to príde jeden šikovný kóder, tak to objavia časom aj ostatní.

 maskovanie okrajov tieňov, to "biele" má na starosti HW RT a finálna hybridná raster-RT kompozícia

A presne to sa aj stalo a AMD to dokonca oficiálne ponúka ako vhodné riešenie pre rýchle a kvalitné tiene. Morálne ponaučenia, ktoré z toho vyplýva je - vždy sa to dá urobiť lepšie. Epic v UE5 je prvý pokus veľkej firmy o zásadné, "softvérové" prepracovanie klasickej HW renderpipeline cesty GPU, ako ju poznáme desaťročia. Ich softvérový rasterizér a raytracer sú mimoriadne výkonné. GPU v PS5 a XSX sú prvé také komerčne dostupné a masovo rozšírené mašiny, ktoré takúto bezprecedentnú flexibilitu umožňujú aj prakticky v hrách. Vo veľkých AAA hrách, nie ako malé cvičenie doma na PC pre projekt na vysokej škole. Práve next gen konzoly odpália renesanciu nového programovania s presahom do ďalšej generácie, kde sa už budú žať úžasné plody tohto základného výzkumu. Naivný "brute force" postup nevedia nikam ako ukázalo HW riešenie úplného RT v Cyberpunk 2077, ktoré zloží Nv 3090 pri 60 fps do rozlíšenia pod 900p. Chce to použiť filipa. Neupgrejdovateľné 200 wattové konzoly to opäť zachránia.

08/06/21

We believe in generations

SONY ústami jej prezidenta Jim Ryana tým chcela povedať, že už keď investovali do nového HW, novej konzoly a nákladovo vždy náročného a rizikového prechodu na novú generáciu konzoly, tak ten pokrok chcú ukázať aj v hrách a to tak skoro ako je to možné. Netrápiť hráčov cross-gen hrami a čakaním za novým next gen zážitkom. Určite by sa vám nepáčila absurdná situácia, ak by ešte dva roky po štarte PS2ky vychádzala väčšina vlajkových lodí SONY primárne na PS1 s kozmetickým updejtom pre PS2. Nebola by žiadne Gran Turismo 3 ako ju poznáme, bola by iba ďalšia PS1 GT hra napríklad na engine Ridge Racer 4.

Digital Foundry sa teraz rehotá z toho, že je SONY nútené všetky svoje veľké herné značky presunúť z PS5 aj na PS4. Vlastne ich obviňujú, že dobre vedeli, že hry ako Spiderman, Horizon, God of War alebo Gran Turismo 7 nikdy nemali byť iba na PS5ke ale od začiatku ich plánovali ako tzv. cross-gen tituly. A špekulujú ako veľmi menej výkonná PS4 s HDD uškodí tým hry, oproti rýchlej PS5 s SSD. SONY = lži, zavádzanie, neférová hospodárska súťaž, zámerne zlá komunikácia a tieto veci. Považujem sa osobne za najhlasnejšiu hlásnu trúbu, ktorá roky dopredu avizovala dnešný stav a to, že predaje konzol /aj rekordman PS2/ sú príliš nízke a náklady na AAA hru budú priliš vysoké. Nová generácia konzol si nebude môcť dovoliť ignorovať tu starú, alebo PC ako hernú platformu a skutočná "nová" generácia začína až v polovici už bežiaceho cyklu. PS5 štartovala v roku 2020. Prvé "niečo" čo sa dá nazvať dobrá, natívna PS5 hra tu nebude skôr ako v roku 2022, možno až 2023. Hrozné. Ale nič z toho pre SONY nie je/nebolo žiadne tajomstvo a vedeli to ešte skôr ako ja.

Jim Ryan, šéf SONY, to do jesene zmákne, ale do jesene ktorého roku ?

Prehrabete staré herné časopisy /napríklad pre ZX Spectrum/ a pravidelne tam narazíte na intervijú ako sa niekedy robili aj veľké hry "po partizánsky". Zopár chlapov dostalo na ruku 25 000 libier, niekoľko mesiacov času, nie roky,  a hra bola hotová. Konzoly ako PS1 už značne vývoj profesionalizovali. V ére PS2, Dreamcast, Gamecube, Xbox nikoho neprekvapil budget aj vysoko cez 50 miliónov, pričom náklady na marketing stúpali ešte strmejšie. Pri PS3 a PS4 už hovoríme naozaj o nákladovosti ako u holywoodskych blockbusteroch. Poliakov stál Cyberpunk 2077 mnoho rokov práce, pričom ja osobne už všetko nad 2-3 roky považujem za ekonomickú samovraždu, ak nejde o hru, o ktorej viem, že bude naozaj 110 percentná. V peniazoch ich to vyšlo na circa 320 miliónov euro a to predpokladám, že poľská mzda je nižšia ako americká a hra mohla kľudne stáť aj 500 mega, ak by v tom bola vyššia hodinová mzda na západe.

Rentabilnosť investície podľa zdravého rozumu hovorí o dobrej návratnosti, ak zarobíte aspoň 2-3 násobok vkladu.  Ak teda vložím do budúcej AAA hry 500 mega a čakám aspoň 1.2 miliardy euro nazad, tak musím predať aspoň 24 miliónov kópií po 50 euro a to tak rýchlo ako je to možné. Žiadna hra toľko na PS5ke nepredá v deň jej štartu, ani v tomto roku, ani v budúcom a asi ani "nikdy". Nie je mi známa žiadna PS4 only hra, ktorá by aj pri veľkej uživateľskej základni dosiahla tieto predaje. Zdá sa, že je to fyzicky nemožné, musel by ísť o niečo univerzálne. Šťastná trefa, čo sa podarí raz za dekádu alebo za dve ako je povedzme Minecraft.

PS5 teda narazila na niekoľko limitov. Ten technologicky zas hovorí, že je mimoriadne náročné z konzoly dostať väčšinu jej potenciálu, aj keď je narozdiel od PS2-PS3 ľahučko programovateľná. Už len na výrobu grafických asetov zajtra potrebujete stovky, tisíce muklov. Na zvládnutie vlastnej softvérovej renderpipelajny zas titul profesora. Výkonu je tam proste príliš veľa, možnosti príliš obsiahle. Skutočne tvrdá exploatácia PS5 je mimo ekonomických možností 85% vývojárov. Je to to isté, ako keď so mzdou 2100 euro v hrubom nemáte na zabezpečenie chodu auta Bugatti Veyron. Nemáte na poistky, na servis, na opravy. V tejto pasci sa teraz SONY s PS5 nachádza.

PS5 má výborné CPU, GPU, RAM a unikátne SSD IOP riešenie, ktoré chce každý vidieť čo najskôr v akcii. Ako už však vieme en masse sa status hier ako Spiderman, Horizon, God of War, Gran Turismo z očakávanej PS5 polohy zmenil na cross gen PS4-PS5 hry. Ide teda primárne o PS4 hru s kozmetickým vylepšením na PS5ke. Výkonnostný rozdiel medzi PS4 a PS5 je veľmi podobný rozdielu medzi PS2 a PS3. A aj keď sa to teraz nezdá, je dokonca ešte väčší. PS5 konečne umožňuje skutočne novú "next gen" hrateľnosť. Opustenie PS2 štandardu - statické prostredie, takmer žiadna interakcia a fyzika, takmer úplne blbá AI. Prakticky stále tie isté 30 rokov staré, overené herné postupy.

Pri otázke financovania veľkých AAA hier nevidím iné riešenie ako je smrť exkluzivít. Nech každá generácia Playstation konzoly predá obligátnych 100 mega kusov. Nech každá generácia zároveň dvihne náklady na vývoj a marketing o 50-500%. V istom okamihu sa tá dvojica týchto kriviek na grafe pretne nesprávnym spôsobom a starým časom je koniec. Považujem, za veľmi nebezpečné ako multiplatformové "holdingy" - T2, EA, Ubisoft komfortne v hlavných ukazovateľoch /kvalita hry, kvantita zisku, šírka investícií, rozvoj, softvérové technológie/ predbiehajú čisté exkluzivity. Peniaze sú moc, vplyv, schopnosť ovládať situáciu. SONY a MS to vedia a každé svoje IP teraz musia automaticky vidieť na svojej konzole, na PC, v istej forme na mobilitách, na ladničke s displayom. Ekonóm im tu kalkuláciu urobí doobeda. A áno, samozrejme, situácia pri prechode na PS6 bude identická s tou dnešnou a PS5 pôjde hlboko do jej teritória. Svätý grál skutočne "next gen" hrateľnosti, jasná červená čiara, dosiahneme po prvýkrát cca o 10 rokov.

07/06/21

Horizont: limit ohraničujúci mieru vašich vedomostí

Hranice sa majú prekonávať, nie stavať na nich múry a krčiť sa za nimi posraný strachom. Na neogaf.com som nazval Horizon Forbidden West herne štandardnou PS2 hrou, kde "Lara Croft" pobehuje medzi dinosaurami ako blcha v psom kožuchu. Reakcia bola pobúrená, lebo predsa v HZD môže Aloy počas boja takticky meniť zbrane a "udelátka" a to predsa Lara nemôže. Nechajme stranou, že nebudem strácať čas s blbečkami, čo hrajú hry druhý deň aj cestou. V novšej Lara Croft hre bežne používate luk, útočné pušky rôzneho typu, brokovnicu, dokonca sekeru. Ale to z nej nerobí hru s modernou non-PS2 hrateľnosťou. Problémom prvého aj druhej hry Horizon IP je, že ide stále iba o pobehujúceho panáka, čo pomaly ohrýzava blbú NPC o jej health points.

epické z zábery z HZD a HFW - avšak ani v jednom sa zatiaľ nelieta

Na jednom z prvých obrázkov z Horizon Zero Dawn je lietajúci dino nad peknučkou postapokalyptickou krajinou. Ani vo sne by ma nenapadlo, že hra nakoniec neumožní osedlanie niečoho čo lieta. Zvládne to aj prastarý Word of Warcraft. BF 2142 /alebo iné BF hry tej doby/ na singel core CPU na 1.8Ghz umožňuje ovládanie strojov na vode, na zemi, vo vzduchu. Ak už v niečom letím, tak som schopný aj útočiť, aj keby som mal ručne zhadzovať bombičky ako v prvej svetovej. A do úvahy príchadza aj obľúbený taran, vysokorýchlostné kamikadze. Samozrejme so schopnosťou vyskočenia pred nárazom. Padák, kĺzanie a tieto srandy. Viac možnosti, viac srandy.

 
 glitch - engine HZD nepriamo umožňuje stroje sedlať a "lietať" na nich

Nič z toho Horizon Zero Dawn nepodporuje. Je to nedostatok ambícií na strane vývojára. Nepochybne aj nedostatok talentu. Nie je jednoduché to urobiť herne správe. A nepochybne bude ich verziou komentára tejto smutnej reality nedostatok času alebo vtedy ešte menej výkonný engine Decima. Takže sa s nádejou pozeráme na herné video druhého dielu, kde to už snáď herne "dajú lepšie". Ide stále o cross gen pre PS4 a PS5 ale ako som už ukázal - na bohatšiu gameplay vo všetkých živloch mi stačí aj HW PS2 alebo PS3. 

Na začiatku videu zívame nudou a sledujeme umierajúceho negroidného deda, čo chlemtá vodu a trvá to presne o minútu a pol dlhšie ako som schopný tolerovať. Aloy konečne beží a selektívne niektorá zeleň na dotyk reaguje a niektorá nie. Takže zatiaľ nuda a technologická laxnosť. Nasleduje herná klasika - Lara Croft a dinosaury. Nedostaneme akciu vo vzduchu ale vo vode a pod vodou. Vodné levely su historicky v hrách najhoršie hodnotené a najmenej obľúbené. Water Temple z Ocariny pre N64 srdečne pozdravuje. Asi preto sa v BF hrách toľko lieta a padákuje a tak málo plave a ponorkuje. Ku Guerilla Games sa ale tento odkaz nedorazil.

Obrovský elefant. V každej nehernej ukážke láme stromy a cez les vytvára diaľnicu. Vyzerá to takmer ako cielená provokácia. V hernej ukážke sa však po jeho nohami ani steblo trávy neohne, iba sa občas rozsype nejake schátralá stena /predpočítaná animácia/ ako v prvom diely. Čakáte hru so slonom medzi stromami, trochu fyziky. Zabudnite. A je tam ešte to paraglajdové krídlo ala plachtenie pod štítom v poslednej Zelde. V HFW je to taký malý myší prd, let v úvodzovkách. Dev tím sa inak striktne odmieta vyjadriť k tomu, či sa v hre lietať /a bojovať zo vzduchu/ bude alebo nie.

Ako by to gameplay video vyzeralo podľa mňa. Pribudla schopnosť "voľného" lezenia, po vertikále dostanete asi takmer kdekoľvek. Takže to hneď využijeme od prvej sekundy nového videa a po chvíľke lezenia necháme panáka visieť 300 metrov nad zemi, na tých rozpadlých mrakodrapoch, alebo na špičke piliera Golden Gate. Po chvíľke spadne a vo voľnom páde otvárame to paraglajdové krídlo. Ešte počas riadeného pádu pristávame na chrbáte lietajúceho dina a útočíme v reálnom čase na slona čo zrovnáva les zo semou. Po kamikadze útoku ťaháme luk a šíp, ktorého špičku si len tak nedbalo zapálime vo vedľa horiacich troskách /to som inak videl v jednom reálnom hernom UE4 koncepte/. Využijeme deravenie palivovej nádrže ala GTA a zapálenie benzínovej stopy. V troch minútach videa teda ukážeme nové lezenie, plachtenie, osedlávanie lietajúcich strojov, novú fyziku a interakciu. Prístup k riešeniu problému z mnohých uhloch. Čokoľvek iné je nedostatok ambicií a talentu. A Guerilla Games sa zjavne nedostáva obojeho. Už teraz môžem povedať, že nová Zelda na novej revizií konzolky Switch opäť ukáže bludným holanďanom ako sa to má robiť správne.

01/06/21

Unreal Engine 5: Prvá krv

V roku 2021 sa vraciame metodikou renderovania grafiky naspäť do roku 1991. Nejde o frajerskú pózu, ide o vynútený krok a súčasť večného cyklu vývoja grafiky. Univerzálnosť-špecializácia-ultra špecializácia-univerzálnosť. Pred 30 rokmi neexistovalo GPU tak, ako ho poznáme dnes. Nepoznali teda ani tieňovanie pixelov v programe bežiacom na grafickej karte /pixel, vertex shader/. Žiadna akcelerácia rasterizácie. CPU muselo všetko zvládnuť samo, čomu bola prispôsobená geometrická komplexnosť hry, množstvo animácie, fyziky, kvalita AI. Postupne sa so štandardizáciou GPU, grafického API na nich presúvalo viac a viac práce. Transformácia 3D grafiky, jej nasvietenie, veľmi komplikovaný shader kód za každým krajšim efektom, akcelerácia rasterizácie a alfa operácií. Dospeli sme do bodu, keď na 2000+ eurovej a 400 watovej GPU Nv 3090 si v hre Cyberpunk 2077 môžte dovoliť luxusné, natívne rozlíšenie 900p na celkom stabilných 60 fps pri plnom a najkvalitnejšom nastavení raytracing režimu. Faktum bez zavádzania a zároveň sarkazmus. Niečo proste nefunguje správne.

Raytracing /RT/ postupne nahrádza rasterizáciu preto, lebo spotreba energie a komplikovanosť kódu pri druhom menovanom stúpa exponenciálne so stále zlepšujúcou sa úrovňou rafiky, pri raytracingu skôr lineárne a navyše RT výrazne urychľuje tvorbu, ladenie hry. Svetlo pri RT generuje všetky potrebné propriety /svetlo, tma, tieň, polotieň, lom, odraz/ automaticky bez nutnosti použiť na každý z nich špeciálne vyladený grafický, rasterizačný "hack". Komplikáciou je, že sa raytracing ako presná metóda snaží strieľať lúče voči každému polygónu, ktorý nájde a už pri biednej PS4/XO úrovni geometrie ala Cyberpunk 2077 je tých polygónov príliš veľa a Nv 3090 je na kolenách.

Počet polygónov na scéne tu nezdôrazňujem nadarmo. Medzi PS4 a PS5 generáciou totiž zaznamenáme aj 1000 až 100 000 násobne zvýšenie ich počtu /pomôžu nám aj nové GPU extenzie ako Mesh shader, meshlets, to je ale iná téma/. UE5 používa vlastnú variantu spracovania geometriu meno Nanite s novým formátom definície objektov a rozkladom až na subpixelové primitíva /sú tam bláznivé veci ako auto generované draw calls priamo mesh objektom namiesto CPU, ale tým sa nebudeme teraz zaťažovať/. Virtualizované, pakované dáta geometrie cucané z SSD v strašnom množstve. Klasický raytracing by sa pri takej hustote polygónov potom dal použiť iba limitovane na niektoré efekty a iba na niektorých povrchoch. Globálna iluminácia, teda svetelná kompletka "na všetkom" by nepripadala do úvahy, ako už dokázal aj ten Cyberpunk 2077. Potrebujeme novú paradigmu, ktorá doručí extrémne vysokú hustotu geometrie, svetlo v RT kvalite a použiteľný framerate 30-60 fps. Ťažká práca.

No a jedným z prvých oficiálnych pokusov je Unreal Engine 5. Nejde tu iba o hru s vyššim poradovým čislom. Skutočne sa vraciame do roku 1991 a engine používa GPU ako CPU. Prenáša shader compute /doteraz skôr iba výpočet farby pixela/ do hlavnej renderpipelajny. Tabu aréna. Doteraz bola z veľkej časti riadená mimo kontroly programátorov priamo ovládačmi grafickej karty. UE5 umožňuje ignorovať štandardnú HW renderpipelajnu vášho GPU. Vypne HW rasterizáciu, HW raytracing, ďalšie bloky v HW a prejde na maximálne efektívny softvérový rendering bežiaci v shader kóde GPU. Je to ako ďalší OMG ZERO OVERDRAW moment !! Technicky tam nájdete dvojicu softvérových raytracerov pre dlhé a stredné vzdialenosti a sopľavú socku SS /screen space/ renderer pre krátke vzdialenosti a drobné detaily. To slovo drobné je kľúčové. Epic totiž používa staré finty /viď obrázok nižšie/ a engine má ešte mnoho problémov, ktoré je potrebné doriešiť.

Niekedy veľmi dávno, keď všetko v grafike odmakalo CPU, ste museli dobre premyslieť existenciu každého polygónov, každého pixelu. Flat shading znamená, že ste tak pomalý, že jednému polygónu môžte priradiť iba jednu farbu, viac nestihnete vypočítať. Gouraud alias vertex shading je obrovský krok vpred. Každý polygón /typicky trojuholník/ môže niesť až tri rôzne farby, s interpoláciou na celú plochu. A konečne Phong alias per pixel tieňovanie môže priradiť individuálnu farbu každému jednému pixelu na polygóne. Ak používame bežné 25-50 pixelové trojuholníky, tak je spotreba výkonu pri per-pixel maľovaní oproti Flat shadingu strašná. Raytracing je rovnako zavraždený množstvom jednotlivých trojuholníkov, oproti ktorým testuje intersekcie svetla a hmoty !! RT je dnes ešte na HW úrovni priliš pomalé a polygónov je priliš veľa a bude ešte viac. Zdanlivo patová situácia.

Riešením je teda niečo ako "optimalizačný" návrat od Phonga ku Gouraud až na Flat úroveň, ale v kvalite Phonga. Paradox. UE5 pod menom Lumen používá jeden ručný super optimalizovaný softvérový raytracer pre veľké vzdialenosti, ktorý voxelizuje vzdialený priestor. Nerátame teda s jednotlivými trojuholníky ale hernú geometriu dáme do väčších blokov /ako ten Flat shading/, teda nižšia presnosť RT. Nevadí to, lebo ide o vzdialenú geometriu napríklad nad 1 kilometer. Stredná vzdialenosť to rieši ako proxy mesh prezentáciu cez SDF funkciu /ako Gouraud/. Strašná to definícia, ale nie je to nič ťažké. SDF je signed distance field technika ala Dreams engine na PS4 /objekt nemá súradnice v priestore v karteziáne ale je definovaný skôr vzdialenosťou svojho povrchu od iných referenčných bodov, získate zároveň "zadarmo" primárny tracing/. Namiesto bežného poly meshu sa urobí jeho hrubšia SDF proxy podoba a oproti nej beží ten druhý softvérový raytracer. A nakoniec najmenšie detaily, najbližšie k hráčovi rieši screen space postup. Ak teda Epic na dev stránke upozorňuje, že Lumen nasvetľovací engine môže mať problém s malými, tenkými objektami, je tomu tak preto, lebo hlavný raytracer číslo 1 a 2 pracujú so silne zjednodušenou, hrubšou verziou geometrie a ňou vypočítané svetlo môže míňať v priestore tu skutočnú "tenšiu" geometriu. Získavame rýchlosť na úkor presnosti RT. Problém s drobnými detailami, ktorý som už spomenul vyššie ešte čaká na lepší shader kód.

UE5 je teda evolučne revolučný v tom, že integruje do svojej grafickej paradigmy nové spracovanie geometrie s explozívným nárastom komplexnosti scény. Je navyše primárne ladený pre streaming dát z adekvátne rýchleho SSD a snaží sa šetriť dostupnú RAM. UE5 berie ohľad na konzoly. A za druhé prináša nové hybridné riešenie nasvietenia použitím softvérového raytracingu a softvérovej rasterizácie /je možné použiť aj HW cestu, ak je táto v danej situácii rýchlejšia/. Skutočne ojedinelý, špičkový, výkonný grafický engine pre PS5 bude stáť a padať na veľmi talentovaných kóderoch. Oveľa viac ako na PS4ke, ktorá išla viac na autopilota. Rovnako ako na PS2ke, kde to takto nešlo. Naprogramovanie kompletne vlastnej renderpipelajny dnes zvládne menej ľudí ako v 1991. Je to ideovo to isté, ako v časoch Wolfensteina a Quake ale objemom dát nezrovnateľne väčšie. Wolfstein nerieši nejaké tiene, fyzikálne korektné svetlo na materiáloch, skinované objekty alebo fresnel transparencie. Pointou vlastnej renderpipelajny je dostať GPU o niekoľko tried nad jej papierový výkon. Epic je veľká a skúsená firma. Machri z DICE pripravia niečo podobné a obidvaja sa pozerajú smerom ku oveľa menším ukrajincom z 4A Games /Metro IP/, ktorí už bodujú hláškami, že rasterizácia v ich hrách viac nemá čo hladať. Očakávam veľký súboj kóderov na poli HW, hybridných alebo čiste softvérových nových renderovacích postupov. Ide o prestíž. PS4 mala dvojicu podobných pokusov - The Tomorrow Children /voxelizovaný softvérový raytracing/ a Dreams /SDF renderer/. UE5 nie náhodou obe postupy teraz kombinuje na jednom mieste. Na PS5ke toho bude ešte oveľa viac a v oveľa väčších hrách.

 

V rovnakom čase ako to odpálil UE5 zároveň spúšťam aj desaťročný plán ku prvej pravej next gen hre. Pravá next gen hra je v úplnom antagonizme k tomu, čo hrajeme už pomaly 50 rokov od prvej Pong videohry. Bež, skoč, zober, zabi. Statické prostredie, žiadna fyzika, tupá AI. Herný oblúk vyčerpá veterán ako ja do piatich minút. UE5 je začiatok. Celé middleware má pred sebou ešte roky práce. Nanite aj Lumen sú v štádiu polotovaru. UE5 však získa schopnosť absorbovať asety vo filmovej kvalite v terabajtových objemoch, novú fyziku, novú AI. Prechod z hybridnej "hack" RT/rasterizácie na plný, čistý raytracing. Príde dostatočný výkon na strane HW /CPU, GPU, RAM, SSD/ už v ďalšej generácií konzol. Príde aj kapitál a talenty. Presne o cca 10 rokov tu bude prvá hra s next gen gameplay. Ešte len potom vylezie gamebiz z plienok. V podobnej "pravej next gen" hre bude aj hádzanie kamienkom zábava na celé dni, lebo tak vďačne a dnes nepredstaviteľne interaktívne ten herný svet bude na vás a dokonca na vlastné prejavy spätnej väzby reagovať.

22/05/21

Mega Drive! Really?

 V 90. letech, jsa odkojen na hracích automatech, jsem bezostyšně obdivoval tento 16-bitový zázrak od Segy, který se prodával za pro mě nedostižné peníze všude možně po elektrech a hračkářstvích. Na vstupních dveřích obchodu se zdviženým ukazovákem významně pomrkávající Sonic lákající hráče vstoupit. Pestrými barvami hýřící mnohavrstvá 60 fps akce, o jaké se mému ZX Spectru byť i C-64 sotva jen zdálo. Segu Mega Drive jsem si pořídil až v novém tisíciletí z bazaru. A musím přiznat, po dlouhých letech do dnešních dní postupně vystřízlivěl.

Začněme ale od začátku. Mega Drive je tak nějak ušit na konkrétní typ videoher. Zvládá je víceméně průměrně až na výbornou, jak co. Jeho hlavní procesor se v tomto modelovém případu víceméně fláká, grafická karta se potí. V pořádku? No, ani ne. Po letech jsem dospěl k názoru, že systém na hry má být navržen co nejefektivněji a zároveň co nejflexibilněji. To Mega Drive určitě není. Má v hardwaru natvrdo zadrátován jeden model videohry. Jeho čipy tedy disponují výkonem, který ale není všeobecně využitelný – špatně. Dvě dvojrozměrné vrstvy a sprajty. Vše složeno ze znaků – z textového módu chcete-li. Pokud tedy chcete programovat cokoliv, co se jakkoliv začne vymykat zmíněnému scénáři, nastává problém. To se týká především trojrozměrných her, které vyžadují namísto znaků jednotlivé pixely, tedy bitmapu.

Ovšem i u dvojrozměrných her se ptám: co když budu chtít namísto druhé vrsty zobrazit více sprajtů? Co když budu chtít vykreslit jednotlivé pixely namísto celých znaků?


Předně si uvedeme výčet kladných stránek této konzole:

    • dedikovaný grafický procesor – CPU nemusí generovat grafiku a zůstává volné pro jiné výpočty

    • 2 nezávislá skrolující pozadí a k tomu sprajty – poměrně silný základ pro pokročilejší 2D hry

    • CPU může přistupovat do video paměti, i když omezeně – např. Neo Geo neumožňuje CPU vůbec přístup a tím pomocí něj není možné generovat např. 3D grafiku


A nyní nedobré stránky konzole:

    • příliš mnoho komponent a k tomu ne ideálně zapojených – vše kvůli nepotřebné zpětné kompatibilitě s Master System

    • pouze 320/256 pixelů na řádek pro sprajty – při zaplnění této kapacity dochází k viditelným výpadkům vykreslování sprajtů – problém zejména u bojových her s velkými postavami a intenzivních stříleček – problém korektně portovat např. hry z CPS či Neo Geo, ale i Sega16!

    • omezená propustnost do video paměti – Virtua Racing jede kvůli tomu jen na 15 fps, přestože 3D koprocesor v kazetě zvládne mnohem více

    • omezené použití barevné palety na 15 barev po 4 podpaletách

    • neoptimální zapojení Z80 ve vztahu k hardwarovému přerušení hlavního CPU – nemožnost napsat kód Z80 pro 100% korektní softwarové přehrávání digitalizovaného zvuku

    • absence dedikovaného ADPCM čipu pro přehrávání digitalizovaného zvuku – souvisí s výše uvedeným bodem


Jak vidíte, je co zlepšovat. Především si myslím, že Sega udělala jednu zásadní chybu. Mega Drive neměl být zpětně kompatibilní s Master System. Nebyl k tomu objektivní důvod, protože MS neměl významnou penetraci na trhu. Než osazovat systém dalším procesorem Z80 a integrovat zvukové SN, bylo vhodnější investovat do ADPCM čipu. Mega Drive má totiž velké problémy s přehráváním digitalizovaných zvuků, a to z důvodu, že pro jejich přehrávání je nutno napsat kód, který ale vyžaduje velký procesorový čas. Jenomže sekundární Z80 není synchronizována žádným přerušením s chodem hlavního CPU a je tudíž vlastně nemožné korektně načasovat digitální přehrávání. Navíc pokud Z80 přistupuje k digitalizovaným zvukům v ROM, významně omezuje hlavnímu CPU přístup do video paměti. Samozřejmě tyto operace můžete provádět hlavním CPU – 68000, oberete se ale o část jeho strojového času a hlavně: na co je tam potom Z80? Zkrátka totálně nedoladěné, nepromyšlené zapojení. Sega měla zkrátka použít pouze jedno CPU (Motorolu 68000) a jeden zvukový čip (vhodnou verzi Yamahy s integrovaným ADPCM, anebo stávající 2612 a dedikované ADPCM jako např. OKI MSM6295). Jako praktickou demonstraci zprzněného návrhu přehrávání digitalizovaného audia budiž ukázka ze hry Street Fighter II a následně její nadšenecký "patch" z doby nedávno minulé. Jen podotýkám, že samply v ROM jsou 100% kvalitní a przněné jsou až samotnou konzolí při běhu hry…



 

Dalším omezením je limit 320 nebo 256 pixelů na řádek pro sprajty. 320 platí pro video mód 320x224, 256 pro 256x224. Je mi jasné, že je to dáno limity propustnosti použitých pamětí a rychlostí grafického čipu. Tento totiž dopředu obrazový řádek po řádku vyhledává a načítá z video paměti grafická data pro sprajty a míchá je s pozadími – Mega Drive nemá obrazovku uloženou ve formě bitmapy – frame buffer kvůli malé kapacitě video RAM vzhledem ke komplexnosti obrazu. Nicméně určitě stálo za to se nad tím zamyslet vícekrát a pokud možno zvýšit tento strop alespoň na hodnotu 500 pixelů pro 320x224. Vždyť už v roce 1989 vypustil NEC své SupergrafX, které právě hodnotou 500 pixelů na řádek oplývá! Já bych osobně hledal i zvýšení tohoto limitu v možnosti vypustit generování druhé skrolovací roviny a ušetřený čas a propustnost přemístnil do zvýšení limitu pro sprajty – např. by to mohlo být volitelné programem…

Problémy s tímto tzv. přetečením sprajtů (sprite overflow) jsou vidět typicky v bojových hrách s velkými postavami, např. Final Fight pro Sega CD převedeném z Capcom CPS. Často vidíte, jak mizejí celé řádky uprostřed bojovníků jako by je někdo rozpůlil pilkou. Patrné je to taky u intenzivních stříleček jako je Raiden Trad nebo Truxton při upgradu zbraní. Nebo např. Vectorman, který v mnoha úrovních používá sprajty jako další pozadí, ale často toto pozadí při větším počtu objektů částečně mizí.

Pro útěchu Mega Drivu těmito neduhy trpí i TurbografX a SNES. SNES má sice o něco větší limit, než je šířka obrazu (272 na 256x224), ale zato nemá tak flexibilní možnost velikostí sprajtů a k výpadkům renderování v praxi ve hrách zde dochází ještě častěji. Ono totiž pro všechny tyto konzole platí, že do limitu se započítávají i „vypnuté“ pixely, které jsou vždy součástí sprajtů, pokud nechceme zobrazovat jen celé čtvercové bloky o minimální velikosti 8x8 pixelů.

Na závěr dodávám, že je mi jasné, že Sega chtěla zajistit lehkou portovatelnost ze svých automatů, zejména Sega16A (Shinobi, Golden Axe…). Nicméně šetřit a redukovat se mělo na těch nejsprávnějších místech a architektura měla zůstat 100% vybalancovaná a nabízet co největší flexibilitu v renderování. To se tak nějak na 100% určitě nepodařilo.

12/05/21

Rozprávka bez emócie

Grafika na bokoch starých arcade kabinetov už z diaľky sľubovala bombastický zážitok. Fantázia pracuje na plné obrátky. Predstavujete si ako v kokpite vesmírnej stíhačky uhýbate laserom a a celý svet mizne v pestrofarebných plameňoch. Herná realita bola pár pixelový sprajt čo behal zľava doprava alebo hore a dole a mazal streľbou z obrazovky enemákov s dvojfrejmovou animáciou. Únik zo šedivej reality do hernej fantázie. SONY to pred rokmi eufemisticky nazvalo presunom do "the third place". Jednotka je asi práca, dvojka domov-rodina. V medicíne tomu hovoríme okrem iného aj regresia alebo schizoidný únik z reality do vysnívaneho alternatívneho sveta. Denné snenie. Je to viacmenej nebezpečná vec, ktorá signalizuje pri istej kvalite/kvantite veľké problémy daného jedinca.

Isekai. Je japonský, kultúrny terminus technicus pre túto situáciau. Predstavte si, že ste nezamestnaný, obézny, impotentný 30 ročný panic, čo stále žije u rodičov. Hráč "počitačových" hier, otaku, nesocializovateľná zrúcanina a povaľač, depresívny, šikanovaný, nadržaný a frustrovaný. Jedného dňa vás po smrti rodičov z toho domu konečne vyhodia a na prechode cez chodcov vás zrazí a zabije Avia Furgon. Tma, svetlo a zrazu zistíte, že ste v tele narodeného dieťata /stále s mozgom dospelého !!/ v nešpecifikovanom fantasy svete. Dostali ste novú šancu a začína obrovské dobrodružstvo. Meč, mágia, hrdina dňa, sex, hárem. Manga a anime - Mushoku Tensei: Isekai Ittara Honki Dasu. Klasika tohto žánru alebo Kono Subarashii Sekai ni Shukufuku wo! alias Konosuba. Super zábavná paródia na všetky Isekai klišé. Tiež si usiera z WRPG a MMO vo všeobecnosti.

 
hrateľnosť, zábava, vtip !!

Lady Dimitrescu /a jej tri dcéry/. Ceckatá, prdelatá vampírka vysoká cez tri metre z hry Resident Evil 8, z ktorej internet úplne šalel. Virálna infekcia. Internet = Incel zúfalci a všetky typy panicov, sociopatov a kandidátov na Isekai fantasy. Z herného/scenáristického hľadiska tu boli veľké očakávania, kde nás tieto osoby zavedú. Ako bude vyzerať dramatický a herný oblúk. Je to bohužiaľ presne to isté, ako keď ste ako 8 ročný čumel na tu art grafiku na bedniach v arkáde herniach. Ten istý podvod.

Resident Evil 8 je bežná koridorová FPS strielačka s neexistujúcou AI bubákov. Avatar neprelieza prekážky, ak by to vedel, tak to hru skráti okamžite na jednu tretinu. Lady Dimitrescu sa dejom iba mihne, neťahá dramatický oblúk celou hrou, jej zabitím to proste končí. Herne je to sypanie olova do palice. Rovnaká sranda ako v Space Invaders. Prostredie je neinteraktívne, herné mechanizmy archaické a dcérušky vybavíte jednou ranou z brokovnice guľkou upravenou zmesou cesnaku a striebra. Boom, boom a boom a je to. Wolfenstein úroveň zábavy.

Nemám problém s tým, že Capcom využil pudové správanie lúzy na lacnú a účinnú reklamu pre svoju hru. Urobili to šikovne. Bach alebo Beethoven /určite on/ však povedal, že vôbec nevadí, keď zahrajete nejakú notu zle ale je neodpustiteľné, ak hrajete bez vášne. Resident 8 je odporná vecička, ktorá ide na cynický autopilot. Kladiete si otázku, ako by sa hrateľnosť zmenila, ak by avatar dostal možnosť traverzovať prostredím ako bežná vzorka človeka so zdravými rukami a nohami ? Alebo keby bolo prostredie konečne interaktívne a zasahovalo do hrateľnosti /už nebudem po ikstý krát rozpisovať čo to znamená/. Dokážete si predstaviť boják, kde nemusíte od prvej do poslednej sekundy upižlať každú nemŕtvu dušu v hre nekonečným stereotypným strieľanim ? Čo príšerný dizajn boss súbojov !! Ono to strelí, ja sa uhnem, ja strelím, ono sa to uhne. Trápnosť. Capcom si našiel svoj nenáročné, pubertou zastydlé stádo. Resi 8 je FPS remake TPS Resi 4. Čakanie na skutočné dobré hry pokračuje. Dobré = nová hrateľnosť. Nová = nie ďalší Space Invaders a nekonečné variácie na Wolftensteina. Resi 8 je karmické peklo. Isekai, kde sa v novom živote ocitnete opäť v tom prekliatom starom.