22. 4. 2008

Darwinova teória

Malé intro. Insomniac Games sú rozhodne kompetentný hovoriť o vhodnosti, alebo nevhodnosti CELL procesora pre jeho zabudovanie do hernej konzoly. Za ten krátky čas majú na triku tri úspešné hry /Resistance 1, Ratchet, a rátam tu už aj Resistance 2, ktorý je za rohom/. Za rovnaké obdobie je napríklad taký Killzone 2 stále ešte len vo fáze vývoja. Insomniac teda vie, za ktorý koniec ma lopatu chytiť do ruky a práce sa nebojí. Inak .. ohľadom tej heterogénnej architektury, o ktorej bude za chvíľu reč. Pre japonské mašiny je viacmenej vec typická. Klasický príklad je PS2. Tri procesory s odlišnou vnútornou architektúrou a inštrukčným setom /Emotion engine = CORE CPU, a dve rozdielne vektorové jednotky/. CELL= 1x CORE CPU a 7x SPE, opäť s odlišným inštrukčným setom atď. XBOX 360 na strane druhej je homogénna architektúra. XENON CPU= tri rovnaké jadrá, rovnaký inštrukčný set, aj architektúra. Ak sa teda pýtate, či CPU o päť rokov bude "heterogénne", alebo "homogenné" .. odpoveď znie - Intel a AMD to podľa všetkých signálov rozbiehajú heterogénnym smerom. Následuje pár teplých viet z intervijú od vývojára z Insomniacu. Pýta sa developmag.com :



Stále existuje veľa ľudí čo si myslí, že vývoj hie pre PS3 je hotová nočná mora. Veríte, že je to pravda ?

Tvrdím, že zlý herný kód a zlý design dát pochová každú HW architektúru a obzvlášť to platí pre CELL. Ide o oveľa modernejší a heterogennejší prístup, než na aký je stará škola zvyknutá. Vysoká paralelnosť procesov vyžaduje dobrý design kódu a dát. Takže, ak to nezvládnete skončite s veľmi biednym výsledkom. Tragické v pripadoch, keď ľudia do svojho projektu investovali kopu prachov a hodín práce bez pochopenia tejto odlišnej filozófie. Chápem, že to vyžaduje viac úsilia a času, ale nedá sa tomu vyhnúť. Svet sa mení, a meniť sa neprestane. Každá nasledujúca generácia je odlišná od predchádzajucej. SNES engine nemá zmysel portovať na PS3. Kto toto nepochopí a nedokáža sa prispôsobiť, zanikne.


Myslíte si, že tento nový heterogénny princíp nakoniec vývojári zvládnu ?

Áno, technológia viacjadrových multiparalelných CPU nie je pieseň budúcnosti, je tu už dnes. Môžte tomu uniknúť na iných platformách. Ďalšia generácia konzol vám však už nedá šancu. Niektoré nové finty, vedomosti a lekcie musíte prežuť, inak sa môžte začať lúčiť. Názorným príkladom je prechod zo SNES/MEGADRIVE generácie na Playstation. Mnoho vývojárov tento skok nezvládlo, a zbytočne si potom otváralo huby.


Outro. Mám v živej pamäti "prestížnych" PC vývojárov, ktorým asi pred rokom a pol pena kvapkala z papule ako nadávali na Cell a celý ten bordel okolo. Odmietli s tým "šmejdom" robiť, a ostávali buď v hibernácii s mŕtvym herným PC, alebo utiekli ku XBOXu. V tom istom čase PS2 vývojári zocelený bojom tvrdo makali na PS3ke, a dnes dosahujú výsledky neporovnateľne lepšie ako tie socky, čo sa dnes postupne zobúdzajú, a skúšajú dohnať na PS3ke to zameškané. Tu musím ešte pripomenúť tzv. Nocturnal iniciatívu, s ktorou začali práve v Insomniac Games. Jej zmyslom je ušetriť čas iným. Zrealizovali teda permanentný medzinárodný workshop, kde si vývojári môžu "požičať" úspešné riešenia jednotlivých problémov /CELL, SPE, RSX,DMA/, aby nemuseli stále objavovať ameriku, keď takto elegantne ušetria kopu času.

Update, časť druhá:

Myslíte si, že staré programovacie techniky a zvyky dnes robia prácu na modernej architektúre obtiažnejšou ?

Je zaujímavé, že najstaršie programovacie metódy sú dnes najpoužívanejšie. Zlozvyk trvajúci posledných cca 5-8 rokov. A je pozoruhodné, že nováčikovia, čo len teraz opustili školy sú týmto tiež nakazení. Ich vedomosti sú zastaralé, hárdver a spôsob vývoja sotvéru je dnes niekde úplne inde. Veci, ktoré ich učia sú navyše iba všeobecné kecy, bez znalosti hárdveru a programovania na najnižšej úrovni. Čo je aj dôvod, prečo Office 2007 zamrzne na 2 minuty, keď dostanem email.


Takže si myslíte, že školy by mali viac času venovať dôrazu na paralelné a heterogénne prostredie ?

Niekoľko špičkových univerzít s tým už začalo - MIT alebo Georgia Tech. Nový trend. Rád by som však videl klásť väčší na programovanie na najnižšej úrovni. Školy produkujú zástupy programátorov, ktorí v asemblery nenapísali ani riadok, a nemajú ani šajnu, ako to vôbec funguje. Profesionálny programátor by to však mal rutinne oviádať. Ich svätým grálom je však C++ a iné jazyky vyššej úrovne.


Pracujete na treťogeneračnej PS3 hre, čo ste sa počas vývoja Resistance a Ratchet & Clank Future: Tools of Destruction naučili, aký je rozdiel medzi prvo a treťo generačnými hrami ?

Naučili sme sa množstvo nových vecí, a niekoľko ťažko vydretých lekcií. PS3 je veľmi flexibilná v tom, čo vám design SPE jednotiek umožní urobiť, a ako to môžete urobiť. Zoberte si našich priateľov z Naughty Dog - Uncharted. Aj keď zdieľame veľa spoločného know how, mnohé veci riešili technicky úplne inak. PS3 sa pred vámi otvára ako kniha, sme ďaleko od vyčerpania jej potenciálu. Dokonca ak by sme sa dnes vrátili do minulosti, a opäť prerobili náš PS2 engine, dopadlo by to oveľa lepšie !!