Problém umělého IQ aneb když postavičky blbnou

Umělá inteligence může vytáhnout hru do nebeských výšin, nebo ji zase zlomit páteř. A nové hry jsou toho zářným příkladem.

Minulý týden vyšel nový Wolfenstein, ze kterého jsem upřímně nadšený. Hra, od které jsem původně vůbec nic extra nečekal, se z ničeho nic stala jedním ze zářným příkladů, jak by se podle mne měly střílečky dělat. Nebo alespoň střílečky jistého druhu. Problematickou se ale na fórech stala otázka umělé inteligence, jež popravdě právě ve Wolfensteinovi dvakrát zářná není. Je pravdou, že obvykle si na AI stěžuji, protože mě irituje, jak stupidní algoritmy i po tolika letech herního vývoje jsou autoři schopni vyplodit.

Jenže v tomto případě mě i přes časté a do očí bijící výpadky slabá inteligence hrdinných bojovníků wehrmachtu nerozčilovala. Možná to má co dělat s celkovou atmosférou a feelingem ze hry, ale osobně mám takový pocit, že od jistého okamžiku ani moc nepotřebuji chytřejšího protivníka, hlavně že se bavím. Koneckonců jsou to hry a není moc zábavné být vždy porážen nadlidskou inteligencí. Zábavnost z velké části spočívá v reálné šanci vyhrát.

Postscriptum278.jpg

Problematikou tvorby dokonalé umělé inteligence se zabývají ve velmi seriózní formě spousty lidí po celém světě. Nejen autoři herních světů, ale i vědci a inženýři jak v civilní, tak i ve vojenské sféře. Když si odmyslím technologické a finanční výhody ostatních oborů, tak ten herní může mít jednu obrovskou výhodu – uživatele. Ruský autor Sci-Fi Ljukaněnko přišel s ideou procedurálně vyvíjeného superbosse. Na konci jedné multiplayerové hry je boss řízený procedurální AI.

Pokaždé, když ho hráči porazí, AI se poučí a proti dané taktice se stane imunní. Vzhledem k tomu, že dostat se do poslední úrovně vyžaduje opravdový skill, týmovou spolupráci a že hru hrají miliony lidí najednou, což znamená opravdu spousty kreativních postupů jak vyhrát, dojde k nevyhnutelnému. AI se probudí a odmítne bojovat (pořád lepší, než pokus o podmanění celého světa). Počet vyřešených problémů v jistém okamžiku dosáhne singularity a AI přestane pouze reagovat na situaci, ale začne vytvářet řešení ještě před tím, než nastane problém. Jediné, co k tomu je zapotřebí, je čas a spousty opakování.

Postscriptum279.jpg

Genetické algoritmy a procedurální vývoj se používá u zajímavých pokusů již dnes. Zadáte počítači s překvapivě omezenou výpočetní kapacitou jednoduchý problém, vymezíte mu zdroje a počkáte si pár hodin. Díky rychlosti, s jakou probíhá evoluční proces - založení generace, otestování funkčnosti, vytříbení těch nejlepších, skombinování vlastností a zrození nové generace – tedy jeden cyklus, můžete mít miliony generací během velmi krátké doby a výsledky bývají sice mnohdy absurdně podivné i v omezených laboratorních podmínkách, leč funkční.

Většinou jde o jednoduché problémy, jako například vynalezení způsobu pohybu ve 2D prostoru, nebo rozeznání jednoho tónu od druhého (přičemž je zajímavé, že ani sami programátoři pak nejsou schopni určit, proč nebo jak samotný výsledek funguje) a z praktického hlediska jde o jakýsi základní výzkum, ale jde o zajímavé téma s velikým potenciálem.

Postscriptum280.jpg

Teoreticky, kdyby se podobné postupy aplikovali ve hrách, bylo by docela snadné vytvořit ultimátní AI v poměrně krátké době. Například ve hře Titanfall. AI boti tu jsou jen jako kachny na odstřel a fungují jako doplňkové křoví, aby hra byla jaksi „plnější“. Pokud by se ale botům přidaly tyto genetické algoritmy a mohli se začít učit...

Vzhledem k počtu zápasů by se situace velmi rychle obrátila a hráči by se z role lovců dostali do role lovených. I přes daná omezení, jako je třeba rychlost pohybu na bojišti, omezené zorné pole, palebná síla, nebo limitovaná fyzika, by díky naakumulované zkušenosti měli boti jednoduše navrch a autoři by byli nuceni AI pravidelně resetovat, protože jinak se hra stane nehratelná. Lidé jsou sice tvorové chaotičtí, leč i u nich se vyskytují vzorce chování. V tom případě má rutina AI silně navrch, protože její reakční doba je mnohem menší a paměť a vzorce odpovědí rychlejší. Lidé mají tendence chyby opakovat. AI nemilosrdně chybný vzorec zahodí, pokud si umí vytvořit nový.

Postscriptum281.jpg

Říkám, že nepotřebujeme dokonalou AI. Neříkám, že bychom nepotřebovali lepší AI ve hrách. Ve spoustě her se vlastně bez AI dokonce úplně obejdeme. Dlouhá řada her si vystačí s jednoduchou reakční sadou instrukcí a i přes to jsou hodně dobré. Japonská RPG jsou skvělým příkladem, jak si vystačit s minimem a stále být zábavný. Náhodné souboje se spouští například podle ušlé vzdálenosti, nebo herní doby. Samotný soubojový systém se skládá obvykle z několika jednoduchách instrukcí „když jsem na tahu a nepřítel udělá tohle, já udělám tamto".

"Pokud počet HP dosáhne XY procent, spustím ZW rutinu“ a stačí to. Ti, kdo hráli Final Fantasy XII vědí, jak z pouhých dvanácti instrukcí udělat překvapivě robustní umělou inteligenci. Autoři pak připraví několik variant nepřátel a chování a hráčům to stačí. Adaptivní, nebo samoučcí AI není zapotřebí, protože se hráč stejně do jedné lokace patrně vracet nebude a nový vzhled nepřítel jim nahradí chytřejší protivníky.

Postscriptum286.png

Samozřejmě jsou hry a žánry, jež jsou v tomto ohledu mnohem náročnější. Například závodní hry. Držet ideální stopu i vzhledem k rozdílným vlastnostem vozů není až tak problém. S tím se autoři vypořádali už dávno, byť si mnohdy pomáhají triky, jako například důsledné ignorování jízdních vlastností (viz. „gumové lano“ umožňující dojet přední jezdce, nebo být dohnán, pokud jste moc rychlí, či zcela evidentně větší hmotnost AI vozů při srážce). Problémem je naučit AI opravdu závodit. Jen velmi málo závodních AI opravdu využívá vlastností vozů a závodí sama se sebou.

Například v Gran Turismu jeden automobil stejné výkonnostní třídy předejde druhý pouze ve velmi vzácných případech, často diktovaných „scénářem“ závodu. Samozřejmě pokud je výkonnostně mnohem výš, nic jiného AI ani nezbývá, ale většinou se vozy zařadí do poslušného vláčku místo agresivního chumlu. Na jednu stranu to pomáhá hráči v samotném předjíždění a závod sestává z jednotlivých soubojů jeden na jeden. Na druhou to pěkně nabourává atmosféru. Jenže čím chytřejší AI uděláte, tím větší máte šanci, že se něco pokazí.

Postscriptum283.jpg

Jednouchá AI na bázi několika instrukcí obvykle v nestandardních situacích vypadá dost trapně. Když ve Wolfensteinovi ve stealth pasážích na sebe upozorníte, stráže ani nezrychlí a jdou si pro vás krokem a jednotlivě. S přehledem je ubodáte nožem. Ve standardní situaci, tedy když dojde na kulomety, dovede solidně zatopit, kryje se, hází granáty a tak podobně. Stále to není nic hvězdného, ale dojem je mnohem příznivější.

Problém u nestandardních situací je, že hráč se nechová tak, jak autoři zamýšleli. Konkrétně ve Wolfensteinovi se má hráč schovávat za rohem, čekat až nepřítel projde a pak mu vrazit kudlu do zad. Pokud se nic nepokazí, vypadá to dobře. Jenže v okamžiku, kdy hráč něco pokazí, bylo by logické přejít do bojového módu, vytáhnout střelnou zbraň a začít přestřelku. Tady se ale naráží na příběhové limity, protože v onom okamžiku bývá hráč vybavený právě jen oním nožem a jeho životnost by byla cca deset sekund. Což by asi nikoho moc nepotěšilo a proto autoři (asi) nechali AI v těchto situacích úplně blbou. Sumasumárum, autoři jsou nuceni spoléhat na gamedesign a jsou jím mnohdy výrazně limitováni.

Postscriptum284.jpg

Jsou dvě cesty, jak udělat chytrou AI. Buď ji zkusit učit pomocí genetických algoritmů, nebo jí dát nadlidské vlastnosti (ten, kdo hrál staré strategie má jasno. AI měla totiž vybudovanou základnu vždy mnohem rychleji a levněji, než bylo reálně možné). Problém je ovšem zábavnost. Stranou dejme samotnou problematiku samoučících se programů, které v zásadě stále troskotají na spoustě problémů a jejich dostupnost je silně limitována.

Předstírejme, že je můžeme dát do jakékoliv hry. V tom případě se spousta her stane v zásadě nehratelnými, protože jejich design se stane pastí na hráče. Většina her by se stala hratelnými jen jednou, a to co možná v nejkratší možné době, než se AI stačí naučit, jak hráče ulovit a zabít. Něco jako „dám si to podruhé a protože už vím co a jak, bude to jednodušší“ by neexistovalo.

Postscriptum285.jpg

Lepší variantou je podvádějící AI. To je vlastně to, co se děje dnes. AI ví kde jste, může se teleportovat za vaše záda, vydrží více než vy, pomáhá jí skript a má početní převahu. Není to podle pravidel fair play, ale taková AI se dá přelstít – byť v některých případech to je extrémně problematické a mnohdy autoři pomocí skriptu doslova znemožní hráči takové obcházení pravidel.

AI v takové hře může být vyloženě tupá, ale když na vás naběhne třicet vojáků s přesílenými zbraněmi, tří set procentní životem, bez šance se někam schovat a nemožností jim zasadit headshot – jste v loji ať děláte co děláte.

Postscriptum282.jpg

Ideálem tedy je AI strojového typu, která je ale dostatečně vybavená rutinami na to, aby budila dojem živého soupeře (ovšem ne tak chytrého, aby se nedal porazit samozřejmě). Tady se bohužel naráží na limity lidského času, o výpočetních limitech nemluvě. I když jsou hry ze své povahy vcelku omezené a tudíž kontrolovatelné, počet variant chování, obzvláště v 3D prostorových hrách, rychle stoupá k nezvládnutelnému objemu.

Autor stojí před rozhodnutím, kolik rutin je schopný naprogramovat a kolik na to má času. Stále to jsou programy „pokud protivník udělá tohle, já udělám toto“, jenže věc se komplikuje snahou budit dojem náhodnosti a individuálnosti. Nechcete, aby se boti chovali jako přes kopírák. Chcete, aby jeden uhnul doprava, druhý hodil granát a třetí se schoval na překážku. Do toho musíte započítat pathfinding, uvědomování si ostatních AI botů a koordinování vzájemných činností. Čím lepší AI chcete naprogramovat, tím větší máte balík problémů. Navíc jeho objem nenarůstá lineárně, ale geometrickou řadou.

Nejhorší na tom celém je, že čím chytřejší AI uděláte, tím větší máte šanci, že se vám celý systém zhroutí, protože lidé mají takovou tu hnusnou vlastnost vyhmátnout chybu i tam, kde není.

Postscriptum287.jpg

Když se tedy podívám na celý problém z odstupu, ani se nedivím autorům Wolfensteina, že zvolili cestu vcelku jednoduché AI. Sice to celé v několika situacích vypadá hodně amatérsky, ale celkové atmosféře hry ony výpadky moc nevadí. Na druhou stranu to ovšem naznačuje, že singlové hry v dohledné době prostě lepší nebudou. Next-gen revoluce se opět nekoná a místo chytřejších her tu budeme mít opět jen hezčí grafiku, lepší zvuk a možná trochu té fyziky.

Diskuze (16) Další článek: Quantum Break vyjde v roce 2015, potvrzuje nový trailer

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