29. 9. 2014

Unity - game engine


Pole Position. Túto vskutku klasickú arcade hru sme na základnej škole skúšali naprogramovať na 8 bitovej šunke PP-01. Základný herný kód, statická grafika, animácie, ošetrenie kolízií sprajtov, jednoduchá AI, voliteľné ovládanie, audio. Dokopy to vlastne tvorí to, čomu hovoríme - herný engine. My sme však svojho času špekulovali hlavne nad tým ako dostať na obrazovku rýchlu a neblikavú grafiku - renderovacie jadro alias grafický subengine. S príchodom stále technicky komplikovanejších hier sa vlastne všetky tie vyššie spomenuté časti herného enginu často špecializovali  až superšpecializovali /SpeedTree - stromčeky, Umbra - odstránenie polygónov, ktoré nevidíte, Beast - externá globálna iluminácia/, decentralizovali a dnes si napríklad pri fyzike /alebo AI/ vyberáte z bohatej ponuky na mieru vášho projektu. Je na škodu vecí, že ide často o veci "neviditeľné" a hráčmi ignorované, takže sa na výslnie dostali "grafické enginy", ktoré sú v skutočnosti iba naleštenou tvárou komplexného softvérového frameworku v pozadí.

Zdochliny ako starý ID tech /DOOM, Quake/, Build /Duke Nukem/, Source /Half Life/, úplne prvý Unreal engine, Rendeware /GTA, Black/ - tak o tie sme zakopávali na starých i386, pentiách alebo PS2ke. Historické pozadie však nezaručuje večný úspech, takže ID Tech už dávno kope tretiu okresnú pri najnovšej Unreal 4.x, Build a Renderware sú roky po smrti. Flexibilný Source populárny viac medzi homebrew nerds v komerčnom TitanFail podal silne rozpačitý výkon, dokonca aj vo svojej silne modifikovanej podobe v COD pre PS3-PS4 /stále to vyzerá a správa sa aspoň o pol generáciu pozadu za priemerom/.

Dnes, šesť rokov po veľkej ekonomickej kríze, sa všetci veľkí hráči vykašlali na masovo používanú Unreal 3.x a používajú vlastné, draho vyvinuté, komplexné nástroje výbornej kvality, univerzálneho použitia a navyše ich zlomyseľne odmietajú licencovať. EA - Frostbite, Ubisoft - Snowdrop, Crapcom - Panta Rhei, Konami - Fox engine, Activision - Treyarch NGL a IW 5.0+, Rockstar - Rage. Ostatným a chudobným zvlášť sa teda trochu zúžila šanca dostať niečo dobré a lacné pod ruku.

Realisticky si pre ambicióznejší herný titul vyberáte z trojice Unreal engine 4.x, Cryengine 3.x a Unity /prekvapenie/. Z pohľadu hráča-laika je nemožné rozhodnúť, ktorý z nich je /naj/lepší. Ide tu o desiatky premenných - samotný fundament enginu /funkcie, editor, 3D modelér, integrácia desiatok ďalších middleware/, reálny aplikačný výkon, efektivita samotnej produkcie hry, script jazyk, intuitívnosť, interface, learning curve, multiplatformovosť, cena a ďalšie poplatky. Mierne prekvapí /ako koho/, že Cryengine vidíme v rotáciach iba veľmi sporadicky. Čítam naopak veľkú chválu na Unreal 4.x /hovorím o skutočnej práci v engine, nie o lesklej grafike/ a od spodu sa cez indies a AA hry mohutne tlačí Unity. Aby som nebol až taký pes na tú grafiku, tak všetky tri v tomto smere výrazne konvergujú a vizuálne budete mať veľmi skoro problém natipovať, na čom tá ktorá hra vlastne beží. Prečo ? Viacmenej sa všetci zjednocujú v rovniciach opisujúcich základné fyzikálne javy pri práci so svetlom - GI, PBR a dokonca aj v takých detailoch ako je "každým" používaná vyššie spomenutá Umbra, SpeedTree atď.


Unity hry /samozrejme neúplny zoznam/: Kingdom Rush /kufi pozná/, Kentucky Route Zero /žrádlo pre oči/, Wasteland 2 /izometrický Fallout/, Cuphead /unikátna grafika ala tie najstaršie kreslené disney filmy/, The Long Dark /postkatastrofický survival/, Hitman Sniper, Torment: Tides of Numenara, The Forest /survival v lese/, Night in the Woods /báječná atmosféra/, Draugen /severský Silent Hill/, Oddworld: New ‘n’ Tasty, Broforce, Kerbal Space program /väčšie ako Minecraft/, Satellite Reign /amiga, Syndicate, jasná vec !!/, Unearthed: Trail of Ibn Battuta /arabský klon Uncharted/ a mnoho ďalších.

Unity /Unity Technologies - 2004, Dánsko/ je pritom ešte vekom zelený bažant, ktorý napriek tomu okupuje viac ako 50% mobilného trhu /Android, iOS, Windows Phone 8, BlackBerry/ a tlačí sa už aj na veľké konzoly. Lepia na seba ďalšie a ďalšie funkcie. Verzia 4.3 pridala natívnu podporu pre 2D hry /sprajty, 2D fyzika/ - tento typ hier zažíva nebývalú popularitu, ešte novšia 4.6 po vzore agresívne progresívnej Unreal 4.x ponúka aj open source vývoj časti enginu a oveľa liberálnejšie podmienky, na ktoré napríklad Crytek reaguje dosť odmietavo, čo im môže rýchlo zlomiť krk. Evolvuj alebo zdochni.


Unity 5 je chystaný, masívny updejt hlavne grafickej časti na úroveň ťažkotonážnych súperom Unreal 4.x a Cryengine 3.x. V praxi to znamená integrovanie globálnej iluminácie od Geomerics alebo dnes povinnej, pokročilej physically based shader pipelajny. V preklade ide o moderný model popisujúci fotorealistckú interakciu matériálu /akýkoľvek - od dreva po kov/ so svetlom. Správne realizovaný výsledok je dych vyrážajúci. Dnes ide o žiadanú vlastnosť masovo závádzanú /alebo už zavedenú/ do každého významnejšieho grafického enginu. Nejde vlastne o to dostať do Unity "lepšiu grafiku" ale skôr získať takto vstupenku medzi vývojárov luxusných AA a AAA hier pre konzoly. Aktuálna Unity 4.x je graficky skôr v mantineloch starého /často silne modifikovaného/ Unreal 3.x.

"Nintendo pays for the Unity License on Wii U 
for all licensed Nintendo Developers"

Budúcnosť Unity je zatiaľ vcelku ružová. Chce to maličkosť ako bohatého investora pre ďalší rozvoj. Vlastne - čírou náhodou sú ako celá firma aj na predaj a môže ich kúpiť hoc aj také nintendo /pre Weak Uu ide prakticky o default game engine !!/. Potrebujete minimálne 5-6 rokov tvrdej práce, aby ste niečo podobné ako Unity vytvorili z nuly a bolo to vhodné aj pre veľké hry - nečekám preto, že sa len tak z tmy vynorí niečo podobné ak samozrejme frostbite a spol. neuvoľnia licencie aj pre ostatných. Dvojica Unreal 4.x a Unity 5.4 by mohla vyžrať značnú časť trhu. Opakujem. Okrem kvality enginu /vsetko od množiny funkcií po produktivitu práce v ňom/ je ešte dôležitejšia aj marketingová stránka, prezieravosť, cenová politika alebo rýchla reakcia na nové trendy /mobility, tri AMD konzoly, GCN architektúra, WebGL, VR/.

Jedna extra kapitola. Univerzálny SONY engine ? Servítky si neberiem, predaje SONY only hier sú vo väčšine prípadov veľmi priemerné, pritom každá je namáhovo vyvíjaná na vlastnom engine. Driveclub má sandbox engine s denným cyklom, dynamickým počasím, 30 kilometrovou dohľadnosťou, procedurálnou oblačnosťou. Pýtam sa však, použije ho nejaká ďalšia hra iného SONY dev tímu. Asi nie, urobia si vlastný. Vyhodené prachy. GT od Polyphony má aspoň 300 áut v PS4 kvalite, dostanú sa do Driveclub ? Nie, chlapci z Evo si urobia vlastné /to isté Paper engine/. Vyhodené prachy. A na podobné si užívanie života dnes SONY vážne nemá kapitál. Ocenil by som, keby ICE/XDEV tím vyvinul niečo podobné ako Frostbite od EA /môže na tom bežať všetko od Killzone, cez Driveclub po Knack/ a začali trochu šetriť financie. To isté sa týka aj herných asetov /statická grafika, animácie, shaders, iné in-house middleware/. Rockstar predá 50M kopií GTA5 - má na rozhadovanie. Driveclub však predá jeden milión horkoťažko po 16 mesiacoch a SONY následne zruší Evolution Studios.