Filip Sádovský: O vývoji multiplayeru a budoucnosti herních enginů | robot_dreams Czech
should_authorize_via_email
email.input_code tel.input_code
 
email.code_actual_for tel.code_actual_for
apply_exit_text
session_ended
to_homepage
Filip Sádovský: O vývoji multiplayeru a budoucnosti herních enginů

Filip Sádovský: O vývoji multiplayeru a budoucnosti herních enginů

„Godot vidím v současné době jako jednoho z největších konkurentů Unity pro menší hry,“ říká zkušený programátor ze studia SCS Software.

Vývoj her není jen o grafice nebo příběhu – za každou hrou stojí propracovaná technologie a spousta kreativních rozhodnutí. Filip Sádovský, senior programátor s víc než 12 lety zkušeností nám přiblížil svůj pohled na vývoj her. Mezi nejznámější tituly, na kterých dělal, patří Euro Truck Simulator 2, American Truck Simulator a Arma 3.

V rozhovoru se dozvíš, s jakými výzvami se potýká při práci s herními enginy, jak vnímá budoucnost pro herní nástroje jako Godot nebo jak se staví k vývoji vlastního herního projektu. Pokud tě zajímá zákulisí vývoje her a chceš rady pro začátečníky, tenhle rozhovor si rozhodně nenech ujít!

Prozradíš nám, jak ses dostal k vývoji her a co tě na té práci nejvíc baví?

Na vysoké jsme měli předmět tvorby počítačových her. Tehdy ještě víc technicky než designérsky zaměřeným směrem. Tam jsem objevil, jak moc zajímavé to je.

Baví mě pak nejvíc kreativita za každým rozhodnutím, a i když je vše velmi náročné, umožňuje mi to dostat se tematicky k věcem ke kterým bych se jinak nedostal. Aneb když chci programovat letadlo, musím aspoň trochu pochopit jak funguje.

Povíš nám, co stojí za vývojem tvého vlastního herního enginu VoxelEngine a proč vznikl?

Nemyslím že jde o něco extra zajímavého. Ve firmě máme takový running joke že každý game programátor si někdy v životě zkoušel napsat vlastní engine. U mě byl hlavní důvod, že jsem chtěl udělat vlastní hru a baví mě víc technika za tím než samotná grafika. (smích)

Podílel ses na implementaci multiplayeru pro American Truck Simulator a Euro Truck Simulator 2, jaké výzvy s tím v rámci vývoje byly spojené?

Celá implementace byla výzva. Dopisovat do hry multiplayer zpětně je celkově velmi náročné a když jde navíc o tzv „in-house“ engine, který multiplayer nikdy neviděl ani z rychlíku, je to o to složitější. Je potřeba napsat vše hezky až po vlastní posílání jedniček a nul.

Jak vnímáš vývoj her z pohledu multiplatformních enginů a jsou s tím spojené nějaké komplikace?

Vlastně na tom nevidím nic složitého. Jde spíš o časovou náročnost a dobrou architekturu. Aby bylo možné rozumně řešit různé drobné či větší rozdíly v tom, jaké mají jednotlivé platformy požadavky.

Jak se díváš na budoucnost herních enginů jako Godot a jejich konkurenci, například Unity?

Godot vidím v současné době jako jednoho z největších konkurentů Unity pro menší hry. Pro velké AAA hry má celkem slušný „monopol“ Unreal engine. Nicméně u menších studií bylo často volbou právě Unity, které v posledních letech dělá, mám pocit, všechno pro to, aby od něj vývojáři utekli. Hlavní výhodou a lákadlem Godotu je pak přístupnost pro nové vývojáře i veliká škálovatelnost do budoucna.

Fakt že, je open source je pak už jen taková třešnička na dortu, která lidem dává jistotu, že když ho jednou přerostou, mohou si ho vždy vzít za svůj a přizpůsobit. Z mého pohledu i z různých statistik používaných engines na game jams Godot viditelně rychle roste a věřím, že pokud Unity nepředběhne během 5 let, minimálně se vedle něj postaví jako hrdá a samostatná platforma, podobně jako Blender stojí vedle profesionálních a zavedených 3D nástrojů.

Jaké programovací jazyky považuješ za nejdůležitější v dnešním herním vývoji?

To je trochu tricky otázka. Zeptal bych se zpět. Pro koho? Game designér / scripter bude mít jiné znalosti a potřeby než herní či engine programátor. Pod vším dole stále stojí a dlouho stát bude C++. Ten je ale složitý a vyžaduje hluboké znalosti sahající ideálně až do x86 assembly jazyka. Naopak na opačné straně nahoře budou různé blueprint systémy a scriptovací jazyky, jako je GDScript nebo Lua. Někde na půl cesty je pak C#.

Z mého pohledu není ani tak důležitý konkrétní jazyk, ale spíš dobrá znalost programovacích konceptů a principů. Jazyk je už jen jiný slovníček, který se bude stejně různit podle použitého engine a tedy jeho API. Tohle je další výhoda Godotu, mimochodem. Pro high level má Python/Lua like jazyk GDScript.

Když potřebuje někdo větší výkon nebo lepší nástroje, podporuje C#, a jakmile chcete jít super na dřeň, abych tak řekl, vlezete do C++ nebo třeba Rustu a uděláte si kompletně nový „plug and play“ modul. 

Jaké jsou podle tebe nejdůležitější kroky při vytváření herní logiky pomocí GDScriptu?

Používat typování, organizovat od začátku vše raději do menších bloků. Ale pak to zase není nic specifického pro GDScript a jde o naučený skill po tom, co si 100× naběhnete na vlastní blbost. (smích)

Jaký projekt bys doporučil začátečníkům, kteří chtějí vyzkoušet tvorbu vlastních herních projektů?

Hlavně ať si vyberou něco, co je bude bavit. Najděte si hru, ideálně 2D pro začátek, která se vám líbí a něco vás na ní štve, a zkuste si napsat její klon, kde ty věci vyřešíte. Strašně důležitá je motivace. Tvorba her je časově velice náročná a přijít tak o motivaci se k projektu vracet je velmi snadné.

Co bys poradil někomu, kdo sní o vytvoření vlastní hry, ale neví, kde začít?

Otevřete si jakýkoli game engine. Raději takový, který používají indie vývojáři, protože bude pro jednotlivce snažší. Otevřete si dokumentaci k danému engine a hezky stránku po stránce se ho držte. Většinou obsahují vše od rozběhnutí engine až po nějaký example projekt, na kterém se naučíte koncepty, s jakými engine pracuje. Pak už je to jen o tom vymyslet si nějaký malý projektík.

Vezměte si jako příklad nějakou starou 8bitovou hru z dob Game Boy, jako je třeba stará Zelda, Tetris, první Mario, a takovou hru si zkuste napsat sami. Najděte k tomu pravděpodobně hotové assety (obrázky). Je to tak malá hra, že s dnešním výkonem bude skoro jedno, jak moc velké „blbosti“ tam při implementaci uděláš a na konci budete mít něco svého, na čem budete moct pokračovat. Svého času jsem měl spolužáka, který takhle předělal Maria a udělal mu vlastně reskin do Pokémonů. Začněte u toho.

Řekneš nám něco o svých oblíbených nástrojích, které používáš při vývoji her?

To by bylo asi na hodně dlouho, ale rád se podělím o jejich seznam: 

• TexturePacker – balení textur do atlasů
• Aseprite – pixel art, drobné ikony
• Blender – 3D modely
• Visual Studio Code – programování
• Sublime Merge – source control pro Git
• Gimp – různé 2D editace, efektivně free náhrada za Photoshop
• Inkscape – tvorba vektorové grafiky
• Tilesetter – příprava a práce s tilemapami

A pravděpodobně jsem vynechal mnoho dalších, na které si z hlavy nevzpomenu. (smích)

Jak vnímáš hraní her na mobilních zařízeních, jako jsou výkonné smartphony či VR headsety?

Za mě jsme v úžasné době, kdy v kapse mohu mít reálně herní konzoli (iPhone 15 PRO), na které si pustím AAA hry jako Death Stranding, Resident Evil, Assasins creed a další. Problém těch trhů je nicméně neochota hráčů za takové hry i platit AAA ceny. Výsledkem je z mého pohledu velmi náročný vývoj srovnatelný s AAA hrami, ale s minimálním potenciálem prodeje.

Místo toho se tak zvlášť na mobilním trhu vývojáři zaměřují na casino-like praktiky v rádoby free to play hrách, které jsou prázdné, a staví čistě na snaze z lidí ty premium peníze dostat psychologickými triky. To si nemyslím, že je dobře, hry se pak redukují na hru čísel a tabulek, ze kterých se pro většinu lidí vytrácí zábava.

Je to trochu problém slepice a vejce. AAA vývojáři do toho nechtějí cpát peníze, protože riziko mnohamilionových ztrát je velké, a hráči nechtějí platit za hry, protože tam zajímavé a velké moc nejsou.

Kam se podle tebe herní odvětví bude ubírat v následujících letech?

Myslím, že na to se prvně musím podívat trochu zpět. V nějaký moment se z vášně několika málo lidí staly veliké společnosti, které začalo být složité řídit a pro ně nebezpečné brát na sebe riziko testování nových věcí. Přeci jen u firmy, která má několik set lidí, si nemůžete dovolit vsadit jejich životy na to, že nějaký nápad bude mít úspěch, a když ne, všichni skončí na dlažbě. Tím se trochu vytratila originalita.

Další krok byla nutnost to množství lidí nějak odměnit. Takže se hledaly metriky, jak vlastně porovnat kvalitu hry nebo práce jednotlivců. Mnoho firem přišlo s velmi dobře sledovatelnou metrikou a tou je zisk z projektu. A tak se z neoriginálních her staly mnohdy trochu stroje na peníze. Za co nejméně změn co nejvíc prodejů.

Objevila se nám různá DLC se skiny apod. A my hráči jsme to kupovali, takže proč by nám to firmy nenabízely, že? Long story short: hry jsou čím dál dražší na vývoj a je čím dál složitější hráče uspokojit. Kdybych si tak měl zkusit zahrát trochu na věštce – ceny her půjdou nahoru nebo jejich kvalita/délka dolů.

Jediná další cesta je větší zapojení AI a tím pádem snížení časové náročnosti tvorby, což ale nevidím jako cestu zpět k originalitě a opravdu novým hrám. Úkolem hráčů pak bude dávat najevo, že si cení víc nových zážitků než další kopie 3 předchozích kopií life services hry jako například letošní Concord.

Nakonec rozhodujeme ultimátně my – našimi peněženkami. To je krása kapitalismu. Koneční zákazníci mají vždy to největší slovo. Jen někdy chvíli trvá, než jsou slyšet. Doufal bych, že se začínáme v tomto směru probouzet a že se hry sice zdraží, ale vrátí se do nich originalita, která nás kdysi tolik očarovala.

Jak podle tebe ovlivní generativní umělá inteligence vývoj herních dialogů hráče s NPC?

Myslím si, že minimálně. AI je extrémně výpočetně náročná disciplína a z mého pohledu je to tak neslučitelné s druhou tak extrémně náročnou aplikací, jako je hra. Umím si představit její zapojení ve fázi „pre-procesu“, tedy nějaké formy přípravy dialogů předem. Otázkou je, zda takové masy relativně generického textu chceme. Já si asi vždy budu víc cenit dobře napsaného krátkého příběhu než hromad opakujícího se bezduchého textu.

V závěru by nás zajímalo, který herní titul vyhlížíš, až vyjde, a jak vnímáš vývojáře stojící za touto hrou?

Za mě z posledních let opravdu maximálně vykukují snad jen 2 herní série. Horizon (Zero dawn, Forbidden West) a Zelda (Breath of the wild, Tears of Kingdom). Konkrétně u Horizon čekám jako malé dítě před Vánoci na 3. díl, který by měl završit trilogii, a studio Guerrilla Games, které za celou sérií stojí, je krásný příklad toho, co jsem zmiňoval, že mi poslední roky na hrách velice chybí. Originalita…

Horizon Zero Dawn přišel s naprosto unikátním světem, příběhem i gameplay náplní (vč DLC obsahů) a já nemůžu než vývojářům tleskat vestoje, protože to dokázali navíc zabalit do krásné grafiky (kterou osobně nepovažuji za to hlavní u her). Doufám, že si udrží svou vášeň a přinesou nám víc tak krásně unikátních světů.

Autor: Martin Šlat

Více článků
„Nakrmte AI informacemi a daty. Pak se budete divit, co dokáže,“ tvrdí Michal Novotný, freelancer v oblasti marketingu, AI a obchodu
Nová generace asistentky ukončí éru manuálního zadávání dat