Zpravodajský portál pro moderní generaci, která se zajímá o aktuální dění.
Zajímá tě aktuální dění? Zprávy z domova i ze světa najdeš na zpravodajském webu. Čti reportáže, rozhovory i komentáře z různých oblastí. Sleduj Refresher News, pokud chceš být v obraze.
Kliknutím na tlačítko tě přesměrujeme na news.refresher.cz
2. října 2021 9:30
Čas čtení 15:43
Dominik Vetrák

Programátor z Bethesdy Adam nám vysvětlil, jak vznikají moderní hry a proč se objevují bugy a propady fps (Rozhovor)

TECH
Uložit Uložené

Zkušený programátor Adam Konrád pracoval 4 roky pro Bethesdu a Zenimax. V rozhovoru nám vyprávěl všechno, co potřebuješ vědět o herním vývoji.

Adam Konrád je zručný programátor, který pracoval v herních společnostech jako Bethesda či Escalation Studios. Pracoval i jako nezávislý programátor, kdy vyvinul vlastní hru FPSCORE, a zkusil si i moderování Game Page, přičemž rovněž psal recenze na hry.

Poslední roky strávil v Bethesdě, kde pracoval na Wolfenstein 2, Starfield či TES. V Praze vystudoval SSŠVT a PEF ČZU. Více se o něm dozvíš na jeho vlastní webové stránce.

V tomto článku si přečteš:
  • Jak vypadá práce programátora v Microsoftu a Bethesdě na titulech jako Wolfenstein, Fallout či Starfield.
  • Jak rychle se dá naučit herní programování, pokud již člověk má zkušenosti s programováním.
  • O jakých náročných věcech z hlediska programování her nemají hráči a fanoušci pojetí a proč se v hrách nachází tolik bugů a technických chyb.
  • Proč se občas dějí frameraty, když padá počet snímků zobrazených na obrazovce za jednu sekundu (fps).
  • Co je to herní engine.

Programování jsi také vystudoval. Věděl jsi už tehdy, že chceš programovat videohry?

Rozhodoval jsem se o tom už na střední. Byl jsem velký fanoušek Doom a Quake. S kámošem jsme udělali i fan stránku pro Doom, přičemž tehdy byla akorát ve vývoji trojka. Na základě toho s námi Česká televize udělala i rozhovor.

V té době jsem si přečetl knihu Masters of Doom a o začátcích id Software a vývoji Doom, díky čemuž jsem se chtěl dostat do videoherního prostředí. Pomalu jsem tedy začal pracovat na FPSCORE s Janem Modrákem. Do tohoto průmyslu se spíše dostaneš, když máš za sebou nějaké demo či hratelný projekt.

Kolik vás na FPSCORE dělalo?

Většinu z toho jsem vymyslel a udělal já. Měl jsem nastudován engine z Quake, tak jsme to s Honzou dali dohromady.

Pokud se programátor chce naučit hry, tak do roku by měl zvládnout pohovor v AAA studiu.

Sám jsi to programoval i animoval?

Ze začátku jsem to dělal sám, ale ukázalo se, že prostě nemáš čas či talent naučit se vše o herním vývoji. Díky Honzovi a jeho organizaci jsme však byli schopni dokončit to i s pomocí dalších lidí.

Na Linkedinu uvádíš, že jsi přes dva roky pracoval v České televizi jako moderátor. Co jsi tam dělal?

V ČT jsem však ještě psal recenze a moderoval Game Page.

Adam Konrád
Zdroj: Adam Konrád

FPSCORE jsi v té době programoval přes nějaký engine?

Quake 3 vyšel ve dvou vlnách. Nejprve id Software uvolnil na internet celý zdrojový kód hry, takže jsem FPSCORE začal stavět na tom. Šest let po vydání Quake 3 vydal id Software zdrojáky celého enginu, takže jsem se do něj jako programátor ponořil.

Dokázal bys nějakým jednoduchým způsobem vysvětlit, co je to ten herní engine?

Když člověk chce pracovat s počítačem, v úplném základě potřebuje na práci operační systém (například Windows). Herní engine je tomu velmi podobný. Umožňuje nám dělat věci v herním prostředí. Jednoduše dokáže zachytit ten programátorský vstup a měnit jej na výstup, tedy to, co se děje na obrazovce. Dokáže spočítat fyziku či posílat data přes síť.

Můžeme to parafrázovat tak, že když je jakýkoliv herní vývojář zedník, tak engine jsou vlastně jeho nástroje, díky kterým tu práci z technického hlediska může provést?

Ano. Pointa enginu je, že dokáže rychle vytvořit hru.

Když jsi jako programátor ten engine otevřel, bylo to pro tebe známé prostředí, nebo jsi se v něm všechno musel učit nanovo?

Já jsem v té době ani nebyl nějak velmi zručný a šikovný programátor. Všechno jsem se učil za pochodu. Nejvíce jsem se o programování naučil až během své profesionální kariéry. Ten samotný engine byl napsán v klasickém programátorském jazyce C, takže pokud v něm člověk chce něco vykouzlit, ať už to je C, C++ nebo něco jiného, musí ovládat základy toho jazyka.

V čem jsou jednotlivé herní enginy rozdílné? Umíš vysvětlit, jaký je rozdíl mezi Unreal Engine, Unity či Cry Engine?

Mám zkušenosti s Unity, Unreal Engine a různými soukromými enginy od různých firem. Velmi se liší ve stylu, jak jsou napsány, a v úrovni nástrojů. Z Unreal Engine se stal průmyslový standard, který se dá skriptovat v Blueprintu a kód můžeš napsat v C++. Unity je menší a věci se v něm dají dělat rychleji. V Unity píšeš v kódu C# a je třeba v něm dost věcí dopisovat a řešit.

Jak rychle se dá naučit pracovat v herním enginu na úrovni, že můžeš jít dělat do nějakého AAA studia? Řeč je o programátorovi, který předtím neměl s vývojem her zkušenosti.

Myslím, že velmi náročné by to nebylo, když už umí programovat. Bariéra pro vstup do her je pro zkušené programátory nízká. Pokud se programátor chce naučit hry, do roku by měl zvládnout pohovor v AAA studiu.

Čili naučit se dělat hry v případě, že už ovládám programování, je jednodušší než zvládnout samotné programování, ano? Dalo by se říci, že jde o nějakou nadstavbu?

Nadstavba je vhodné pojmenování. V herním vývoji je spousta triků a věcí, které jsou specifické pro herní vývoj, a při jiném softwaru tě to nezajímá.

Hráč může udělat ve hře něco, s čím jsme nepočítali, nebylo to odzkoušené a může mu proto spadnout i hra.

Řekněme, že máš herní engine, který je stavěn na tvorbu stříleček – FPS (First Person Shooter) a chceš vytvořit jiný typ hry, respektive vytvořit v rámci toho FPS něco, co ten engine neumožňuje, protože se specializuje na úplně jiný žánr. Co je náročnější a déle to trvá: upravit ten engine, aby tuto možnost poskytoval nebo je náročnější následně ten herní mechanismus v upraveném enginu vytvořit?

Myslím, že tvorba toho nového mechanismu v upraveném enginu bude náročnější než samotná úprava enginu. Ten mechanismus se musí dokončit a musí být funkční, aby člověk vlastně zjistil, jestli se to do hry vůbec hodí a zda to funguje tak, jak si představoval. Nejjednodušší by to bylo „nafejkovat“. Tedy, že to, co chceš, v tom enginu sice vytvoříš, ale vůbec na to nemáš ideální podmínky.

Vyzkoušej předplatné
a čti vše bez omezení
Přidej se k předplatitelům
nebo Odemkni článek přes SMS
Pošli SMS na 90211 s textem CLANEK 103525 a dočti tento článek.
Cena SMS za otevření článků je 89 Kč s DPH. Jak to funguje?
Dočti článek do konce za SMS v hodnotě 89 Kč. Jak to funguje?
POSLAT SMS
Čti články bez omezení celý měsíc – předplatné jen za 36 Kč navíc v porovnaní s jedním článkem. Jak to funguje?
POSLAT SMS
Čti bez omezení celý měsíc. Stačí poslat SMS (za 125 Kč). Jak to funguje?
POSLAT SMS

Co se dozvíš po odemknutí?

  • Jak v hrách „fejkují“ jistou situaci a mechanismy.
  • Proč vznikají bugy, přičemž často se tomu prostě při vydání hry nedá zabránit.
  • Proč občas nečekaně spadne hra nebo framerate, i když máš nejsilnější možnou konzoli a počítač.
  • Co přesně dělá programátor při vývoji hry a jak spolupracuje s animátorem.
  • Jak řeší konflikty s ostatními programátory, kteří mu chtějí upravit kód podle vlastních představ.
  • Jak funguje portování hry na jinou platformu, například z mobilů na Nintendo Switch.
  • Zda se mu snadněji vyvíjely hry pro Playstation nebo Xbox a proč.
Domů
Sdílet
Diskuse