Skip to main content

Metro 2033 po technické stránce

O vlivu grafiky a vyspělého enginu na herní zážitek.

EG: Dříve jste pracoval na hře STALKER, význačné pro svou vlastní technologii. Takže jaký je vlastně vztah mezi novým 4A engine a vaší předchozí prací na hře STALKER?

Vztah vlastně není žádný. V době, když jsem na hře STALKER pracoval jako hlavní programátor a technologický architekt mi připadalo mnoho věcí v architektuře jako skvělý nápad, avšak dnes to již není dostatečné. Hlavními překážkami STALKER engine pro budoucnost byla nemožnost více-vláknového zpracování, slabý a chybový síťový model a jednoduše příšerný management paměti, který nedovoloval jakékoliv streamování pro konzole.

Další věc, která mě opravdu znervózňovala, bylo textové skriptování (STALKER je celý naskriptován pomocí LUA). Při práci se ukázalo, že designéři chtějí více a více kontroly nad tím, co dělají, a když to dostali, tak byli ztracení, neboť museli myslet jako programátoři, kterými nebyli. To způsobilo mnoho odkladů STALKERa.

Proto jsem začal pracovat na další architektuře a prozkoumával další možnosti designu. Tento projekt postupoval velmi dobře a ač nebyl použitelný jako hra (dokonce ani jako demo: například neměl ani renderovaní engine), poskytl mi jasnou vizi jak co udělat příště. Tato má práce se stala základem nového engine ve chvíli, kdy se 4A stalo nezávislým studiem. Z důvodu časové tísně jsme byli nuceni použít middleware, abychom urychlili práci. Vybrali jsme PhysX pro fyziku (tenkrát to byl Novodex), PathEngine pro navigaci umělé inteligence, RakNet pro síťovou vrstvu, FaceFX pro animaci obličejů, OGG Vorbis jako zvukový formát a mnoho dalších věcí jako jsou komprimační knihovny a jiné. Renderovací jádro bylo napsáno za 3 týdny, ačkoliv to bylo ještě vzdálené od optimálního stavu.

EG: Čistě ze zajímavosti, kdybyste udělal přímý port X-Ray engine (ze STALKERa), jak by fungoval na PS3 a X360?

Bylo by to extrémně obtížné. Přímý port by se prostě nevešel do paměti ani po odstranění textur, zvuků a geometrie. A i pak by fungoval okolo 1-3 snímků za sekundu. Ale na tom nezáleží, protože bez textur a technologie neuvidíte ty snímky. To je můj osobní názor, ale GSC by mělo počkat až na další generaci konzolí.

EG: Časná 4A tech-dema byla předváděna na PS3, avšak Metro 2033 je z konzolí jen pro Xbox 360. Proč? Jsou zde nějaké technologické důvody, které zabraňují hře běžet na PS3?

Na začátku jsme zvolili nejobtížnější platformu pro spuštění. A na základě jejího omezení bylo učiněno mnoho rozhodnutí, abychom se vyhnuli problémům v budoucnosti. Pro mě osobně je grafické jádro v PS3 (z nějakého důvodu ho nazývají RSX) sázka na jistotu, neboť jsem se zúčastnil začátků vývoje jádra NV40 a proto se v něm cítím jako doma (RSX je přímý následovník této architektury). Dokumentace Sony ale byla nedostatečná a zmatená.

THQ (vydavatel hry) nechtělo riskovat s novým enginem pro obtížně programovatelnou platformu. Při zpětném pohledu myslím, že to bylo dobré rozhodnutí vyvíjet jen pro PC a Xbox. Dovolilo nám to soustředit se na kvalitu na obou platformách. Musím poznamenat, že Metro 2033 nikdy neběželo na PS3. Pouze jsme pro ni navrhovali. Celkově si myslím, že to byla výhra. Naše rozhodnutí projektovat hru na složitější platformu se vyplatilo skoro hned. Celá hra byla naportována na X360 během 19 pracovních dnů (ačkoliv to nebyly zrovna osmihodinové směny...).

EG: Projevila se nějak tvrdá práce při programování pro konzoli, když jste překládali na mnohem výkonnější PC? Jaký typ hardware bude potřeba, abychom získali zhruba výkon Xbox 360?

Vedlejším efektem našeho snažení je skutečně více optimalizovaná hra na PC. Například nepotřebujeme tolik paměti jako jiné čistě pro PC zaměřené tituly. Mělo by stačit cokoliv s grafickou kartou podporující DX10/DX11 s 512 MB RAM běžící pod Windows 7. Jelikož DX9 používá zálohování paměti pro téměř všechny zdroje GPU, potřebujete navíc dalších 256 MB, abyste zabránili swapování.

Co se procesoru týče, zde je to trochu složitější, jelikož je systém velmi více-vláknový, potřebovali jsme alespoň 2 hardwarová vlákna pro plynulou hru. Až na několik scén na výkonu CPU nijak nezáleží a hra poběží na téměř všech moderních architekturách se dvěma jádry (ne Intel Atom).