14/11/21

David Crane, Pitfall a 4K

 V roce 1982, kdy se do popředí začínaly tlačit osmibitové počítače vybavené desítkami kilobajtů paměti, zde stále bylo staré dobré Atari 2600 s jeho 128 bajty RAM v I/O čipu a až (!) 4 kilobajty ROM v cartridge. Jedna z nejprestižnějších firem vydávající hry pro tuto konzoli – americká Activision, rozhodla zrealizovat koncept „běžícího muže“ jednoho z jejích nejtalentovanějších programátorů, a zároveň spoluzakladatele, Davida Crane. Hra Pitfall fascinovala na tehdejší poměry obrovským světem džungle, který se skládal z 255 místností. To vše na holém Atari VCS a standardní 4 kB cartridge. Pojďme se nyní podívat, jak to filuta David dokázal.

Jedinou možností, jak reprezentovat rozsáhlý svět na tak limitovaném hardware, bylo neukládat jej celý do paměti, ale naživo vytvářet kódem v průběhu hry. Dnes bychom toto asi nazvali procedurálním generováním (procedural generation). David Crane jakožto všichni programátoři Atari 2600 byl navyklý na velké limity konzole a trénovaný ždímat veškerý potenciál za hranice představivosti. Každý bajt paměti měl cenu zlata a nepřicházelo do úvahy jakékoliv plýtvání s jakýmkoliv bitem.

Pitfall jako hra se odehrává pouze v horizontální perspektivě a je možno jít oběma směry. Crane se rozhodl, že každá obrazovka bude reprezentována jako jedno osmibitové číslo, tedy bajt. Jeden a tentýž bajt v paměti, který popisuje, co se nám vykreslí za scénu. Bajt může z principu jakožto jednotka vždy nabývat hodnot od 0 do 255 a každé toto decimální číslo je reprezentováno jako kolekce 8 bitů. Bity nejsou nic jiného než elementární jednotky počítačové paměti, které odpovídají stavu elektrického signálu 0 = vypnuto, 1 = zapnuto. Bajt velikosti 0 bude mít kolekci osmi nulových bitů. Bajt s hodnotou 255 kolekci osmi bitů s hodnotou 1.


Crane vylaboroval vlastní rutinu, která stručně řečeno generuje pevně danou sekvenci 255 hodnot s hodnotami 196, 137, 18, 37, 75 atd. Při pohybu místnostmi doprava posune bity v našem „obrazovkovém“ bajtu doleva, a navíc na bitech 3, 4, 5 a 7 s výstupem do bitu 0 provede tzv. XOR neboli exkluzivní OR, což je v podstatě operace kdy dvě stejné hodnoty vždy končí výstupem 0, různé hodnoty pak jedničkou. Tento algoritmus navíc vytvoří každou kombinaci 8 bitů s výjimkou všech nul – proto 255 místností protože vypadává možnost s hodnotou 0. Základ úspěchu byla však rutina druhá, která se použije pro pohyb doleva. Tato v podstatě provádí přesný opak té první a bity jsou naopak posunuty doprava, resp. se navrací na hodnotu jaká by byla na pozici předešlé – nezapomínejme, že se neprovádí jen posun bitů ale i XOR operace jejíž výsledek plní bit 0. Tím je zajištěno to nejdůležitější: že jsme vždy schopni v obou směrech jít po stejné posloupnosti hodnot, a tedy náš svět je napevno definován. Tedy, téměř. Jinde v kódu je ošetřeno, kde se má např. zobrazit zeď, a samozřejmě je také v paměti nutné definovat samotné objekty, které se budou zobrazovat.


Jak už jsme si uvedli, hra používá jeden bajt, jehož hodnota rozhoduje o tom, co se v dané místnosti zobrazí. Zde vidíme na schématu rozdělení bajtu na 3 resp. 4 sekce: bity 0-2 určují, jaké objekty mohou být zobrazeny, bity 3-5 pak rozhodnou o tom, jaký typ jámy a překážky bude stát hrdinovi v cestě, bity 6-7 slouží pro výběr pozadí se stromy a bit 7 navíc zda bude případná zeď zobrazena vlevo či vpravo.


Suma sumárum je spotřeba tohoto geniálního postupu paměťově tak nízká, že se hra s 255 místnostmi vlezla do pouhé 4 kB cartridge, bez potřeby bank switchingu. Otázkou zůstává, jak zábavná je hra, která možná až příliš striktně drží všechny objekty na stejném místě, kde by možná neškodilo trochu více náhodné volby. Buď jak buď, Pitfall byl revoluční a jeho následovník Pitfall II Lost Caverns, již s využitím bank switchingu, přinesl násobně rozmanitější svět.


A teď si představte, že máte k dispozici počítač s 65 536 bajty, anebo 67 108 864, anebo… no raději stop. Možná nebudu daleko od pravdy, když pronesu, že dnešní hry jako No Man’s Sky více či méně používají podobnou filozofii jak dostat do omezeného paměťového prostoru neomezené světy. Jak neomezené nebo naopak omezené jsou, samozřejmě záleží na představě programátorů a celkové implementaci. Myslím si, že v budoucnu bude význam procedurálního generování nadále stoupat, aby tak nahradil neúměrně vysoké nároky na lidskou sílu při tvorbě nejen herních světů.


Odkazy:

06/11/21

Čína - herná, svetová jednotka

Genshim Impact podporuje crossplay medzi PC, PS4 a mobilmi. Číňan sa s tým nehraje, spája hráčov a chce svoje miliardy. Hra firmy miHoYo zarobila v prvom roku svojej existencie niečo okolo 2.3-3.5+ miliardy USD a odsunula za seba Fortnite, respektíve GTA5. Svetový rekord. Doteraz dali na trh iba bezvýznamne blbosti a hlavne pre ázijske trhy. Genshim Impact je ich prvá skutočne veľká vec s globálnym dosahom a okamžite z nich urobilo doživotných boháčov. Vývojársky tím mal na konci vývoja hry asi 400 ľudí, budget bol okolo 100 mega a beží to na Unity engine. Tajomstvo úspechu sa rozhodne neskrýva v ukrutne veľkých kvalitách hry. Zjavne stačí, ak to urobíte dostatočne správne a na všetky herné platformy na svete /PC, konzoly, mobily/. A okopírujete Zeldu, hlavne vizuálne.

 

Elementálové akčné RPG s anime strihom v peknučkom, otvorenom svete, kde vyleziete na každú horu, prebrodíte každú rieku. Bežiaci denný cyklus alebo zmena počasia je samozrejmosť. Traverzovanie plachtením. Oblaky letia po nebesách a ich tiene sa plazia po krajine. Hraje Londýnsky, Tokijský a Šanghajský filharmonický orchester. Svet môžte objavovať spolu s kamošmi /4x coop/ a vaše elementálové kombá /pyro+electro=mega boom/ budú decimovať enemákov. Akákoľvek kravina od SONY leží porazená herne, morálne v prachu. Len odškrtnutie všetkých políčok na zozname vám tie prachy, ale nezarobí.

Gacha systém je to tajomstvo. Po našom loot boxy a mikrotransakcie. Proste je v hre aj možnosť utratiť skutočné peniaze za more ďalších blbostí /postavy, diamanty, vlastnú internú hernú menu, zbrane, skiny, manu, exp, úplne čokoľvek/. Pozrite sa sa pre malého mám naištalovaný Android emulátor a doslova každá hra je tam utopená v mikrotransakciách, majú to rutinérsky premakané, už ich ani nevnímam, je to ako reklama na youtube. Ak však vyrobíte hru, ktorá je pekná a hrateľná a smeruje na 100 miliónov konzol, stovky milíonov PC, možno miliardu mobilov. A z každého cez gacha vytiahnete 1 euro na pár centových gacha blbostiach /skôr od 1.49 po 14.99 euro, stávka na gamblerstvo hráčov/, tak ste na konci roka bohatší ako Bill Gates. Teraz už rozumiete čo myslím pod návodom urobiť hru "dostatočne správne" a pre všetkých. SONY alebo Nintendo pri svojej zaprdenej malomeštiackej rigidite, pomalosti a zastaralosti, ktoré roky kritizujem, asi ani teraz nevedia koľká bije. Sladko spinkajú a raz ich kúpi firma zo šanghaja s pevnou väzbou na Čínsku komunistickú stranu. Kto má kapitál, má moc. Ázia česť práci !

01/11/21

Keď dvaja robia úplne to isté, len druhý za menej peňazí

Štylizovaná grafika ako na tom obrázku nižšie. Niečo také už v AAA alebo AAAA hre so skutočne veľkým budgetom tak skoro neuvidíte /večne pastelkové "blood free" Nintendo ignorujte/. Vývojárom vo všeobecnosti by pritom veľmi vyhovalo práve niečo tak technicky jednoduchšie, lacnejšie. Ľud si však žiada fotorealizmus a drahé asety. Je to vcelku problém. Kvalitná grafika potrebuje aj kvalitnú animáciu a audio. Fotorealizmus priťahuje živých hercov s veľkými finančnými nákladmi. Je to kapitálová pasca vedúca k nesmiernému nafukovaniu rozpočtu, ktorý si môže dovoliť iba málokto. Zároveň to znamená aj zvýšené riziko, veľkú hru na istotu za čo tie peniaze vlastne dám. Opatrnosť, zaprdnenosť, stagnácia, malá variabilita. Nekonečne dlhá doba vývoja hry, ktorá dokáže preskočiť aj celú jednu generáciu konzol. Gamebiz sa s tým nakoniec nejako vyrovná, malá kríza, to prechodové obdobie môže trvať aj viac ako 10 rokov a práve sa v ňom nachádzame. Zároveň táto situácia implikuje, že AA hry si môžu dovoliť viac slobody, invencie, revolúcie a zjednodušená grafika tam nevadí skoro nikomu. 

Little Devil Inside - je typický adept kategógie AA v kvalite AAA hry, nech už to znamená čokoľvek. Ide o steampunkové akčné RPG s ľahkými survival prvkami /ľahké = neotravujúce/. Chytanie rýb, varenie a podľa mňa zbytočné a pomalé poskakovanie po world mape. Ak sa chystáte na misiu do trópov alebo do bažiny je vhodné k tomu prispôsobiť svoje vybavenie, aby ste neboli handikepovaný. Upgrade transportných vehiklov. Spomína sa aj nejaká lokálna kooperácia alebo nahodné narážanie na iných hráčov. Asi nejaký asymetrický mulťák v štýle Souls hier. Tempo hry, dynamika, fun faktor, kvalita bojáku /udri a uhni, eh !!/  sa z videia ťažko odhaduje. Zázraky nečakám. Čo však zreteľne vidím je štylizovaná cartoon grafika. Lacnejšia na výrobu a flexibilnejšia ku herne revolučným veciam. Hurá.

Little Devil Inside - iba ďalšia PS2 hra z rýchlovarnej kanvice

Očakávam teda, že v hre na kopci v zime spustím údolím nabaľajúcu sa snehovú guľu a tá po ceste "pozbiera" enemákov. Alebo buchnem mečom po vianočnej jedličke a padajúci sneh zo stromu urobí to isté. Alebo ďalšiu stovku vecí viazanú na špecifické prostredie, ktoré tu môžem všetky vymenovať, ale už to robiť nebudem, lebo ide vždy iba o moje akademické cvičenie, ktoré je každému a zvlášť herným vývojárom ukradnuté. Little Devil Inside je teda očarujúca viktoriánska adventúrka, dobrodružstvo, ktorá robí herne presne to isté čo AAAA/AAAA mainstream len oveľa lacnejšie. Nič viac, stále herne tá istá PS2 hra. Čo nás dostane nazad ku nintendu, ktoré praktizuje práve tento "lacný" vychcaný, vývojarský biznis model a drahé asety do hier im nerobi 3000 indov v povodí Gangy. "Nová-next" hrateľnosť nad rámec toho čo zvládne PS1-PS2 je stále tabu aj pre "slobodný" AA segment.