Umělá inteligence v počítačových hrách (1)

Technologie |

Herní umělá inteligence (dále AI - Artificial Intelligence) je v současné době jedním z nejbouřlivěji se rozvíjejících odvětví interaktivního zábavního průmyslu.




***pravidelné páteční „přetištění“ staršího článku

Svébytný obor, který vznikl z programování her a herního designu, se v posledních letech začíná uplatňovat dokonce i při akademickém výzkumu umělé inteligence. K čemu vůbec potřebujeme v počítačových hrách umělou inteligenci? Jakých výsledků se prozatím podařilo dosáhnout a kam se bude vývoj ubírat v budoucnosti?

Představte si tu scénu: po kilometrech skrývaní se a plížení jste se konečně prodrali k silně opevněné a velmi dobře střežené nepřátelské základně. Po důkladném průzkumu se vám nakonec přece jen podaří nalézt zranitelné místo – osamoceného strážce na jihozápadním rohu základny.

Postup je jasný: zlikvidovat strážce, bleskurychle prostřihnout ostnatý drát a jste uvnitř! Vytahujete pušku a soustředěně míříte. Výstřel. Strážce se kácí k zemi jako pytel brambor, když v tom – zpoza rohu se nečekaně vynořuje další strážce! Horečně se snažíte znovu nabít, ale je pozdě – v dalším okamžiku strážce vyvolá poplach a vaší postavě začnou ubíhat poslední vteřiny života. Čekáte neodvratný konec. Ale náhle se stane něco nepochopitelného – strážce překročí tělo svého druha a pokračuje po své hlídkové trase, jakoby se vůbec nic nestalo…

Kdo hraje počítačové hry, podobnou scénu určitě zažil. Ukazuje zároveň to nejlepší i nejhorší z umělé inteligence v současných počítačových hrách. To nejlepší, když druhý strážce hráče dokonale překvapí a vyleká. To nejhorší, když se tentýž strážce zachová naprosto „špatně“, a zcela tak rozbije iluzi realistického herního světa. Bohužel je to tak – přes obrovský vývoj počítačových her je herní umělá inteligence stále oblast, která za očekáváními hráčů vesměs silně zaostává.

Co je co?

Herní umělá inteligence (dále AI – Artificial Intelligence) je v současné době jedním z nejbouřlivěji se rozvíjejících odvětví interaktivního zábavního průmyslu. Svébytný obor, který vznikl z programování her a herního designu, se v posledních letech začíná uplatňovat dokonce i při akademickém výzkumu umělé inteligence. K čemu vůbec potřebujeme v počítačových hrách umělou inteligenci? Jakých výsledků se prozatím podařilo dosáhnout a kam se bude vývoj ubírat v budoucnosti?
Až do druhé poloviny 90. let byla umělá inteligence v počítačových hrách považována za okrajovou záležitost; herní vývojáři měli v tu dobu jinou prioritu – dokonalejší a realističtější grafiku. To se projevilo nejen ve velmi malém podílu na výkonu procesoru, který měla herní AI k dispozici, ale také ve spěchu a nekoncepčnosti, se kterými byla AI do her na poslední chvíli implementována.

Změna priorit

Situace se začala měnit až s rozmachem grafických akcelerátorů na sklonku 90. let, jejichž nasazení výrazně odlehčilo hlavnímu procesoru, a uvolnilo tak výkon pro algoritmy umělé inteligence. Standardizace 3D grafických rozhraní a licencování herních enginů pak dále vyrovnaly vizuální úroveň počítačových her.
Herní vývojáři si pomalu začali uvědomovat, že atraktivitu hry už nelze stavět pouze na realistické grafice, a zaměřili svou pozornost i na umělou inteligenci. Tento posun se projevil i v recenzích počítačových her.
Dnes v sobě herní AI zahrnuje herní programování, herní design, ale také psychologii, drama a samozřejmě akademickou AI. Od té se ale výrazně odlišuje už samotným cílem – herní AI zajímá skutečná inteligence totiž jen do té míry, do které přispívá k tomu, aby hra hráče více (a případně déle) bavila. Proto se herní AI někdy označuje také termínem zábavní inteligence (entertainment intelligence). Ač kolem toho, které ingredience činí hru zábavnou, vedou herní designéři stále dlouhé diskuse, v několika základních rysech mají přece jen jasno.
Dobrá hra představuje pro hráče výzvu – motivuje ho k tomu, aby podal co nejlepší výkon. Dobrá hra dále dokáže vyvolat ve hráči iluzi, že se vše skutečně odehrává v jiném, herním světě. Proto musí být realistická, nesmí obsahovat prvky, které by logice herního světa odporovaly a bránily hráči se do hry plně vžít (viz také text v rámečku). AI se snaží hráče přesvědčit, že postavy ve hře jsou inteligentní, autonomně jednající bytosti, a ne pevně předskriptované, bezduché loutky, neschopné vymyslet cokoliv nového a jen do kolečka opakující již známé (a proto předpověditelné a nezajímavé) vzorce chování.
Ohledně smyslu a cílů herní AI je tedy poměrně jasno. Jaké jsou ale techniky, kterými se současné hry snaží těchto cílů dosáhnout? Jak vypadá herní AI uvnitř?

Agent pod lupou

Každý hráč 3D akčních her typu Quake se už při svých toulkách virtuálními bojišti nejednou střetnul s botem, tedy inteligentním agentem nahrazujícím ve hře lidského protihráče. Ať už v roli protivníka nebo spoluhráče si dnešní boti vedou v boji velmi dobře, přestože zatím většinou nebývá problém odlišit je od živého hráče.
Základním problémem, který musí každý bot řešit, je navigace a pohyb v herním prostředí. Bot si za tímto účelem musí nejen pamatovat pozici významných prvků v herní mapě (protivník, zbraň/střelivo, vlajka nepřítele apod.), ale musí být i kdykoliv schopen najít do vybraného místa pokud možno nejkratší cestu. O to se stará tzv. pathfinding, dnes v naprosté většině her založený na algoritmu heuristického prohledávání grafu. Pro jeho efektivní nasazení je potřeba k dané úrovni nejdříve zkonstruovat tzv. navigační síť (angl. navigation mesh), tedy graf, který popisuje odkud kam je možno se v dané úrovní dostat (viz obrázek).


Navigační síť ve hře Half-life. Uzly sítě reprezentují topologicky významné body místnosti, plné hrany pak možnost přímého pohybu mezi nimi. (Zdroj: Valve Corporation).

Kromě informací týkající se pohybu může navigační síť obsahovat i speciální značky označující místa výhodná pro obranu či naopak pro číhanou na protivníka. V tomto pojetí se z navigační sítě stává komplexní „mentální“ reprezentace úrovně, kterou bot využívá nejen k navigaci, ale i k taktickým bojovým rozhodnutím. Aby se dosáhlo její maximální optimalizace, je navigační síť často konstruována přímo designéry úrovní.
Manuální konstrukce navigační sítě má ale některé významné nevýhody. Kromě zřejmé pracnosti je to především neschopnost reagovat na dynamické změny prostředí v průběhu hry (prorážení zdí, zasypání chodeb, zhroucení mostů…). V poslední době se proto objevuje snaha tvořit navigační síť automaticky pomocí nástrojů umělé inteligence, což však představuje nelehký úkol.

Řídicí systém

Zatímco navigaci lze považovat za podpůrný systém, skutečným mozkem bota je jeho řídicí systém. Na základě aktuálního stavu bota, jeho záměrů a situace v nejbližším okolí volí akce, které bot v příštích okamžicích provede. Tyto akce lze většinou rozdělit do několika úrovní – hovoříme proto o hierarchickém řídicím systému. Na nejvyšší úrovni jsou akce, které se váží k dlouhodobějším a strategičtějším rozhodnutím – bot si (ve hře určitého typu) může vybrat, zda bude prozkoumávat aktuální úroveň, doplňovat střelivo, útočit či naopak ustupovat z boje. O úroveň níž bot rozhoduje např. o tom, kterým směrem se v mapě při svém průzkumu vydá, na jaký konkrétní cíl zaútočí a jakou přitom použije zbraň. Nejnižší úroveň se pak týká konkrétních atomických úkonů, tj. např. kdy vystřelit, kam zamířit, kudy uhnout střele protivníka apod.
Zdaleka nejčastějším způsobem implementace řídicího systému je určitá obdoba tzv. hierarchického stavového automatu. Základní myšlenka konečných stavových automatů je velmi jednoduchá, navíc jsou výpočetně velmi efektivní. Problémy ovšem nastávají při jejich realizaci, která má obvykle podobu kódu v běžném procedurálním jazyce, nejčastěji přímo v C++. Takto implementovaný stavový automat se totiž při větším počtu stavů a stavových přechodů rychle stává nepřehledným, obtížně rozšířitelným a testovatelným. Další nevýhodou jsou jeho omezené schopnosti adaptace a plánování.
Sílí proto poptávka jednak po specializovaných nástrojích pro implementaci stavových automatů, jednak po jiných způsobech realizace řídicího systému. Slibnou alternativou, rozvíjenou především na akademické půdě, jsou v současné době tzv. plavidlové systémy, v delším horizontu pak i systémy pro cílově orientované dynamické plánování.

Učenliví titáni

Jestliže s herními boty se hráč setká velmi často, umělá inteligence ve hře Black & White (Lionhead Studios, 2001) zůstává dodnes výjimečným počinem. Black&White je od základů postavena na schopnosti herních postav učit se, a je proto často považována z pohledu AI za nejinovativnější hru vůbec.
Hráč do hry Black & White vstupuje jako bůh, kterému je přidělen titán – nadpozemsky velké zvíře, případně jiné monstrum – prostřednictvím kterého pak hráč hru hraje. Titán nečeká pouze na příkazy hráče, ale jedná také samostatně jako autonomní bytost mající své potřeby, přání a zvyklosti – svou osobnost.
Největším lákadlem Black&White je možnost titánovu osobnost zásadním způsobem formovat. Některé osobnostní rysy jsou sice titánovi dány do vínku (tygr je agresivnější, kráva mírumilovná, opice učenlivá), ale jeho výsledné chování závisí především na tom, jak si ho hráč vychová. Kromě přímých rozkazů hráče a jeho zpětné vazby (trest nebo odměna), se titán dokáže zdokonalovat i z pozorování ostatních postav herního světa a z vlastního průzkumu prostředí.
Základem titánovy tvárnosti je jeho schopnost učit se, která ze svých přání se má snažit v které situaci splnit a jakým způsobem. Vzhledem k různým způsobům učení v Black & White zvolili autoři i několik různých modelů reprezentace znalostí. Fakta o jednotlivých objektech (řeka, vesničan apod.) jsou reprezentovány jednoduchým seznamem atributů. Znalost o tom, jak jsou které předměty vhodné k uspokojování titánových potřeb, je reprezentována pomocí rozhodovacích a regresních stromů (tj. např. jakékoliv zvíře hlad ukojí, kámen nikoliv).
Závislost mezi stavem agenta a jeho přáními je pak reprezentována pomocí umělé neuronové sítě. Lze tak mít titána, který začne hledat kořist, až když má opravdu velký hlad, a naopak titána, který žere pořád, obzvlášť je-li v depresi. Zásadní je, že tyto reprezentace jsou vytvářeny a dále modifikovány dynamicky až během hry pomocí algoritmů strojového učení. Využití těchto metod propůjčuje Black & White na poměry počítačových her nevídanou míru adaptivnosti. Díky ní má hráč nezřídka pocit, že titán dokáže vycítit a provést, co si hráč přeje, aniž by mu to muselo být explicitně přikázáno.
Není bez zajímavosti, že AI architektura titána vychází z tzv. Belief-Desire-Intention (Domněnka-Přání-Záměr), modelu používaného ve výzkumu a implementaci inteligentních agentů. Black & White lze proto považovat za ukázku, jak může vhodné použití technik akademické AI vést nejen ke kvalitativnímu skoku v herní AI, ale dokonce i k novému hernímu konceptu.

Využití metod strojového učení ve hře Black&White. Regresní strom titána je konstruován až za běhu hry na základě interakce titána s hráčem a herním prostředím.

Druhý díl
http://www.scienceworld.cz/sw.nsf/ID/77BBB33A0476FAA9C1256EB5004DF919?OpenDocument&cast=1











Komentáře

Napsat vlastní komentář

Pro přidání příspěvku do diskuze se prosím přihlašte v pravém horním rohu, nebo se prosím nejprve registrujte.