Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

S Martinem Vodákem nejen o 3D enginech

Dnešní rozhovor bude s Martinem Vodákem, programátorem, který se věnuje zejména 3D grafice, herním enginům a problematice s tím spojené.

Ahoj Martine, mohl by jsi se nám představit a říci odkud jsi a čím se nyní zabýváš?

aha, to sme už v éteru
safra safra
*nasadil umělý úsměv*
Dobrý den pane redaktore. A vy všichni co to budete číst, už teď vás i lituji.
Ano, jmenuju se Martin, jsem moravský jihočech bydlící na východě v Pardubicích. Momentálně studuji jak jinak než informatiku na FEI UPa (ale nikdo tomu neřekne jinak ne UPCE).
Kolik mi je? No už sem slyšel: "pane, na to jste starý", ale předpokládám, že to bude ještě horší. Zabejvám se spoustou věcí, ale na ně asi dojde později.

Jak školu hodnotíš, případně co jsi tam pochytil zajímavého?

No mám to trochu složitější. Je to vlastně moje druhá vysoká škola. Nemá cenu zastírat, že mě v praze vyhodili. Je to přece normální a běžné že se člověk splete a špatně si vybere. Teď jsem tam už druhým rokem a zdá se, že se mě jen tak nezbavěj. Moc nového jsem se ani neodzvěděl, neboť jsem hrdým absolventem slaboproudé elektrotechniky. Konkrétně výpočetní a automatizační techniky, takže mám už ze školy tak trochu povědomí o tom, že v počítači jsou i nějaké ty tranzistory. A že tam není jen grafická karta a procesor a že čím větší číslo před GHz, tím je lepší.

Nijak nechci znevažovat jiné školy kde se učí takzvaná informatika. Třeba na obchodní akademii to zní velmi podivně. Ostatně na VŠE také. Ovšem můj náskok oproti zbytku mizí rychleji a rychleji. Docela bych řekl, že to zajímavé mě čeká už v tomto semestru. Nu uvidíme.

Zaměřuješ se v programování zejména na oblast 3D grafiky, to není úplně obvyklé. Jak jsi se k tomu vlastně dostal?

To že to všude cpu neznamená že dělám jen to :) Jako snad každej sem chtěl mít tu svoji dokonalou a úžasnou hru. Která bude jak jinak než nejlepší na světe s těma úplně nejlepšíma možnostma, kterou budou všichni pařit. Tento cíl mám někde mezi pořízením osla a postavením svého počítače z třeba TTL logiky. Všechny moje cíle, což je docela divné, jsou pro mé okolí strašně podivné. Brzy pokaždé zjišťuju, že na ně sám nemám.

Jsi pověstný tvorbou vlastního 3D enginu, o kterém jsi dokonce napsal rozsáhlý místní seriál. Můžeš nám říci hlavní přínosy a oblasti, které tento engine řeší za programátora?

Engin mě překvapuje svou použitelností. Je sice fajn mít engin, ale pokud nebude aplikovatelný na nějaký problém, tak je k ničemu. Teď momentálně píšu ony 3 hry do soutěže Devbookátor? Ukazuje se, že celkem dobře slouží. Komponenty jsou velmi výhodné a jsou klíčem k úspěchu, ikdyž nejsou samospasitelné. Největší problém je, že komponenta nemůže mít své další komponenty. Ale i toto tabu jsem už překonal. Velmi si taky cením kolizí. Nejsou dokonalé, ale systém vše řeší za nás. Stačí jen přidat komponentu (opět komponentu) a kolem modelu se vše vypočítá, umístí a koliduje jak má.

Zatím ale neumí spoustu potřebných věcí. Chybí světla. Optimalizace. Opravdu není nutné vykreslovat všechny komponenty tedy i ty, co nejsou zrovna vidět v daném pohledu kamery. A taky nějaké efekty by se hodily. Mlha, rozmazání, depth of field a podobně. Rozhodně nejsem se psaním u konce. Dokonce bych i řekl, že nyní veškerá legrace začíná.

Jaké technologie k tvorbě enginu používáš?

Jedním slovem svoje.

Mám na mysli programovací jazyk, knihovny, algoritmy...

Bez XNA by to nešlo. Dost se inspiruju různejma věcma na internetu. Snažím se je vždy ke článkům odkazovat, aby byo zřejmé, že to není jen z mé hlavy.

Jazyk je jasný C# a vodáčkovština. Většinu věcí vymyslím těsně předtím, než du spát. Podle mě je to nejlepší doba pro přemýšlení vůbec. Když už se bavíme o takovýchto věcech, tak bych rád přidal to, že vůbec nehodlám dělat něco podle návrhových vzorů. Jednak je neznám, a ano, možná to je chyba. A stále více zjišťuji, že je používám velmi intuitivně. Všechna řešení jsou moje a ano, nejsou určitě ideální. Zato mohu říct, že jim rozumím a vím přesně co se uvnitř děje. Můžete toto říct i u návrhových vzorů? Třeba i u toho MVC? Kolik debat bylo pod článkem o tom co kam do jaké části patří. No řekl bych že dost.

Jaký máš názor na budoucnost platformy XNA po příchodu Windows 8? Často se mluví o tom, že je XNA mrtvé.

S XNA je to špatné. Ale ne nic co by se nedalo přežít. Na Windows 8 si zjevně už neškrtneme, což je dost škoda. AlE flintu do žita bych neházel. Je tu MonoGame. Není to nic jiného, než že se parta lidí sešla a píšou XNA znovu. Tentokráte ale i s podporou OpenGL a tím se otevírají nové možnosti i na mobilnách platformách. Už brzy bude stačit jeden kód aplikace pro Windows Phone, Android i pro nakouslá jablka. Budoucnost leží zdá se tady a přechod je z XNA 4 dost snadný. Zkoušel jsem bludiště ze článků na Androidu, prakticky stačilo jen udělat nový projekt a nakopírovat do něj soubory. A výsledek je vidět na obrázku.

MonoGame na Androidu - Rozhovory s českými a slovenskými vývojáři

MonoGame ale rozhodně není v současnosti úplně hotové. Chybí vytváření xnb souborů s předpřipravenými modely, texturami a zvuky.

Ale tomu může pomoci každý, stačí navštívit GitHub a poslat své změny. https://github.com/mono/MonoGame

Říkáváš "tvořte hru, ne engine" a přitom tvoříš engine :D Jak to tedy je?

To je ale podpásová otázka toto. Nicméně jsem myslel při psaní článků i na toto.

Dovolím si citovat, nápodobu s nově zvoleným prezidentem zde hledáte zcela dobře:

Nepište engine, ale hru.

Chytil jsem se také :) Nicméně abychom hru napsat mohli, nějaký základ potřebujeme a ten se pokusím v následujících dvou dílech provést.
*konec citace*

Proto, aby bylo možné tvořit hru, musíme nějaký ten engin udělat. Mít něco, od čeho se můžeme odpíchnout.

Vím, že tvůj dlouhodobý projekt je Život v Bradavicích (ŽvB), mohl bys nám o něm říci něco více?

Je docela zajímavé, jak z počátku malé náhody dokáží ovlivnit celý život. K projektu sem se dostal před pěti lety. To se psal rok 2007. Už samotný můj příchod byl podivný. Snad nejpodivnější, co tam kdy zažili. Původně jsem chtěl hrát jako hráč, ale nechtělo se mi čekat. Tak sem si řekl, že bych se mohl nějak zapojit. Programovat jsem neuměl, nebo jsem si to spíše myslel, že neuměl. Tak jsem se přihlásil na místo stavbaře. To je místo, kde se staví budovy, lokace a další věci z jednotlivých částí. Bylo mi ale řečeno, že je stavbařů moc, spíš si ale myslím, že se mu (a já teď moc dobře vím, kdo mě odmítal!) nechtělo se mnou bavit.

Nevzdal sem se. Protože hledali sKriptaře, tedy člověka, co by psal sKripty pro emulátor, který hra potřebuje. Jenže to bylo v nějakém podivném jazyce C# a já měl ve škole dva měsíce Javu. Naštěstí mi o něco zkušenější kamarád nakecal, že je to stejné jak Java. Tak jsem se přihlásil. No i na todle mě nevzali.

Nevzdal jsem se ale podruhé. Tenkrát ještě sháneli učitele. Protože v naší hře probíhá jakási výuka kouzelnických předmětů. Byl potřeba učitel Astronomie a já mám dodnes astronomii velmi rád a zajímám se o ní. Tady jsem už konkurzem proplul a do týmu se dostal. A tak se všecko rozjelo. Skriptů jsem napsal za těch pět let bezpočetně. Nyní jsem podruhé zvolen zástupcem koordinátora, ano, své čelní představitele si volíme každý rok. Můžu se tedy označit za druhého nejvýše postaveného člena projektu. I když fakticky jsem nejvýše já, protože mám přístup úplně všude :-)

Život v Bradavicích - Rozhovory s českými a slovenskými vývojáři

O čem tedy ŽvB je, kolik hráčů ho hraje a jak to v komunitě hry vypadá?

ŽvB je vlastně shard. I když shardem se nenazýváme. Shardem se rozumí herní server MMORPG multiplayerové hry Ultima Online. Není to hra zrovna nejmladší, ale za to možnosti její modifikace jsou úžasné. Nikdy mě nepřestane překvapovat co vše jde ještě udělat. Má to ale také nevýhody. S klientem není prakticky možné nic dělat, pouze mu strkat novou grafiku a mapu. Zato na servru si můžeme dovolit vše.

Počty hráčů se mění s průběhem roku. Na začátku školního roku, když posíláme dopisy (lze se do hry zapojit pouze 3x za rok), je ve hře klidně i 80 hráčů, započteme-li i obsluhu. Počet se postupně snižije jak lidé zjišťují, že hra není pro ně nebo že mají málo času. Rekord máme 104, běžně lze ve hře potkat 40 lidí. Včera bylo 61.

Komunitu máme snad dobrou. Hráči mají svého zastánce, což je jinde nevídané. Tento zmocněnec nám dává připomnky, podněty a stížnosti a my jsme povinni je vyřešit a něco s tím prostě udělat. Už jen toto podle mě dost pomáhá ke dobrému rozvoji hry.

Čili trend uživatelů je rostoucí? Jak to bude s ŽvB dál?

Ani ne uživatelů, ale hráčů. Ale jinak nezáleží na počtu, ale jejich kvalitě. Lépe se pracuje s vnímajícími dvaceti než s padesáti ignoranty. Jak už jsem ale říkal, počty jsou proměnlivé, ale konstatovat lze, že vždy příjde přibližně stejně přihlášek a dětí se ve hře objeví taky stejně. Co dál s ŽvB? Asi tvorba vlastního klienta s částečnou podporou třetího rozměru u vybraných míst :-)

U 3D grafiky je třeba hodně pokročilé matematiky. V této oblasti zrovna nevynikám, ale tuším, že velmi často pracuješ s maticemi, vektory, případně s analytikou. Kolik toho takový programátor 3D her potřebuje znát?

Ideálně všechno. XNA naštěstí obsahuje hodně metod a tříd které mají vše vestavěno :-) Takže stačí jen papír a tužka situaci si namalovat. Matematik jsem velmi slabý a přesto to jde.

Jaké máš plány do budoucna? Plánuješ se živit vývojem her nebo je to koníček?

To není vůbec jisté. Co chci dělat vůbec nevím. Ale nějak zúročit všechny ty zkušenosti by bylo asi dobré. Uvažoval sem taky, že bych zůstal ve škole, ale ještě nevím, nic není jisté a vše je relativní.

Na závěr nám ještě řekni jaké máš další zájmy :)

Jak jsem naznačil výše, mám docela rád Astronomii, ale taky čtení a sci-fi. Koukám taky na seriály kupříkladu M*A*S*H, SG-1, SGA, SGU. Řídím se taky heslem sportem ku trvalé invaliditě, což potvrzuje moje levé koleno, se kterým si prostě nejsem schopnej kleknout.

Děkuji všem co dočetli až sem a doufám, že jsem nenudil a ani příliš nepobuřoval. Všeho tam je snad tak akorát. Na shledanou příště u dalšího článku!


 

Všechny články v sekci
Rozhovory s českými a slovenskými vývojáři
Článek pro vás napsal David Hartinger
Avatar
Uživatelské hodnocení:
7 hlasů
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity