Hlavní navigace

Bohemia Interactive představuje nový engine Enfusion. Nástroje pro tvůrce vydá zdarma

15. 12. 2021
Doba čtení: 10 minut

Sdílet

 Autor: Bohemia Interactive
Největší české herní studio je blízko vydání nového herního enginu. Tvůrci modů dostanou zdarma stejné nástroje jako samotná Bohemka.

Největší česká herní společnost Bohemia Interactive dnes oficiálně představila svůj nový engine Enfusion, na kterém bude stavět prozatím neoznámené nové hry. Enfusion navazuje na předchozí enginy Real Virtuality a Enforce a posune audiovizuální možnosti do moderní éry. Bohemka ale především plánuje uvolnit interní tvůrčí nástroje komunitě, aby mohly vznikat modifikace a další obsah.

Na Enfusionu se plně začalo pracovat před čtyřmi roky a první kroky odstartovaly v roce 2014. Začínalo se se zhruba pěti vývojáři, dnes tým v Mníšku pod Brdy, Brně a Praze čítá třicet lidí. Podle informací Lupy na vývoj doposud padlo přes sto milionů korun. Bohemka projekt označuje za jeden z nejdůležitějších za poslední dobu.

Úspěch her od Bohemia Interactive je do značné míry dán komunitou, která aktivně vyvíjí modifikace. Díky tomu se výrazně zvyšuje životnost titulů. Nebenefituje z toho pouze české studio, ale také samotní tvůrci. Fanoušci sami mohou modifikace pro Armu zpeněžovat. Bohemka nicméně primárně klade důraz na vzdělávání nových herních vývojářů, kreativitu a seberealizaci. Také populární titul DayZ původně vznikl jako modifikace pro druhý díl Army a dnes je pro Bohemku jednou ze stěžejních her, které se jen loni prodalo 1,3 milionu kopií a 759 tisíc DLC. Aktivně hru hraje přes šest milionů lidí.

Enfusion chce tento trend ještě více podpořit. „V podstatě se dá říci, že jdeme podobným směrem, jakým šla Arma 3, jakým jde DayZ, kterým se ubírá Minecraft či co stálo u zrodu platformy Roblox, tedy umožnit tvůrčí, zábavnou a naučnou činnost,“ popisuje pro Lupu Pavel Šafář, který vede tým vývojářů Enfusionu. To znamená umožnit hráčům jednoduchou tvorbu obsahu a jeho následnou distribuci mezi další fanoušky.

Sada nástrojů Workbench

Všichni zájemci tak dostanou zdarma (jako součást her) sadu nástrojů nazvanou Enfusion Workbench. „Jde o stejné nástroje, které používají naši designéři, grafici a další vývojáři,“ navazuje Šafář. Ve Workbenchi bude možné tvořit virtuální světy, vizuální efekty, konfigurovat animace postav a objektů, psát a ladit skripty ve vlastním jazyce Enforce, zapojovat audioefekty a hudbu, definovat chování umělé inteligence, ladit procedurální animace, řešit jazykové lokalizace nebo tvořit uživatelské rozhraní. Součástí je i napojení back-end Bohemky a distribuce modů pro všechny hry využívající Enfusion.

Ukázky z enginu Enfusion:

Například v případě skriptovacího jazyka Enforce dává české studio k dispozici kompletní vývojové prostředí (IDE) včetně našeptávání a dalších obvyklých funkcí. Jazyk je podobný C#. Obsahuje standardní věci, jako jsou podmínky, funkce, třídy, šablony, polymorfismus, správa paměti a tak dále. Enforce je podobný tomu, co lidé znají z Unity a dalších enginů. Bohemka tento a další nástroje píše v multiplatformní knihovně Qt.

Možnosti nástrojů pro komunitu lze ilustrovat také na práci se zvukem. Nyní už nebude nutné chodit do konfiguračních textových souborů, ale vše půjde dělat v grafickém editoru. Tam si bude možné naklikat parametry, jak se jednotlivé zvyky budou míchat dohromady, jaké herní parametry se budou zohledňovat či jak a kde se bude zvuk přehrávat.

Bohemka nový engine píše v C++ a nový render využívá DirectX 12. Shadery jsou psány v High-Level Shading Language (HLSL). Zdrojový kód a způsob jeho kompilace je popsán pomocí jazyka CMake, díky čemuž lze generovat buildovací skripty pro všechny podporované platformy.

Pro Bohemia Interactive je vlastní engine vedle možnosti zapojení komunity také strategickou záležitostí. Firma nemusí být závislá na licenčních ujednáních enginů třetích stran. Roli hrají i dlouhé časové intervaly, v rámci kterých hry od Bohemky vznikají a aktivně působí na trhu. „Když děláme hry, do kterých investujeme deset let, je představa, že Unreal například po pěti letech udělá zásadní změnu licenčních podmínek, dost hrozná,“ popsal už dříve pro Lupu šéf Bohemia Interactive Marek Španěl.

Příkladem závislosti mohou být i tvůrci Mafie Illusion Softworks. „Ti si tehdy koupili engine RenderWare, a to za na tehdejší dobu a poměry obrovské peníze. Dopadlo to fiaskem, protože RenderWare v podstatě skončil. Podobných příkladů je v historii více, třeba když Intel získal tehdy skvělou technologii Havoc,“ doplnil Španěl.

Bohemka v současné době neplánuje, že by Enfusion začala licencovat dalším herním studiím. Přesný termín vydání nástrojů Workbench a uživatelské dokumentace nebyl oznámen, stát se tak má „již brzy“. Spolu s tím vyjde hratelná ukázka.

Některé další informace v rozhovoru rozebírá Pavel Šafář:

Jak jste se k Enfusionu dopracovali?

Enfusion vnímáme jako spojení dvou dřívějších technologií Enforce a Real Virtuality. Vlastní technologie děláme přes dvacet let, začali jsme právě na Real Virtuality. V roce 2010 jsme se spojili s firmou Black Element Software, která měla vlastní engine Enforce. Na těchto základech vzniklo několik her. Doba ale šla dopředu, začaly se objevovat nové platformy a stávající technologie přestala stíhat. V roce 2014 jsme se rozhodli, že potřebujeme postavit něco nového s tím, že můžeme čerpat z našich letitých zkušeností. Engine Real Virtuality přinesl obrovské herní světy a vybudovanou komunitu kolem modování. Enforce dodal čistější architekturu enginu, snazší přenositelnost a uživatelsky přívětivější nástroje.

Proč má smysl vytvářet si vlastní engine?

Pokud chceme mít věci ve vlastních rukou, nemůžeme se smířit s ním, že nám někdo změní licenci enginu, změní podporu a tak dále. Jedna z klíčových věcí vlastního enginu je kontrola celého procesu. Dnes se například při vývoji her nakupují různé frameworky, assety, nebo dokonce celé firmy a technologie. S tím ale souvisí různé licenční podmínky, které mohou mít dopad na to, zda komunita vůbec bude moci danou texturu či model použít pro vlastní výtvor. My si můžeme vše nastavit sami. Díky tomu je poháněn rozvoj našich her.

Unreal Engine, Unity a další nevnímám jako naší konkurenci. Nechceme Enfusion vydávat a na trh říkat, ať na něm někdo dělá hry místo v Unrealu. Engine děláme primárně pro naše hry a hráče. Jde nám o to vytvářet herní pískoviště, kde komunita může dělat vlastní obsah. Je to o stupeň dál, než když se dělá „pouze“ hra, která vyjde a relativně brzy jí skončí podpora. Arma 2 a 3 jsou na trhu řadu let a stále do nich vzniká nový obsah, což je z velké části dáno komunitou a nástroji, které fanouškům dáváme. Podobné je to u DayZ.

Pavel Šafář, Bohemia Interactive
Autor: Bohemia Interactive

Pavel Šafář, Bohemia Interactive

Kolik stojí vývoj enginu?

Vyvíjet engine je samozřejmě nákladná věc. Ne pouze z finančního hlediska, ale také z pohledu lidského potenciálu, znalostí, zkušeností. Náklady doposud činily něco přes sto milionů korun a každoročně rostou. Hlavní položkou jsou lidi.

To by ale nemělo vývojáře her odradit. Vlastní engine vás může odlišit. V Česku máme úspěšné tvůrce her, kteří staví na vlastním enginu (například střílečka Hrot nebo strategické hry Mashinky, Factorio a Nebuchadnezzar – poznámka redakce). Tvorba enginu zároveň pomáhá v rozvoji českého herního prostředí. Dokáže „vychovat“ řadu vývojářů a posouvat dál konkurenceschopnost. Pokud nechceme být montovna Evropy, musíme dělat podobné technologie. Z Bohemky vzešlo několik tvůrců a firem, například tvůrce Mashinek Jan Zelený.

Vlastní engine také dává vzniknout novým herním týmům. Příkladem jsou tvůrci komunitního obsahu do Army, kteří svá díla prodávají skrze nás dalším hráčům tohoto titulu. Tohle bychom nikdy nedokázali, kdybychom vyvíjeli na licencovaném proprietárním enginu.

Hraje roli ve vývoji vlastního enginu i to, že by vás komerčně dostupné enginy v něčem omezovaly technicky?

Z Unrealu, Unity a spol. si bereme různou inspiraci. A máme ve firmě lidi, kteří s těmito nástroji mají zkušenosti, dříve je používali nebo je nasazují ve vlastních projektech. Jsme nuceni držet krok s dobou. Ale neženeme se například cestou Unreal Enginu, který velice brzy implementuje nejnovější technologie typu ray tracing. Pro nás jsou důležitější věci, jako uvěřitelný svět a volnost tvorby pro komunitu. Více než ray tracing nás zajímá, zda v naší hře můžete být se stovkou dalších hráčů, aby byla vysoká dohlednost, dobře fungující simulace nebo abychom měli husté a realistické krajiny, a ne jen pár stromečků.

Do enginu zároveň nepočítáme pouze části, které dělají rendering, snímají vstupy od hráčů, řeší simulace a podobně. Zařazujeme do toho i multiplayerovou a online část. Chceme naše budoucí hry stavět online a potřebujeme back-end, který to bude podporovat. Potřebujeme řešit lobby, seznam dedikovaných serverů, nahrávání uživatelských modů, úložiště pro synchronizaci vybavení vaší postavy na různých serverech a tak dále. Back-endové služby jsou tedy součástí Enfusionu.

Když jste si v roce 2014 řekli, že jdete dělat nový engine, co to v praxi znamenalo? Jak například proběhla mobilizace sil?

Tým, který v té době na enginu pracoval, byl velmi zaměstnán doděláváním DayZ. Byl také malý, měl asi čtyři, pět lidí. Navíc půlka pracovní doby těchto lidí byla vyčleněná na implementování renderu a skriptovacího jazyka do DayZ. DayZ vyšlo jako modifikace nad Armou 2. Ta byla postavená na DirectX 9 a my jsme prováděli převod na DirectX 11. Rozhodnutí o tvorbě nového enginu přišlo v roce 2014, ale než došlo k mobilizaci sil, chvilku to trvalo. Plné oddělení od DayZ a vytvoření samostatné větve lze datovat někdy do roku 2018. V DayZ lze vidět části Enfusionu. Je tam render, animační systém, particle efekty, skriptovací jazyk nebo postprocesing.

Začali jsme tedy zhruba v pěti lidech, dnes jsme na třiceti. Tým se neskládá pouze z hardcore programátorů samotného enginu, ale také z lidí, kteří dělají nástroje nebo zmiňovaný back-end. Zároveň máme velmi malou fluktuaci lidí.

Jaká je odborná vybavenost lidí, kteří na enginu pracují?

Jádro programátorů C++, kteří dělají engine bez back-endové části, tvoří třetina lidí s deseti- a víceletými zkušenostmi. Lead programátor Filip Doksanský je u nás patnáct let. Další polovina týmu má zkušenosti od tří do pěti let.

Vypořádáváte se nějak se starším legacy kódem?

Máme části legacy kódu, které se postupně vylepšují, aktualizují a nahrazují. Příkladem je physically based rendering. Přestali jsme používat předchozí nasvětlovací model a renderování scény a materiálů. Modernizovali jsme i kvůli tomu, že nástroje třetích stran podporují nový standard. Když si v nějaké aplikaci vytvoříte model i s texturami, chceme umožnit jeho import k nám při zachování co nejvěrnější podoby. Podobných věcí vzniká celá řada. Na druhou stranu základ enginu není něco, co by se vyhazovalo a psalo znova.

Máte v Enfusionu integrovaný i nějaký open source?

Fyzikální engine je snad jediná velká komponenta importovaná z open source frameworku, jde o Bullet. Jinak si na této úrovni vše píšeme sami. Samozřejmě používáme i drobné knihovny na úlohy typu generování práce s formáty PNG, FNT, JSON, HTTPS a tak dále.

Fyzikální engine si ale postupně výrazně vylepšujeme. Doplnili jsme například to, že detekce kolizí funguje ve více vláknech, abychom využili potenciál procesorů v dnešních počítačích. Obecně se snažíme využívat všechna jádra, která jsou k dispozici. Problémem může být to, že se snažíme být multiplatformní a že nadále chceme podporovat starší konzole Xbox One a PlayStation 4. Používáme profilovací nástroje na CPU a GPU, které nám říkají, kde využíváme potenciál hardwaru, že se jedno jádro fláká a podobně. Engine má konfiguraci job systému, který ví, kolik jader v daném stroji je a na jaká vlákna má rozhodit jednotlivé úkoly. Mimochodem, našim vývojářům záměrně nedáváme ty nejvýkonnější hardwarové komponenty, které jsou aktuálně k dispozici. Nechceme, aby byli odtržení od reality. Mají lepší střední třídu.

Kladete zvýšené nároky na procesor? Například Kingdom Come: Deliverance počítá hromadu simulací v jednom velké světě, včetně denního cyklu NPC postav. Výkonnější procesor je díky tomu dost znát.

ICTZ_2022_EARLY

Je rozdíl mezi singleplayerovou a multiplayerovou hrou. U té pro jednoho hráče musíte vše spočítat lokálně. U nás se ne všechno musí simulovat na klientovi. Chování AI simulujeme na serveru a klientovi dáváme informace.

V DayZ jsme poprvé zavedli autoritativní server. To, co vám server nepotvrdí, to se nestalo. Když vystřelíte, server vám musí potvrdit, že bylo možné vystřelit a že byl v zásobníku náboj. Když někoho trefíte, opět se to musí potvrdit. Na klientovi řekneme, že proběhla střela, vytvoříme částicový efekt a hráč vidí záblesk ze zbraně. Potvrzení přijde až poté. Tyto informace vzhledem k latenci nejsou okamžité. Proto musíte zavést interpolaci, práci si můžete ulehčit například tím, že budete simulovat hru ve fixním taktu.

Autor článku

Reportér serveru Lupa.cz, dříve redaktor deníku E15, týdeníku Euro a webu Connect.cz. O technologiích píše také do zahraničních médií.