Elizabeth jako inteligentní parťák v Bioshock Infinite
zdroj: tisková zpráva

Elizabeth jako inteligentní parťák v Bioshock Infinite

20. 3. 2014 17:00 | Téma | autor: Martin Bach |

Ačkoliv tomu jeho jméno úplně nenasvědčuje, John Abercombie kupodivu nemá nic společného s panem Fitchem. Věnuje se totiž něčemu mnohem složitějšímu, než je výroba triček s obrovským logem – jako hlavní programátor Irrational Games se významnou měrou podílel na technické stránce Bioshocku Infinite a posledních 8 měsíců vývoje vedl tým, který vyvářel a ladil umělou inteligenci vaší společnice ve hře, oblíbené Elizabeth.

Na Game Developers Conference se John podělil o poznatky, které si z plnění tohoto úkolu odnesl. „Vytvoření AI pro postavu, která měla ve hře tak zásadní roli, byla obrovská výzva a šlo o jeden z nejnáročnějších úkolů, jaký jsme v Irrational kdy řešili,“ prohlásil hned na začátku John a po vyslechnutí problémů a jejich řešení, se tomto tvrzení vůbec nedivíme.

Všechno na očích

Hlavním principem, na který se snažili vývojáři celou dobu myslet, byla zásada, že co nejvíce věcí se musí odehrát před očima hráče. „Hráč musí celou dobu chápat, co se kolem něj děje, a to není možné bez toho, že vše sám uvidí.“ Později se sice ukázalo, že z tohoto dogmatu je nutné v některých případech vycouvat, protože ničilo přirozený dojem ze hry, v zásadě se jej ale tvůrci snažili dodržovat. „Nad umělou inteligencí se dá přemýšlet jako nad divadlem – programátor musí řešit podobné věci, jako režisér a scénograf v divadle – ať už jde o gesta, proklamace, řeč těla a nebo pohyb obecně,“ říká John.

Základním prvkem umělé inteligence Elizabeth byl samozřejmě její pohyb po scéně. „V otevřeném světě jsme nemohli využít čistého skriptování, takže jsme okamžitě přešli k druhé možnosti, která je ve hrách často využívaná – tedy, že parťák prostě jen následuje hlavní postavu,“ vysvětloval John, zatímco na projekci vedle něj zářil obrázek Alyx z Half-Life 2, jako příklad takového řešení. Parťák-následovník má ale několik zásadních nevýhod – jednak jej většinu hry nevidíte, což porušuje pravidlo, které si Irrational na začátku dali, a za druhé nastávají potíže s interakcí. „Chtěli jsme, aby hráč s Elizabeth často mluvil, což by znamenalo, že by se musel neustále otáčet a hledat ji, a to nepůsobilo moc přirozeně.“ Celou situaci nám pak John ukazuje na ukázce z jedné rané verze hry, kdy Elizabeth Bookera pouze následuje – na první pohled je patrné, že nejde o ideální řešení – Elizabeth se nepřirozeně otáčí a mění směr, naráží do hrdiny, když se neočekávaně zastavíte a podobně.

...

Víme, co uděláš

Bylo tedy jasné, že obyčejné následování nebude pro potřeby Bioshock Infinite stačit a lidé z Irrational se proto rozhodli jít jinou cestou. „Vytvořili jsme základy systému, který se snažit předvídat, kam se hráč bude pohybovat a na to místo posílal Elizabeth,“ řekl John a na ukázku nám pustil další video, ve kterém je tento systém převeden do praxe. Díky zapnutému debug módu vidíme barevné čáry, které naznačují trasu, kterou se podle AI bude hráč nejspíše pohybovat dál a Elizabeth tak může klidně pobíhat i před hrdinou, aniž by se ztratila. Přestože je výsledek znatelně lepší, než v případě sledování, nepůsobí stále moc přirozeně. A teprve tehdy na to John a jeho tým kápli. Použili přitom, možná trochu překvapivě, systém známý každému, kdo kdy hrál fotbal. Pokud vám trenéři v žácích neustále kladli na srdce, že při bránění si musíte neustále hlídat, abyste se pohybovali mezi míčem a bránou, víte zhruba o čem je řeč.

V konkrétním případě Bioshock Infinite to funguje tak, že hra neustále sleduje, kam hráč míří a mění podle toho případné cílové body. Elizabeth je pak naprogramována tak, aby se pohybovala v určité vzdálenosti od pomyslné linky, která vzniká mezi hráčem a jeho cílem. Hlavní výhodou oproti předchozímu modelu je to, že Elizabeth nereaguje na každý pohyb hráče, ale drží se přirozeně na místech, kde by jí člověk hledal. Jedinou výjimku z tohoto pravidla museli Irrational udělat ve chvílích, kdy Booker začne divoce přeskakovat po střechách nebo se pohybovat po kolejnicích – v takovém případě se Elizabeth vždy „teleportuje“ na místo, které je blízko hráči, ale které není z jeho pohledu vidět. Proto je neustále někde „za rohem“, připravená k dalšímu postupu.

Zvětšit zdroj: tisková zpráva

Objevování světa

Samotný pohyb byl tedy vyřešen, Irrational ale zároveň chtěli vytvořit Elizabeth tak, aby náležitě reagovala na okolní prostředí a byla hlavnímu hrdinovi skutečným partnerem, ne pouze jeho přívěskem. „Chtěli jsme, aby se dívala na věci, které jí zajímají v rámci aktuálního dění ve hře, ať už mělo jít jen o něco vizuálně zajímavého nebo o objekty signalizující nebezpečí,“ řekl John. Vývojáři proto vytvořili systém, který po celé Columbii automaticky rozmístil neviditelné značky na důležitá místa. Stanovili zároveň kritéria, podle kterých se Elizabeth nemohla dívat na jedno místo příliš dlouhou dobu nebo civět na předmět, který je od ní tak daleko, že by jí nemohl zaujmout. Podstatnou roli přitom hrálo také vrstvení těchto značek (naznačovalo důležitost předmětu) a možnost nasázet na jeden předmět více takových bodů – Elizabeth tak nekoukala nepřirozeně na jeden konkrétní bod daného předmětu (nám byla ukázána třeba socha), ale těkala pohledem po celé jeho ploše. „Říkali jsme tomu pracovně WTF list,“ směje se Abercombie.

Podstatné ale bylo, že systém značek fungoval dobře a Irrational jej mohli dále vylepšovat. Například systémem nazvaným Smart Terrain. Ten zajišťoval, že pokud se Elizabeth ocitne poblíž nějakého předmětu, dokáže jej sama použít. Jinak řečeno, když dojde k pohovce, sedne si na ní, když dojde k oknu, podívá se z něj, opře se o zeď a podobně. Všechny tyto činnosti přitom provádí automaticky a jediné kritérium je, aby se příliš nevzdálila od vodící linky mezi hráčem a jeho cílem. Od této vlastnosti už byl pak jenom kousek k tomu, že Elizabeth upozorňuje Bookera na zajímavé předměty, které může sebrat a vůbec působí mnohem přirozeněji, přičemž je zároveň hráči užitečná.

Zvětšit zdroj: tisková zpráva

Když se perou, nepřekážej!

Zbývalo vyřešit chování Elizabeth při soubojích. Irrational původně chtěli, pro zachování své základní filozofie, aby Elizabeth byla při soubojích vždy v zorném poli hráče, nebo se do něj snažila co nejrychleji dostat. Jak už asi tušíte, nefungovalo to. Elizabeth byla většinu času příliš blízko hráče, v soubojích byla moc odvážná a agresivní a v neposlední řadě se také pletla do dráhy vaší střelby. Pak ale vývojáři zjistili, že během přestřelek se hráč stejně soustředí na jiné věci, než na to, kde je Elizabeth, takže není v zásadě nutné, aby měl neustále přehled o tom, kde jeho partnerka je.

Což je samozřejmě pro programátory výhodnější, protože jim to dovoluje využívat všemožných pomocných triků, včetně teleportování postavy. Stačilo tedy Elizabeth držet dostatečně blízko hráče a tam jí nechat schovat se v krytu. Hra zároveň předvídá, kde by hráč mohl Elizabeth čekat, a na to místo ji teleportuje – důvodem tohoto kroku byla snaha zapojit Elizabeth do souboje třeba tak, že bude házet Bookerovi zbraně, což ale nesmělo hráčům zbytečně přidělávat práci. Užitečnost partnerky v soubojích pak Irrational ještě zvýšili tím, že Elizabeth ukazuje na přicházející nepřátele a křičí na Bookera v okamžicích, kdy se blíží nebezpečí.

Přestože se nakonec umělá inteligence pro Elizabeth povedla dokončit tak, jak autoři původně zamýšleli, závěr Abercombieho přednášky byl spíše smutný. „Na závěr bych chtěl poděkovat všem, kteří se na umělé inteligenci pro Bioshock Infinite podíleli. Vzhledem k nedávným událostem ve firmě už spolu zřejmě nikdy na žádném podobném projektu pracovat nebudeme.“

Další články a fotky z Game Developers Conference 2014 najdete v našem speciálu!

Nejnovější články