16. 2. 2013

Wolfenstein - low end


PC hra od ID softu, ktorá oficiálne odštartovala v roku 1992 to dnešFPS /first person shooter/ šialenstvo. Stojí za pripomenutie, že wolfenstein 3D renderer /predchádzalo ho ďalšia 3D hra od ID softu - Catacomb 3D v 1991/ sa mocne inšpirovala enginom hry Ultima Underworld: The Stygian Abyss /video/. Carmack skutočne nebol tým prvým čo v neskoršom DOOM 1 otextúroval všetky steny a herný priestor sa už neskladal iba zo štvorcových miestností a chodieb. Dokonca neurobil ani prvého 3D shootera ako nám ukázalo Speccy v 1984 /video/, aj keď sa dá isť ešte hlbšie do minulosti. Wolfik 3D je však tu a s ním hlučná hystéria, keď sa aj ostatné non-PC platformy snažili naskočiť na "teh future" vlak a zviezť sa na vlne otexturovaných tunelov.


Už som tu písal o snahe 16 bitovej amige, s architektúrou dosť nevhodnou pre podobné hry, zvládnuť Wolf/DOOM engine. Dokonca aj o hernej konzole SNES, podobne ako amiga išlo o dobre vyladenú raketu pre 2D operácie, ale Wolfika rozbehala obdivuhodne hravo. Pri DOOM 1 si pomohli  malým "podvodom" s prídavným hardvérom v kátridži - problém vyriešený. Pridalo sa aj Atari ST s hrou Substation /1995/. Pochopiteľne neostal pozadu  ani Megadrive - Zero Tolerance /1994/ a Toy Story /1996/. Tých ďalších príkladov tu môžem uviesť ešte veľmi veľa. Každé 16 bitové herné zariadenie si proste chcelo dokázať, že "na to má". A ako uvidíte, darilo sa im to veľmi slušne.

Názov článku však hovorí o low end mašinách. V našom prípade o smiešne výkonných 8 bitoch /Speccy, C64, Atari Xl a spol./, ktoré proste "nemajú nárok" na podobne náročné grafické operácie. Či predsa ? V čase, keď sa tu Wolf 3D dovalil, už bola oficiálna podpora pre všetky osembity dávno ukončená /okolo roku 1987-1989/. Ťarcha vyriešenia tohto problému teda ostala na pleciach demokóderov, ako totiž vieme - democéna nikdy nezomrie. Grafické demátka pre 8 bity sa teda po úvodných rozpakoch vrhli čelom na zdolanie tejto hory. Výsledky sa dostavili - wow, doprdele, to snáď nie, nemožné !! Má to iba jeden háčik. Ide viacmenej /vlastne úplne/ o akési predpočítane animácie a využitie množstva programátorských skratiek. Napríklad tá "doprdele" ukážka na spektre fičí na 50 fps. Pokúsil som sa teda pozbierať a ukazať vám niektoré 8 bitové wolfenstein hry pokiaľ možno bežiace v reálnom čase. Hra = voľný pohyb ovládaný hráčom, nejaká AI, trochu hudby. Sledujte, je to úplne zázračné.

-----------------------------------------------
 
Apple II /1977/: 8 bit CPU - MOS 6502  na 1.0Mhz, GPU - Motorola 6845 v rozlíšení 280x192 v 4 farbách alebo low res "text mode" 40x48 v 16 farbách. RAM - 4 až 48KB, Audio - 1 kanálový speaker.
 - Homebrew 3D engine /video/ od Dschmenk beží v lowres "text móde" 40x48 pixelov, nízka presnosť pre urýchlenie renderingu, sem tam sa tam objaví nejaký artefakt.
 
Commodore VIC-20 /1980/ : 8 bit CPU - MOS 6502A na 1.0Mhz, GPU - VIC 1 v rozlíšení 176x184 pixelov, maximálne 16 farieb, RAM - 5KB v našom prípade s 32KB expanziou, Audio - 3+1 kanál.
- Homebrew 3D engine od Steve McCrea v dvoch verziách. Pre VIC-20 s 5KB /video/ a 32KB RAM /video/. Druhé video už obsahuje aj hernú logiku, AI, zvuky, HUD a na rýchlosti sa ešte pracuje. Každopádne skvelý výsledok s tak slabučkým CPU.

ZX Spectrum 48K /1982/: 8 bit CPU - Zilog Z80A 3.5Mhz, GPU - ULA v rozlíšení 256x192 maximálne 16 farieb. RAM - 48KB, Audio - 1 bit speeker alebo 3+1 AY čip.
- Homebrew 3D engine od geniálneho ruského progiša nick Alone Coder /video/ - ide o kompletné SDK pre vývoj jednoduchých 3D na "wolf engine". Po zmene "násobiča" to na 7Mhz behá ako svišť /video/.
- ešte raz Alone Coder a výnimočný počin - technicky dokonalá konverzia nielen Wolf enginu ale samotnej masívne veľkej hry pre ZX Spectrum 128 /video/ a lepšie - napr. Speccy Pentagon na 7Mhz /video/.

Commodore 64 /1982/: 8 bit CPU MOS 6510 na 1Mhz, GPU - VIC II do rozlíšenia 320x200 v 16 farbách. RAM - 64KB, Audio - čip SID, 3 kanály.
- Homebrew 3D engine od demoskupiny Oxyron /video/ beži v low res "text móde" 40x25 pixelov.
 
Amstrad CPC 64 /1984/: 8 bit CPU - Zilog Z80A na 4Mhz, GPU Motorola 6845 + CRTC v rozlíšení do 640x200, maximálne 16 farieb, RAM - 64KB. Audio  - AY čip 3+1 kanál.
- Homebrew 3D engine od Richarda Wilsona /video/, maximálna draw distance, perspektívna korekcia, pekne textúry, full screen. Iný pokus od demokoderov z Dirty Minds /video/.

Atari 800XE /1985/: 8 bit CPU MOS 6502B na 1.8Mhz, GPU - ANTIC + GTIA do rozlíšenia 320x192, maximálne do 128 farieb. RAM 64 KB. Audio - čip Pokey, 4 kanály.
- Homebrew 3D engine bezprecedentnej kvality od Nelson "NRV" Ramireza /video/.

COCO 3 aka Color Computer 3 aka TRS-80 CC3 /1986/: 8/16 bit CPU - veľmi výkonná Motorola 6809E na 1.79 Mhz, GPU - VDG MC6847 do rozlíšenia 640x192 v 16 farbách z palety 64. RAM - 128KB s možnou expanziou na 512KB, Audio - 1 bit DAC pod CPU kontrolou /soft. syntéza, bez dedikovaného audio čipu, počet zvukových kanálov 4-8 a kvalita závisela od voľných CPU cyklov/.
- Homebrew 3D engine v hre Gate Crasher /video/ od Nickolas Marentes. Iné tech demo autor nick RemTube /video/ aj s textúrami, perspektívnou korekciou, mipmappingom alebo bez textúr /video/.

 -----------------------------------------------

Napísal som tento článok s trochu iným zámerom, než by sa na prvý pohľad mohlo zdať. Iste - je to taká pyšná ukážka skrytého potenciálu prišerne starých mašín a zároveň veľká pochvala  geniality programátorov. Dokázali niečo o čom sa inžinierom projektujúcim tie stroje ani len nesnívalo. Akákoľvek z tých ukážok vyššie by v rokoch ich najväčšej slávy /1982-1987/ vzbudila bezhraničný úžas. Vlastne by ich podozrievali zo šarlatánstva a čiernej mágie.

V skutočnosti som však celým týmto textom chcel napľuť od oči nulám ako Carmack /ID soft/ alebo Yerli /Crytek/, ktorý sa celé roky pohŕdavo vysmievali z next gen konzol dosluhujúcej generácie. Ich parametre im nepripadali pre ich hry dosť dobré. CELL v PS3 je asi 100 000 000 krát výkonnejšie ako CPU ZX Spectra. Na technicky slušnú FPS hru na ID tech alebo Cryengine to však zjavne nestačí. Pre mňa je to banda falošných prorokov. A v predvečer príchodu PS4 teda ešte raz volám na slávu legendárnych 8 bitových strojov a skutočne vynikajúcich programátorov, ktorí "nemožné" urobia do 3 dni zadarmo a vo voľnom čase. Retru nazdar.