4. 11. 2013

Codemaster/s/


Hodiny počítačovej výchovy u nás prebiehali následovne. Nabehli sme do učebne, sadli za intel inside pentia a mastili Qvák 3 arénu až do bieleho ráno. Robím si srandu. Bolo to v hlbokom socializme, žiadne počítače sme nemali, až ich konečne komunista v roku 1985 vyrobil - boli to 8 bitové šunky bez hier /PMD 85, IQ151, Maťo, Didaktik Alfa, PP 01/. Neskôr prišli aj tie, simplexné ale vysoko hrateľné záležitosti, avšak bez skrolingu a farieb, celá akcia na jednej obrazovke. Chceli sme viac a lepšie, takže sa začala tvorba vlastných hier. Ghetto. Ja som bol horlivý návštevník arkade herní, kamoši naťahali z nemecka herné časáky, začali sme makať na porte Pole position /Atari 2600/ pre PP-01. Super mašina: rozlíšenie grafiky 256x256 piksľov, 8 farieb, HW skrolovanie, zvuk citeľne lepší ako PC beeper, hafo ram.

PP-01 beží v nepomerne vyššom rozlíšení ako Atari 2600, sprajty som teda nakreslil luxusne detailné. Hru sme programovali v basicu /boli sme deti na základnej škole, heh, 1. stupeň/. Hodili sme teda sprajt na plochu, CLEAR to zmazal, zmena pozície, nové vykreslenie, CLEAR a stále dokola. Formulka behala zo stranu na stranu ako divá, bohužial nie jemne pixeloch ale po znakoch /skákanie po 8 pixeloch, hranice atribútov, char animácia, čo sa jeden pri vývoji hry nenaučí/. A kurevsky to blikalo. Problém ? Vyriešený ! Sprajt vykreslíme /biely INK na BLACK pozadí/, potom ho na tom istom mieste vykreslíme ešte raz len použije čierny INK. Sprajt zmizne /nepoužijeme príkaz CLEAR/, posunieme pozíciu, vykreslíme, opakujeme. Formulka nebliká /len trochu narástla latencia, poriešime nabudúce/. Animácia cesty. Zbastlili sme sofistikovaný kod ala copper efekty na amige /to sme vtedy ešte netušili/. Cesta sa teda vykresľovala po riadkoch zhora, nadol a posunutie v riadku nám tu cestu ohýbalo. Zatáčka. Fungovalo to krásne ale šialene pomaly, tak do 2-5 fps. Basic je nanič.

Naštastie som hneď najlbižšie vianoce vyfasoval ZX spectrum a vývoj sa presunul tam. K mašine som dostal aj kopu uživateľského softu. HiSoft basic compiler. Mein Gott. Zrýchlenie o 250%. Tak som sa naučil o rozdieloch medzi vyššími a nižšími programovacími jazykmi, nie - C+ na spektre nebolo. Ďalším krokom bola dvojdielna príručka Assembler a ZX Spectrum. Vykresľovanie grafiky ďalších plus 500-800% oproti basicu. A potom bratia, potom prevládla závislosť od hrania. End of Line. Takto ma minula veľká a slávna kariéra ala Carmack alebo Gabe Nevell. Aspoň pasívne som však ďalej asm programovanie sledoval /hlavne na spektre/. Skoro som zistil, že aj rýchly asm kód sa dá ďalej o niekoľko tried zrýchliť a to až absurdne detailným per inštrukciu a takt ručným ladením, plus využitie všetkých aj nezdokumentovaných trikov hardvéru.

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

Úvod máme za sebou. Dnes sa už takto hry /takmer/ nerobia, kód hier je enormne komplikovaný, uprednostňuje sa produktivita /prehľadnosť, rýchlosť vychytávania chyb, komfortnosť modifikovania hry - pri čistom asm kóde na to zabudnite/ pred výkonosťou. Samozrejme, že sa kritické časti na PS2 aj PS3ke nahodili v asm jazyku ale keď sa spýtali progišov čo hovoria na PS4ku, tak toto bola prvá vec, na ktorú sa tešili, že ju pustia k vode. Hardvér samotný to samozrejme stále umožňuje. Herní vývojarskí machri /najdete ich v každom lepšom SONY dev tíme - ND, PD, SM, RAD a ďalši/ sa môžu dokonca hrabať aj v asemblery pre GPU a direct compute im umožnuje to GPU doslova znásilniť, to iste platí pre x86 Jaguar CPU. Ako som však povedal, je to pekelne prácne, časovo náročne a teda drahé. Sem tam to uvidíme, hlavne o pár rokov, keď sa spotrebuje hrubý, ľahko dostupný výkon konzol. Čo však ak vám ukážem hru, ktorá je programovaná celá presne tým starosvetským spôsobom, ako nejakými pošahancami na spektre - super low level ručný asm kód, vypiplaný z plienok ako jednorožec čo serie dúhové lentilky.



Chystaná hra pre 3Ds - Iron Fall na Bing Bang engine.Ak sa niekto spýta - čoho je vlastne to 3Ds naozaj schopné, tak toto video vám niečo "malé" predvedie. Chlapci z V.D.Dev a ich 100% asm kód na 60 fps v 3D / 2 x 400 x 240 pixelov/ aj 2D režime /800x240 pixelov/. Nasleduje hŕba ďalších parametrov, ktoré sú vám na dve veci, stačí keď vám poviem, že engine je to skutočne veľmi dobrý a tlačí 3Ds na jeho 110% maximum /polycount, particle, svetlá, alfa, manažment asetov, integrácia Bullet fyziky, vlastné ovládače pre grafickú kartu/. A to má dev tím iba 2 ľudí Fernando Velez a Guillaume Dubai. To sú tie písmena V a D v názve firmy. Tretí do partie Frederic Zimmer pribudol len nedávno. Nepochybne vám ani jedno meno nič nehovorí, hlavne Velez a Zimmer sú však unávané programotorské kapacity a veteráni čo zažili ešte 8 bitové časy a čiernobiely Gameboy pre ktorý aj robili hry. V asm kóde samozrejme. Ak sú tu medzi nami nejaký amigasti, tak vedzte, že úplne šialené 45 minutové amigácke demo Alcatraz to je náš Zimmer a amigácka hra Jim Power /a mnohé ďalšie/ je náš Velez. Tito chlapci proste dobre vedia ako sa programuje na čo najnižšej úrovni /Zimmer makal aj na odloženej multiplat hre Watch Dogs/.

Prečo však na tomto blogu píšem o nejakom nintendo, nuž dev tím má svojej stránke aj logo Playstation Vita. Hanheld ktorý je neporovnateľné výkonnejší ako 3Ds a nadšenie sá vas zmocní, keď zistíte, ze VDdev /odkaz na podstránku sich herným portfóliom/ stojí aj za NDs hrou The Recruit Cop, čo je technicky neskutočný GTA klon pre prašivý handheld so 4 megami ram a výkonom ľahko nad úroveň N64. A beži to vo free roaming sandboxe na 60 fps !! Poznáte fenomenálny V-Rally 3  pre GBA /2D handheld na úrovni starej konzoly SNES !!/ aj to sú oni. Hral som to, prešiel som, herne skvelé. Brali kopu cien za technickú úroveň svojich hier z prava i z ľava. Vrátim sa ešte ku ich najnovšiemu projektu Iron Fall - žiadne komerčne terno od toho veru nečakám. Vrcholne sa však teším až pre PSV urobia niečo rovnakým programatórskym štýlom. Trojčlenný tím určite neprekoná produkčnú hodnotu Killzone Mercenary PSV alebo God of War pre PSP, technicky ich však môžu zlomiť obe na dva kusy a to chcem vidieť. A možno to bude prvá, dobrá akčná sandbox hra pre PSV, keď už na to R* kašle.