Ať už jste hráč, herní vývojář nebo jenom člověk, co se rád orientuje ve světě technologií, dost možná jste zaregistrovali příchod nové verze Unreal Enginu. Konkrétně s číslovkou pět. A i když si to dost možná neuvědomujete, tento nástroj už teď ovlivňuje celý herní průmysl a zase lehce změní způsob, kterým vývojáři k vývoji her přistupují. A protože jsme v redakci nadšenci do nových technologií a nástrojů, rádi bychom vám Unreal Engine 5 trochu více přiblížili. Abyste pochopili, jak fungují některé nové funkce a proč je pátá generace tohoto enginu vlastně tak důležitá.

CO JE VLASTNĚ HERNÍ ENGINE?

Ještě než se však vrhneme na Unreal pětku, měli bychom si takto na úvod vysvětlit, co to vlastně herní engine je, protože existuje více nástrojů než jen Unreal, ale všechny fungují na stejném principu. Herní engine má především vývojářům usnadnit tvorbu her. Poskytuje nějaké základní nástroje a stará se o naprosto základní věci, jako je třeba vykreslování textur, fyzika, kolize objektů nebo světlo. Tyto věci totiž není vůbec jednoduché vymyslet a naprogramovat. Takže to tvůrci enginů dělají za vývojáře a ti pak na jejich systém staví své funkce, případně si ty základní přizpůsobují pro svoje potřeby. Samozřejmě pokud byste si chtěli naprogramovat vlastní engine, tak můžete, ale strávíte na tom roky času a stejně většina systémů nebude tak dobrá jako v Unreal Enginu nebo Unity. Nicméně to neznamená, že tvorba vlastního enginu nemá smysl. Velké společnosti jako EA, Ubisoft, Valve nebo CD Projekt Red mají vlastní interní enginy, protože vědí, že se jim vyplatí do nich investovat. Source Engine, Frostbite nebo REDengine nabízí těmto společnostem specializované nástroje vytvořené na míru hrám, které chtějí vyvíjet. Protože přece jen takový Unreal Engine, Unity, Game Maker nebo Godot míří na širší publikum, snaží se zavděčit všem a v důsledku toho často nejsou na konkrétní věci moc dobré.

To, že je konkurence na herním trhu velká potvrzuje i Ari Arnbjörnsson, kterého jsme potkali letos na Game Accessu, a který pracoval na Returnalu jako vedoucí programátor. Nyní jezdí po Evropě a za pomoci Epic Games přibližuje Unreal Engine 5 novým vývojářům.

„Myslím, že je to vlastně docela zdravá konkurence. Naším největším konkurentem jsou interní enginy studií. Musíme například dohnat tuhle interní technologii nějakého studia, což nám dává něco, na čem můžeme pracovat. Samozřejmě pro Epic games by bylo skvělé, kdyby každý na světě používal Unreal, ale myslím si, že potřebujeme nějakou zdravou konkurenci, abychom se všichni udrželi v pozoru.“

Proto byl minulý rok představen Unreal Engine 5 od Epic Games. Ano, ti Epic Games, kteří dělají Fortnite nebo Unreal Tournament. Nejspíš o nich víte jen kvůli těmto dvoum hrám, ale Unreal Engine vždy vyvíjeli oni. Letos už jsme dočkali plné produkční verze Unrealu 5, kterou si můžete klidně doma stáhnout zcela zdarma.

UNREAL ENGINE 5

A Epic Games opravdu dalo do této nové verze všechno. Nejen co se týče marketingu, kdy jsme mohli například vidět demo s Keanu Reevesem v Matrixu, ale i co se týče právě nových funkcí. Od Unrealu 4 tady máme zcela nový systém pro vykreslování objektů zvaný Nanite, nasvícení v reálném čase - Lumen, částicový systém - Niagara a lepší podporu pro otevřené světy a práci v týmech. A to jsou jen ty hlavní věci, mohli bychom zabrouzdat i do nástrojů pro sledování úniků paměti a dalších pokročilých věcí. Nicméně nechceme to pojmout až moc technicky, abychom vás tady neunudili k smrti a i proto zde máme na pomoc právě Ariho Arnbjörnssona, který nám spoustu věcí během Game Accessu objasnil.

CHYTRÉ VYKRESLOVÁNÍ OBJEKTŮ - NANITE

„Myslím si, že Nanite bude velká věc, už jenom kvůli tomu jak fungují workflows neboli pracovní postupy. Už nebudete muset dělat všechny ty samostatné úrovně detailů pro každý jednotlivý mesh a zjednodušovat je, prostě tam dáte tu nejdetailnější věc, kterou najdete a Nanite to jednoduše zvládne za vás a vy nad tím dál nebudete muset skoro vůbec přemýšlet.“

Když totiž v nějaké hře vidíte předmět, strom, budovu nebo klidně celou skálu, obvykle nemá pouze jednu verzi. Ideálně byste chtěli hráči vždy zobrazovat jeho nejdetailnější verzi, jenže to by bylo s velkým množstvím takových objektů extrémně náročné na výkon počítače. V realitě má tedy každý model několik různě detailních verzí. Od té nejdetailnější, po nějaké středně detailní, až k verzi, kdy jde pouze o něco, co přibližně daný objekt připomíná. Často se dokonce objekt, který je opravdu daleko, přepne na 2D obrázek, který se za vámi pouze otáčí. Když je toto přepínání uděláno dobře, nejde o žádný problém a ani si toho nevšimnete. Nicméně vývojářům tato optimalizace zabere spoustu času a pro každý kámen, strom, trávu, lopatu a krabici musí být ve hře právě několik variant modelu s různými úrovněmi detailu.

Unreal Engine 5 se o toto nicméně stará sám. Do enginu tak můžete vložit klidně ten nejhezčí a nejdetailnější model, co máte a Unreal si ho bude sám dynamicky zjednodušovat, aby hra běžela plynule. Na obrázcích níže například můžete vidět, jak se počet trojúhelníčků zmenšuje a zvětšuje podle vzdálenosti hráče od modelů. Tyto trojúhelníčky reprezentují polygony, tedy geometrii a vlastně úroveň detailu a množství hran, které je vykreslováno. Díky tomu se mohou vývojáři také zbavit takzvaných „normálových map“, kterými se obvykle detaily jako lehké škrábance a nedokonalosti simulují.

GLOBÁLNÍ DYNAMICKÉ OSVĚTLENÍ - LUMEN

Další důležitou novinkou je Lumen, který má stejně jako Nanite vývojářům šetřit čas a přitom jim umožnit vyvíjet hry zase trochu jinak, aniž by si k tomu museli vytvářet své vlastní nástroje.

„Lumen je dynamické globální osvětlení v Unreal Enginu 5 a globální osvětlení znamená, že světla dopadají na povrch a pak se odrážejí a sekundárně osvětlují další povrchy a pak se stále odrážejí, takže do místnosti může přijít světlo skrz malou dírku a pak osvětlí zbytek místnosti. Obvykle se ve hře dělá to, že pokud chcete takovéto odrazové osvětlení, do hry ho zapečete. Říká se tomu statické osvětlení a děje se to offline. Máme servery, kterým to pošleme, ony pracují přes noc, a pak druhý den je to jako aha, teď máme všechno statické osvětlení. Ale pro Returnal jsme měli procedurální generování světa, takže procedurálně umístěné úrovně, což znamená že je přesouváme, takže nemohly být staticky nasvíceny. To je prostě omezení té technologie. Takže jsme museli udělat to, že jsme vytvořili vlastní řešení globálního osvětlení pomocí světelných sond, kterými jsme mohli skutečně hýbat. A skutečně se nám to podařilo. Technický tým v Housemarque byl prostě naprosto úžasný. Rozhodně to byl velký úspěch, ale víte, byl na to potřeba jeden z našich nejchytřejších lidí ve firmě, který na tom pracoval po celou dobu vývoje. Takže ano, určitě bychom byli rádi, kdybychom tenkrát měli nějakou technologii jako Lumen.“

Takže ve zkratce. Lumen umožní vývojářům jednoduše měnit globální osvětlení, aniž by museli čekat celý den než se světla zapečou. Zároveň to otevírá nové možnosti v designu úrovní. Můžete například v reálném čase upravit počasí, přetočit čas nebo zbourat strop a nechat světlo nasvítit zbytek místnosti. Ovšem nedá se říci, že tyto věci se předtím udělat nedaly. Daly, ale často bylo potřeba použít různé triky, které efekt pouze simulovaly nebo museli tvůrci vytvořit svá vlastní interní řešení. Nyní je vše mnohem jednodušší.

PRÁCE S PAMĚTÍ

Unreal Engine 5 pak řeší ještě jeden problém, který je hlavně pro programátory zásadní. Jde o práci s pamětí, kdy vývojáři a engine samotný ukládají do vaší RAM paměti různá data, která musí být rychle přístupná na všelijaké výpočty. Jak sami ale víte, RAM paměti často nebývá dost a programátoři si musí dávat pozor, kolik z ní vlastně jejich program zabírá a zda nepřesáhne svůj limit a nezačne se sekat nebo rovnou nespadne celý.

„Další mou oblíbenou funkcí jsou rozhodně Unreal Insights, které jsem včera prezentoval tady na Game Accessu. Například nyní máme profilování paměti, které vám umožňuje vidět každou jednotlivou alokaci provedenou v Unrealu, takže se můžete v podstatě rozloučit s úniky paměti. Vždycky totiž budete mít problémy s pamětí, ale extra problematické jsou konzole. Jde o to, že když konzolím dojde paměť, nedělají to jako počítače. Počítače data prostě začnou dávat na pevný disk, ale u konzole, jakmile vám přeteče ten poslední byte, tak se hra prostě zavře. Takže musíme být velmi, velmi opatrní, abychom nikdy nevyužili více paměti, než můžeme. A možnost prostě vidět každou jednotlivou alokaci paměti – kde vznikla, jak dlouho žila, možnost je filtrovat (například „dej mi alokaci, která se stala mezi A a B a byla vypuštěna mezi C a D“), to je prostě neskutečně silný nástroj.“

UNREAL NENÍ ULTIMÁTNÍ ŘEŠENÍ

I přesto, jak tady však o Unreal Enginu 5 básníme, neznamená to, že by teď všichni indie vývojáři a velká studia měli zahodit svou práci a začít vyvíjet hru na něm. Jak bylo zmíněno na začátku, stále je tady místo pro konkurenci. Ať už veřejnou, nebo interní. Velká studia si ráda vyvinou vlastní engine, o kterém přesně vědí, jak funguje, a který sedí jejich procesu vývoje nebo hře, na které zrovna pracují. Proč by například engine pro okruhovou závodní hru potřeboval nástroje na procedurální generaci otevřeného světa. Stejně tak to můžou mít i indie vývojáři. V Unreal Enginu sice jde udělat 2D hra, ale například takový Game Maker nebo Unity mohou nabídnout lepší nástroje pro tvorbu 2D titulu.

Někdy se ale společnosti mohou rozhodnout, že je Unreal Engine 5 už natolik pokročilý, že se přechod na něj vyplatí. Podívejme se například na CD Projekt Red s dalším Zaklínačem nebo Square Enix s novým dílem Tomb Raidera. Obě hry mají opustit své stávající interní enginy a přesunout se na nový Unreal. Naopak je tady ale i fakt, že se musí vývojáři v novém enginu naučit pracovat a někdy se tak jednoduše nevyplatí investovat čas do tohoto procesu. Takže opravdu záleží na konkrétní hře a přístupu konkrétního studia.

Přesunu některých velkých studií na Unreal Engine však rozhodně přispívá fakt, že tento engine je open-source, takže ho může kdokoliv od základu modifikovat. CD Projekt Red tak rozhodně může do Unrealu převést svůj úžasný nástroj na animaci obličejů, který byl použit v Cyberpunku. Tím pádem by nemuseli vývojáři nutně přijít o komplexní věci, které již vyvinuli. Přesně tak to udělalo i Housemarque s Returnalem, kdy studio sice vyvinulo hru na Unreal Enginu 4, ale částicový systém na tvorbu efektů vývojáři kompletně přenesli ze své minulé hry a pouze jej modifikovali.

„Housemarque má nástroj na částicové efekty, který vyhrál několik ocenění a my jsme se s ním nechtěli rozloučit. Takže když jsme přešli na Unreal Engine 4, přenesli jsme s sebou právě náš částicový systém, takže všechny ty úžasné částice, které vidíte v Returnalu – ty chapadla, všechny kulky… To je interní technologie, která běží souběžně s Unreal Enginem. Protože Unreal je přizpůsobitelný a máte celý zdrojový kód, a pokud to chcete upravit, tak můžete. Kdybyste si řekli: Tenhle systém nám nestačí, chceme použít náš interní, na kterém jsme pracovali roky a který umíme používat. Tak to můžete to udělat. Nebude to vždycky snadné, ale máte tu možnost.“

VÝVOJ JE DNES PŘÍSTUPNĚJŠÍ

Velkými výhodami Unrealu Enginu 5 nejsou jen pokročilejší nástroje, ale i zjednodušení pracovních postupů například pomocí Nanitu nebo Lumenu, o kterých jsme již mluvili. Dávno jsou navíc pryč doby, kdy se vývojáři museli učit z magazínů a knih. Dnes můžete jít na internet a okamžitě máte přístup ke statisícům návodů, materiálů a nástrojů zcela zdarma. Můžete využívat již připravené 3D objekty a textury z ArtStation nebo Megascans knihoven, můžete přivést vaše postavy k životu pomocí nového Metahuman nebo zamířit na nějakou ze spousty dalších stránek, které poskytují částečnou licenci zdarma.

A pokud byste se vše nechtěli učit doma, tak dnes už máte k dispozici i školy dedikované přímo hernímu vývoji, kterých je po světě stále víc a víc. I u nás už se tento obor na některých vysokých školách začíná pomalu prosazovat a najdete i české online alternativy jako je GameDevHub.

„Ve školách se vývoj her nevyučoval. Neučil se vývoj flashových aplikací ani nic podobného. Školy učily jen kódování. Určitě, velmi závidím dnešním studentům, protože mají všechny ty nástroje. Mohou si prostě zdarma stáhnout třeba Unreal Engine, Unity, Godot. Všechny tyhle enginy, které AAA studia skutečně používají k vývoji her. A navíc máte celý zdrojový kód, takže se z toho můžete spoustu naučit.“

„Když jsem já začínal, tak jsem musel stáhnout Flash se zkušební dobou, a když jsem chtěl víc, musel jsem zaplatit, což jsem si nemohl dovolit, takže bych to musel zpirátit. Takže moc možností nebylo a žádné školy herní vývoj nevyučovaly, protože to prostě nebylo ještě tak rozšířené, alespoň v mé oblasti. Dneska mají studenti spoustu možností. Mají všechny ty enginy. Nikdy nebylo na internetu tolik obsahu. Všechny ty videonávody, které dělají sami vývojáři, a navíc tu jsou školy specializující se právě na výuku počítačových her. Takže jim trochu závidím. Ale na druhou stranu já měl obrovský náskok, takže jsme si myslím vyrovnání.“

Cesty, kterými se můžete dnes dostat do herního vývoje, jsou tedy otevřeny všem, a pokud vás někdy herní vývoj zaujal, teď je rozhodně skvělá doba, kdy si to můžete vyzkoušet.

„Nejlepší věc, co můžete udělat, je s tím prostě začít blbnout, udělat si malé portfolio jednoduchých her, které pak můžete použít a jít za nějakým studiem a říct: hej, dívejte, já vím, jak používat váš engine.“

Ať už vás tedy tvorba her někdy zaujala nebo ne, doufáme, že jsme vám dnes nejen přiblížili nový Unreal Engine, ale i proces vývoje obecně. Unreal Engine 5 není nutně ve všem nejlepší, ale jde skvělý nástroj, který jen dokazuje, jak daleko dnešní technologie došly, a že vyvíjet hry AAA kvality dnes už nemusí jen studia se stovkami lidí. Tak kdo ví, třeba se jednou do herního vývoje taky ponoříte.