Unreal Engine a postupný vývoj
- Co jsou to herní enginy?
- Unreal Engine 1
- Unreal Engine 2
- Unreal Engine 3
- Unreal Engine 4
Vývoj enginu
Když po dlouhém vývoji přišla první beta verze Unreal Enginu 1, vývojáři neměli ani zdaleka konec práce, naopak šlo o začátek dlouhé cesty. Po uvedení prvního sestavení, anglicky build, se objevilo ještě 144 sestavení Unreal Enginu 1, než vznikla první hra. Bohužel nevíme, kdy vyšlo první beta sestavení UE1, protože šlo o interní záležitost.
Buildy UE1 se dělí na dvě části – od buildu 1 po 266, ty jsou nazvány „Unreal“ a na sestavení od 300 po 613, která jsou nazvána „Unreal Tournament“. Výrobce samozřejmě může přeskakovat nějaké číselné označení. Buildy jsou zásadní, protože i když jsou hry postavené na jednom enginu, jsou často postavené na jiném nebo jiných buildech.
Jak vypadal například vývoj „Unreal“ verze:
- Unreal Build 1-226
- Build 144: únor 1998 beta
- Build 200: (květen 1998)
- Build 201(?): patch (květen 1998)
- Build 205: "Unreal Special Edition" demo. (červenec 1998)
- Build 209: beta patch (červenec 1998)
- Build 216: beta patch (září 1998)
- Build 217: beta patch (září 1998)
- Build 218: beta patch (říjen 1998)
- Build 219: beta patch (listopad 1998)
- Build 220: beta patch (prosinec 1998)
- Build 221: beta patch (prosinec 1998)
- Build 223: 3dfx OEM verze 223
- Build 224: 224v patch (květen 1999)
- Build 225: 225a patch (květen 1999), 225f patch (červen 1999)
- Build 226: 226a patch (červen 1999), RTNP 226b patch (červen 1999), 226f patch (červen 2000)
- Unreal Tournament Build 300-613
Poté následovala verze 300, která byla prvním buildem „Unreal Tournamentu“. Můžeme si i uvést příklad hry, která byla postavena na sestaveních „Unreal“, a to Star Trek: The Next Generation: Klingon Honor Guard. Tato hra byla postavena na sestaveních 216-219.
Hry na této platformě začaly obecně vznikat až od sestavení 216 ze září 1998, což znamená, že reálný vývoj od vydání první hry pokračoval do června 2000, kdy byl představen build 226f.
Často se stává, že vývojář nějakou funkci do enginu implementuje až později, takže se v průběhu článku jistě dočtete, že nějaký prvek byl do hry přidán až v určitém buildu, takže hry postavené na ještě starším sestavení tuto vychytávku nemají.
Analogickým způsobem probíhal vývoj sestavení u „Unreal Tournamentu“ a následně i u dalších generací Unreal Enginu, nyní se můžeme pustit do samotných technických parametrů.
Technické parametry
Unreal Engine 1 podporuje několik renderovacích technologií, od buildu 216 podporuje DirectX 5, od buildu 218 DirectX 6, od buildu 226 DirectX 7, od sestavení 500 potom i DirectX 8. Podporuje i OpenGL od sestavení 209.
Dočkali jsme se např. podpory dynamického osvětlení s měkkými stíny, a to vše ve 32bitových barvách. Měkký stín je takový, kdy má lehce rozmazané hrany. Stín je měkčí, čím je objekt, který stín vrhá, blíže zdroji světla a dále od místa, kde stín dopadá. Jinými slovy měkký stín uvidíte na stěně, pokud přiložíte ruku blízko lampy, pokud dáte ruku blízko stěny, stín bude mít jasné kontury a bude tvrdý. U světelných efektů se setkáme i s light bloomem, jedná se o přesvětlení pozadí, díky čemuž je celá scéna tmavší.
Dále jsme se dočkali vícebarevného osvětlení s proloženými stíny s reálnými barvami, dále podpory raytracingu, avšak jen na základní úrovni. Scéna, která by byla vytvořena plně raytracingem, by při tehdejším hardwaru nemohla být plynulá (což není ani dnes).
Do grafického prostředí mohli vývojáři přidat i základní kaustické efekty – to je pronikání světla přes nestálou vodní hladinu a následné vytváření světelných obrazců na dně, pokud není voda příliš hluboká. Prvním z efektů je fire waver, tedy světelné obrazce na dně, druhým je watery shimmer, tedy obrazce, které vznikají např. na stěně, kde se odráží hladina.
I další efekty jsou zajímavé, máme zde lens flares, což jsou odrazy na čočce kamery, když zabírá přímé slunce. Unreal Engine podporuje odraz od klasických zrcadlových ploch, následně i od polomatných ploch a k tomu navrch přidává ještě možnost vidět přes teleporty, jak vypadá krajina na druhé straně.
Když se dostaneme dál, UE1 podporuje rendering zakřiveného povrchu (např. moře) s přizpůsobivou úrovní detailů a algoritmem na eliminaci polygonizace. Dostáváme se i k podpoře textur, ta je v základní verzi omezena maximálně na 32bitové textury s maximálním rozlišením 512×512 px, nicméně v sestaveních 400+ se můžeme dočkat textur s rozlišením 1024×1024 px. Od stejného sestavení engine podporuje S3TC kompresi textury.
Dostáváme se i k mappingu, pokrytí texturou, engine podporuje bump mapping. Jde o optický klam, kdy se rovný povrch nasvítí takovým způsobem, že vypadá jako nerovný. Dále je zde podpora multitexturingu, dynamické změny detailu textury či cliptexturingu. To je velmi zajímavé, jde totiž o neviditelné textury, které mají zabránit hráči v pohybu např. mimo mapu.
Bump mapping (vlevo) je jen iluze změny tvaru povrchu, stín je tudíž perfektní křivka (Zdroj: Wikipedia)
Dále zde máme podporu kosterní animace (od sestavení 432) objektu na základě rozdělení objektu, např. těla na vnějšek, kůži, a na vnitřní kostru. Podle toho jsou následně animovány pohyby. Unreal Engine dále podporuje animaci tváře (od sestavení 500), a dokonce i synchronizuje rty s mluveným projevem postavy (od sestavení 533).
Z dalších efektů můžeme jmenovat proměnlivé množství mlhy, která může být i v dáli, nebo velmi zajímavý efekt volumetrického osvětlení, ten se objevuje např. v případě, když mezi mraky proniká přímé světlo a my můžeme pozorovat kužely světla. Došlo i na částicové efekty, které byly od sestavení 400 ještě vylepšeny.
Mezi prvky, které nemají vliv na obraz, můžeme zařadit např. plně digitalizované audio založené na oddělených (modulárních) stopách, podporován je i formát mp3 nebo „surround sound“, tedy iluze, že zvuk přichází ze všech stran.
Od sestavení 400 přichází i nové algoritmy pro AI (Artificial Intelligence), umělou inteligenci. Dočkáme se např. botů, kteří umí i spolupracovat. Už v základu byla možnost zaznamenávat obraz pro demonstrační účely, tato funkce byla v sestavení 400 ještě vylepšena. V tomto buildu se vylepšuje i síťové kódování.