Jamesove stránky

Umělá inteligence v PC hrách

Umělá inteligence v PC hrách

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.

Knihovny a 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,
http://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 (http://www.gdconf.com; v roce 2004 akce proběhla v kalifornském San Jose), kde byla prezentována první betaverze herních standardů.

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 seriozní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žňuji 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).


Herní prostředí dnes nacházejí využití i při akademickém výzkumu AI. Na obrázku 3D vizualizace experimentu s multiagentním systémem v Gerstnerově laboratoři FEL ČVUT.

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 úspěšných her (Quake, Unreal Tournmanet) upravené pro potřeby výzkumu v akademické AI.

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.

 

 
Dekuji že jste navštívili mé stránky. Těším se na Vaši další návštěvu.