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

Herní umělá inteligence (dále AI, Artificial Intelligence) je v současné době jedním z nejbouřlivěji se rozvíjejíc...


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é "Klady a zápory herní AI" na této stránce). 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 (zkráceno ze slova robot), 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
na této straně).
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 elementární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 ve 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.

Vývojové nástroje
Přes nesporný pokrok v posledních letech, jehož výsledkem jsou hry typu Black &
White, Half-Life a Thief, je herní AI stále velmi nedokonalá. Bývá jí vyčítána
předvídatelnost, repetitivnost, nerealističnost nebo jednoduše stupidita. Kromě
nedostatku zkušených a fundovaných herních AI vývojářů je často zmiňovanou
příčinou tohoto stavu neexistence knihoven a nástrojů, které by herní
programátory zbavily nutnosti stále dokola zdlouhavě implementovat základní
algoritmy AI a umožnily jim soustředit se na design vlastního inteligentního
chování herních postav.
Situace se ale mění a na trhu se už první takové knihovny objevily. Označují se
jako AI middleware a jedná se de facto o obdobu 3D grafických knihoven pro
oblast herní AI. Tvůrci a propagátoři AI middlewaru si od jeho nasazení slibují
nejen výrazné zkvalitnění herní AI, ale také snížení nákladů na její tvorbu. To
však bude ještě pár let trvat umělá inteligence se napříč herními žánry a často
i mezi jednotlivými hrami dost liší (více než např. 3D grafika), a nebude proto
jednoduché vytvořit univerzální knihovnu, která by tuto různorodost dokázala
obsáhnout.
V této souvislosti nelze opomenout standardizační snahy mezinárodní asociace
herních vývojářů IGDA (International Game Developers Association,
www.igda.org), jejímž cílem je navrhnout standardní rozhraní mezi herním kódem
a algoritmy AI. To by mělo podpořit rozvoj AI middlewaru a v delším horizontu i
vývoj speciálního AI hardwaru. První náznaky možnosti vytvoření speciální
hardwarové akcelerace pro pathfinding a analýzu terénu se objevily na letošní
Game Developers Conference (www.gdconf.com; v roce 2004 akce proběhla v
kalifornském San Jose), kde byla prezentována první betaverze herních standardů.

Co bude dál?
Jaká tedy bude herní AI budoucnosti? Především bude schopna učit se, ať už ze
svých vlastních "zkušeností" nebo z hráčových postupů, a výrazně tak omezí
možnost opakovaného využívaní stejné strategie ze strany hráče. Hra si bude
vytvářet model zachycující herní styl a preference hráče a tomuto modelu pak
přizpůsobí svůj průběh tak, aby hráče ještě více bavila. Použití technik cílově
orientovaného plánování umožní herní AI realizovat komplexní strategie šité na
míru aktuální herní situaci.
Umělá inteligence začne hrát významnou roli i jako hráčův asistent. Dokáže
hráči poradit, nebude-li vědět jak dál nebo bude-li se chtít ve hře dále
zdokonalit. Adaptivní uživatelské rozhraní bude schopno předvídat úmysly hráče
a ulehčí mu od nutných rutinních činností, které se i dnes ve hrách vyskytují.
Ve větší míře bude využívána komunikace hlasem. Herní postavy budou vybaveny
moduly pro komunikaci v přirozeném jazyce, což nahradí monotónní
předskriptované dialogy volnou komunikací. Bouřlivý rozvoj zřejmě čeká metody
reprezentace nelineárních příběhů a tzv. adaptivního vyprávění.
Ač by se mohlo zdát, že se jedná o hudbou vzdálené budoucnosti, velká většina
těchto technologií už byla v určité míře použita i v existujících hrách. V
nejbližších letech se proto nejspíš máme na co těšit.
Rozvine-li se spolupráce mezi herními vývojáři a akademickou sférou a podaří-li
se realizovat ideu standardizace a AI middlewaru, není daleko doba, kdy nebude
možno rozeznat, zda určitou postavu řídí biologický nebo digitální mozek. Až se
tak stane, nejenže budou počítačové hry opět dokonalejší, ale svému cíli bude
blíž i výzkum umělé inteligence jako takové.

Klady a zápory herní AI
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 začnou
ubíhat poslední vteřiny vašeho ž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 představuje herní umělá inteligence stále oblast, která za očekáváními
hráčů vesměs silně zaostává.

Výzkum hrou
Zatímco dosud to byla herní AI, která hledala inspiraci v akademické AI, do
budoucna se situace může obrátit. I mezi seriózními badateli v akademické sféře
totiž sílí názor, že počítačové hry představují ideální experimentální
prostředí pro výzkum samotné umělé inteligence.
Herní prostředí se dnes svojí složitostí přibližují realitě, a umožňují proto
nejen velmi dobře prověřit jednotlivé techniky umělé inteligence, ale také
schopnost tyto techniky integrovat do kooperujícího celku což představuje
zásadní problém, kterému je ve výzkumu akademické AI věnována stále větší
pozornost. Na rozdíl od reality lze ale složitost herních světů dle libosti
zmenšovat. Je proto možné nejprve vyvinout inteligentní systém, který se
vypořádá s jednodušším herním světem, a pak postupně složitost světa i úroveň
inteligence zvyšovat.
Počítačové hry v tomto pojetí mohou vystupovat jako "inkubátory" inteligentních
agentů. V momentě, kdy inteligence takto vyvíjených agentů dosáhne dostatečné
úrovně, mohou být zkonstruovány jako fyzické roboty a použity v reálném
prostředí. Že to není vize příliš vzdálená ukazuje i příklad Gerstnerovy
laboratoře na Elektrotechnické fakultě ČVUT, kde grafický engine CrystalSpace3D
určený primárně pro tvorbu počítačových her nachází uplatnění i při výzkumu
multiagentních systémů (viz obrázek na následující straně). Velmi populární je
také robotický fotbal, ať už ve své fyzické či simulované variantě, a v
poslední době začínají dokonce vznikat tzv. mody (neboli modifikace) úspěšných
her (Quake, Unreal Tournmanet) upravené pro potřeby výzkumu v akademické AI.

Informace na internetu
www.gameai.com
Články týkající se technik používaných v herní AI, popisy her zajímavých z
hlediska herní AI, odkazy na knihovny implementující techniky herní AI.
ai-depot.com
AI srozumitelně. Tutoriály, diskuse a odkazy na vše, co se týká nejen herní AI.
www.igda.org/ai/
IGDA Artificial Intelligence Special Interest Group koordinátor standardů herní
AI.
bots-united.com
Vše o programování herních botů.
www.renderware.com
Přední výrobce herního middleware zahrnujícího grafický, fyzikální i AI engine.
robocode.alphaworks.ibm.com
Škola hrou. Výuka Javy realizovaná přes programování inteligentních herních
robotů.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.