Rozhovor o Team Factoru

Dnes pro vás máme skutečnou lahůdku, totiž rozhovor s dvěma tvůrci hry Team Factor - grafikem Petrem Šťastným a programátorem umělé inteligence Antonínem Hildebrandem. Otázky se točí kolem všeho možného, kupříkladu otázky počítačové simulace lidského mozku, hlavně ale samozřejmě kolem Team Factoru.

Protože oba hlavní protagonisté dnešního rozhovoru dlouho působili na tzv. demoscéně, jsou známí především pod svými přezdívkami. Petr Štastný se prezentuje jako Raist, Antonín pak jako Woid. První byl znásilněn grafický kouzelník Raist:

Doupě: Jaké jsou první ohlasy na demo Team Factoru?

Raist: Možná nejlepší odpověď najdeš na fórech (www.7fx.com/). Ale co se reakcí od přátel a podobně týče, jsou vcelku dost kladné. Pochvalují si atmosféru, některé vychytávky, ale samozřejmě nadávají na bugy. Je však třeba si uvědomit, že tohle je hodně beta test demo vydané pro fanoušky ve slíbený čas. Na druhou stranu, dost nám to teď pomáhá s hledáním a odstraňováním chybek.

Doupě: Na kdy chystáte druhou verzi dema a co všechno v ní najdeme nového?

Raist: To je spíš otázka na RBulla (vedoucí celého projektu Team Factor - pozn. autora), ale co vím, tak by měla být zhruba za dva týdny. Určitě se pokusíme opravit všechny chyby. Chtěli bychom přidat nejméně jednu misi. Boti by měli být určiět ještě o kus inteligentnější. Prý bude chodit internetová hra (ale podle mého spíše pro účely dalšího testování). Možná se také hráči dočkají mírného zlepšení uživatelského rozhraní.

Doupě: A tos mi krásně nahrál na další otázku - mohl by ses našim čtenářům trochu představit?

Raist: Přibližně šest let se už zabývám počítačovou grafikou, začínal jsem u postprodukce, digitálních efektů, pak jsem se dostal na dlouho k webdesignu a teď k mé nejoblíbenější činnosti patří tvorba her. U Team Factoru to znamená tvorbu grafiky, textur a hlavně grafického designu (ač mám právě u něj trochu přistřižená křídla díky tomu, že nejsem v 7fx od začátku, když se začínal navrhovat kód Team Factoru) - grafický design znamená návrh loga, uživatelského rozhraní, instalační obrázky a spousta dalších drobností.
Ale musím dodat, že v 7fx dělá každý ještě plno dalších věcí mimo svou hlavní profesi, snažíme se všemožně pomáhat a alespoň za sebe můžu říct, že tam je parta lidí, co si rozumí.

Doupě: Jak jsou kvalitní boti v TF ve srovnání s těmi v Q3A nebo UT?

Raist: Osobně moc zkušeností s boty v Q3A nemám, v UT jsou dobří. Pokud se našemu géniovi přes boty podaří optimalizovat ještě jednu část kódu, budou naši boti opravdu bezkonkurenční. A i bez té částí kódu jsou myslím hodně slušní.

Doupě: Těšil jsem se, že si TF zahraju, ale 90 MB demo na modemu jenom těžko stáhnu ;). Tak se chci čistě ze zvědavosti zeptat co na nich vlastně zabírá nejvíc? Asi textury, že?

Raist: Přesně tak, textury zabírají nejvíce. My je navíc máme ve formátu TGA, tedy v plné kvalitě. JPEG formát by byl menší, ale grafice hry by to vůbec neprospělo.

Druhá hlava ulehnuvší na popravčí špalek byl Woid:

Doupě: Mohl by ses našim čtenářům prosím nejprve krátce představit a přiblížit svůj "úděl" na TF?
 
Woid: Zdravím, jmenuji se Antonín Hildebrand. Momentálně jsem studentem 4. ročníku MFF UK. Mám za úkol vytvořit BOTy (počítačové protihráče) pro Team Factor. Jedná se o návrh rozhraní mezi BOTy a enginem hry, implementaci chování BOTů ve hře a implementaci nástroju pro vytváření dat pro BOTy.

Doupě: Jak vypadá tvorba botů? Co je nutné znát, čím se inspiruješ, jaké používaš nástroje?

Woid: Tvorba BOTů vypadá jako normální programování v C++. Akorát se u toho vic nadává, protože ladit BOTy je peklo ;) Neřeknu, co je přesně nutné znát pro tvorbu AI, protože to sám nevím. S programovaním AI totiž nemám žádné předchozí zkušenosti.

Základ je stejný jako pro jakoukoliv jinou programátorskou práci:

1. velmi dobrá znalost programovacího jazyka (v případě TF je to C++)
2. znalost datových struktur a algoritmů nad nimi, algoritmické myšlení
3. bohaté praktické zkušenosti s programováním
4. smysl pro detail a dotažení věcí do konce
5. zkušenost na předchozích projektech stejného typu

Pro programování AI bych navíc podtrhl:

1. matematické pozadí
2. zkušenost s hraním her
3. zajímavé nápady
4. trpělivost

Inspirací je jednoznačně Counter-Strike. Jsem aktivním hráčem zhruba od prosince 2000. V jistém období se to dalo nazvat závislostí. Upřímně, tady na koleji nejsem jediný, takže inspirace z hraní CS je víc než dost. Čerpám nejen z mojich vlastních zkušeností, ale také od hráčů-informatiků, kteří hrají CS Ligu. (Timto zdravím Safeera & spol.:)

BOTi do Team Factoru byli navrženi na základě zkušenosti z hraní Counter-Strike. Samozřejme, styl hraní v TF se od CS bude dost lišit, ale základ fungování BOTů je stejný. Nejvyšší úroveň logiky BOTů bude přizpůsobena hraní TF, ale jádro je nasaditelní na, troufám si tvrdit, libovolnou FPS.

TF je vyvíjen na Windows platformě s těmito hlavními nástroji:

1. Microsoft Visual C++
2. Microsoft Source Safe
3. 3DS Studio Max
4. Adobe Photoshop

Konkrétně pro tvorbu BOTů využívám MSVC a MAX. MSVC jako základní programovací nástroj v C++. Do MAX jsem naprogramoval plugin, který umožňuje pro danou mapu editovat síť kontrolních bodů. Kontrolni body vytvářejí graf, na kterém BOTi hledají cesty a po kterém se navádějí. Na síti jsou definovány waypointy, cesty, dagerpointy a další údaje, které BOT využívá při procházení mapy a boji.

Dále jsem napsal sadu utilitek, které na síti predpočítají některé doplňkové informace, aby je BOT nemusel počítat za běhu programu. Je to obdoba predpočítaného osvětlení nebo dopředného setřídění scény pro rychlejší běh u 3D enginu.

Doupě: Raist mluvil o jisté části kódu tvých botů, který, pokud se ho podaří optimalizovat, z nich udělá takříkajíc "bezkonkurenční" protivníky. Můžeš nám o tom říct něco bližšího?

Woid: Ano jistě, jedná se o zavedení funkce InstantDeath(player_name) do engine, aby BOT mohl zabíjet pouhou myšlenkou :). Ne, teď vážně. Raist občas přehání. Jedním extrémem je vševidoucí BOT, který má k dispozici většinu údajů o hře, ví, kde nepřítel je, má super rychlé míření a strefuje se výhradně do hlavy. Druhým extrémem je samoučící se BOT, který zjišťuje mapu a okolní hráče v prrůběhu hry a chová se naprosto fair. Je nutný nějaký kompromis mezi oběma přístupy. První BOT průměrného hráče nemůže dlouho bavit a druhý BOT nemá šanci běhat v reálném čase a zároveň být dostatečně "dobrý". Mým cílem je vzít z obou přístupů to vhodné a vytvořit vyvážený kompromis. Ano, přiznávám, že BOTi nebudou hrát fair-play, ale zato vás budou víc bavit :-p.

Samozřejmě platí, že BOT se nevyrovná člověku v invenci a způsobu adaptace na hru. Rozhodně si s BOTem hůř pokecáte než s kámošem. Už kvůli tomu, že BOTi neumějí mluvit. TF je multiplayerová hra a podpora BOTů je tam vlastně jako dárek pro trénovací účely a pro záchranu nevinnych lidských životů, když vám zrovna vypadne internetové spojení.
 
Doupě: Umělá inteligence je jednou z nejsložitějších a zároveň nejdůležitějších částí téměř každé počítačové hry. Jak myslíš, že se bude vyvíjet do budoucna? Bude se stále více přibližovat té "lidské"?

Woid: Částecně jsem už vývoj naznačil v minulé otázce. S rostoucím výkonem počítačů bude možné posunout AI blíže tomu druhému extrému. Blíže samoučení a automatické adaptaci. Teoreticky jsou tyto úkoly zpracovány do dostatečné hloubky. Medicína nám dala popis fungování neuronu. Matematici z něj udělali model. A programátoři tento model oživili v podobě neuronových sítí. Jen počítače jsou pořád pozadu a tyto modely nepočítají v reálném čase. Alespoň že ty polygony už umějí kreslit rychleji ;). (tak mě napadá, že se třeba někdy dočkáme přídavných AI karet ;) - pozn. autora) Neuronové sítě fungují a jejich nasazení v reálném čase je jen otázkou času.
 
Doupě: Myslíš, že je nebo někdy bude možné kompletně simulovat lidský mozek pomocí počítačových technologií? Pokud ano, jaké by k tomu byly potřeba?

Woid: Kompletně simulovat lidský mozek pomocí počítačových technologií je možné třeba už dnes večer. Stačí vám k tomu běžné PCčko a několik TB (vnější) paměti. Za několik let odsimulujete několik sekund činnosti mozku ;).

Nerad bych se pouštěl do spekulací nad tím, zda je možné vytvořit počítačový mozek pro (umělého) člověka. Zádrhel se totiž skrývá v tom slovíčku "kompletně". Simulovat činnost mozku počítačem principielně lze. Lépe řečeno, simulovat "jisté přiblížení činnosti" mozku lze. Když pominu problém výkonnosti dnešních počítačů. Hlavní problém je v tom, dodávat takovému mozku dobrá data pro učení. To znamena nasimulovat mu reakce celého těla, data všech nervů a vjemů. Promítnout jeho interakce s okolním světem do "datoví informace" a tu mu předat.

Nebudu to rozpitvávat. Chci tím jen říct, že pokud si budete trénovat mozek na virtuálníi špejli někde ve virtuální tmě, tak toho ten mozek asi moc umět nebude. Doma tohle nezkoušejte, protože je to ztráta času.

Doupě: Jak se to v současnosti má s tvým soukromým projektem PacWars? Chystáš nějaké novinky?

Woid: PacWars2 momentálně spí. Nyní je na webu k dispozici celkem stabilní verze 1.2, která už je rok stará. Mám velký rest v sítovém kódu, který po internetu běhá naprosto příšeně. Určite mám touhu k PW2 zase někdy sednout a ten síťový kód přepsat + doplnit pár dalších funkcí. PW2 dospěly do stavu, kdy už zbýva vypít jen asi 43 litrů kafe, aby se z nich stala hra na úrovni - "profi-freeware". Chce to ale celou hru obléknout do profi kabátu. Grafika, tvorba levelů, hudba a zvuk - to vše stojí čas a čas jsou peníze. Při zhodnocení všech pro a proti jsem dospěl k přesvědčení, že momentálně do PW2 tyto investice (svůj čas a svoje peníze) vkládat nebudu.

Doupě: Díky chlapci a hodně zdaru!

Odkazy:

Oficiální stránky 7fx: http://www.7fx.com
Oficiální stránky PacWars: http://pacwars2.tsx.org/

Váš názor Další článek: Nové scénáře pro Warlords Battlecry 2

Témata článku: , , , , ,