12. 12. 2010

Ruská moderna

Neraz som tu smutne vzdychal nad absenciou výkonného multiplatformového enginu. Súčasná generácia konzol je v nejakom 4-5 roku a skutek stále utek. Unreal 3.x je od začiatku zastaralý a celé tie roky neustále vylepšovaný-pozliepaný bastard, s ktorým slušné výsledky na úrovni technického priemeru dosiahol iba sám jeho tvorca Epic Games. Sandbox hru v ňom navyše neurobíte, je obmedzene použiteľný. Ak si porovnáme dve tunelovky a zároveň TPS akcie - Uncharted 2 a Gears of Joke 2, ten prvý toho druhého jasne deklasuje nielen po vizuálnej stránke. Natívne PS3 enginy sú vskutku pekná vec - Kratos, Killzone, Uncharted, Resistance a ďalší. Ich použitie mimo PS3ky je však z pochopiteľných dôvodov nemožné. Gamebryo nedávno zbankrotovalo. Cryengine je veľká a licenčne drahá neznáma.

Ako zx spectrum a playstation fanboy už roky sledujem sovietsku-ruskú programátorskú špičku. Nielen na spektre excelujú bohovia ako Alone Coder - Dmitry Bystrov /viď jeho Wolfenstein Zx/. Nie je žiaden dôvod, aby nezažiarili aj na výkonnejších systémoch. Veľmi rád chodím na stránky ako Humus /avalanche engine 2.0 - herná Just Cause séria/ alebo Frustum. Poučné mini prednášky z tvorby 3D grafiky a záplava stiahnuteľných grafických diem - často interaktívných, kde si dotyčný efekt-algoritmus pekne detailne ošaháte.

V tomto článku sa budem venovať čiste Sášovi "Frustum" Zaprjagaevovi. Spoluzakladateľ firmy /prvý zľava je Sáša, ten krivý úsmev kazacha/, ktorá len nedávno ohlásilo port svojho enginu /priamy pokračovateľ jeho projektu frustum/ pre Playstation 3. Bingo. Nejde o nič menšie ako Unigine a dnes "slavný" PC DX 11 benchmark s podporou pre teseláciou objektov /výrazne navýšenie polycountu v procesu spracovania meshu vnútri GPU, teda nie "pred nim", CPU-batch-GPU index sa nám teda nezhoršuje/.



Port pre PS3 prebehol ako prvý /bude aj na xcrape/ hlavne z toho dôvodu, lebo dev tím od začiatku pracuje hlavne s grafikami od Nvidie, čo je aj prípad PS3 GPU - RSX. A v núdzovom režime fungoval engine už aj na začatku roku 2009 pod jeho Linuxom. Dnes sa viac a viac optimalizuje celé Uningine SDK pre využitie CELL procesoru. Prekvapujúco tím tvrdí, že konverzia z PC prostredia bola veľmi jednoduchá. Vlastne ma to neprekvapuje. Sú to rusi, nie kecálkovia Carmack alebo Gabe, čo roky žvatlajú aký strašný problém je pre nich nakódovať niečo "pekné" pre PS3 architektúru.

"Particles can be sorted by depth on SPU. Particles are simulated on SPU with awesome performance. SPU skinning with view frustum and back face culling. Heap of code for view frustum and back face SPU culling, but result is wonderful." - Unigine

Dlhý zoznam jeho vlastností nájdete v tomto odkaze. Ide o komplexný a kompletný balík od audio, grafiky /aj stereoskopické a anaglyph 3D/, cez fyziku až po editory a pomocné programy všetkého druhu. Rovno vám však vravím - radšej si rýchlo stiahnite tento ich interaktívny, starší benchmark Tropics /demátko pochádza z roku 2008, zhruba úroveň Crysis grafiky/ a pohrajte sa s nastaveniami, so zmenou dennej doby /obzvlášť pekné/ a vedzte, že na mojej starej šunke s jedným jadrom na menej ako 2Ghz v 720p/2xAA móde /kvázi konzolácke nastavenie /, 4xAF, shaders a DX9 efekty na maximálne maximum dosahujem bez problémov priemerných 25 fps. Čakal som niečo okolo 8-12fps. A hovorím to aj preto, lebo všetky tie benchmarks vrátane toho posledného - Heaven v2.1 /to YT video vyššie/, už vraj bez problémov bežia na PS3ke v "rovnakej kvalite" a plynule ako na PC /zatiaľ však bez teselácie/.



exteriéry, interiéry - žiaden problém

Ďalšie inštruktážne videá - foliage systém a náhodne generovaný pohyb lístia, realistická cloth fyzika, buoyancy fyzika /nadnášanie predmetov vo vode/, rope fyzika, obľúbené ničenie, trhanie, a ohýbanie trávy pri chôdzi po nej a cez ňu. Na rok 2011 sa pracuje napríklad na integrovaní globálnej iluminácie do SDK, wysiwyg editore /vaše práca-zmeny na asetoch hry sa premietajú na obrazovku v reálnom čase/ a ďalší port enginu pre jeden neohlásený, výkonný hadheld /dám ruku do ohňa, že to bude PSP 2/.

Ak vás zaujíma môj osobný názor - Uningine má pred sebou ešte dlhú cestu, aby dokázal výkonnostne dorovnať napríklad taký natívny SONY Phyre engine. Poctivo som sledoval na ich vývojárskom blogu horučkovité optimalizácie PS3 portu /RSX je klasicky veľká brzda/ a všetko štandardne stojí a padá na tom, koľko toho dokážu hodiť na plecia SPE jednotiek a ako efektívne. Phyre engine má v tom pred nimi minimálne 4 ročný náskok. A je zadarmo. Licenčné poplatky za Unigine sú však chvályhodne cca 10 krát nižšie, než napríklad za Cryengine 2, alebo posledný Unreal 3.x. Pre indie scénu a ne-komerčné produkcie sa to dokonca pohybuje okolo nejakých 4000 USD, čo sa dá prežuť. Tak či inak - skôr ako o rok a pol nejakú väčšiu PS3 hru bežiacu na engine rusákov z Omska neuvidíme. Ide teda skôr o investíciu do budúcnosti a do ďalšej generácie konzol.