NetHack vyřešen

NetHack vyřešen

Informatika / video / článek

Skoro třicet let po vydání NetHacku, RPG počítačové hry, se na Janu Krajíčkovi na Matfyzu podařilo vytvořit umělou inteligenci, která dokáže hru úspěšně dokončit.

NetHack - Údolí mrtvých v polovině hry
NetHack - Údolí mrtvých v polovině hry

NetHack si coby jedna z nejstarších rogue-like her drží své příznivce, i když nenabízí žádnou grafiku (nejste-li příznivec ASCII artu) či hudbu. Na druhou stranu ke hře potřebujete pouze telnetového klienta, který vám otevře procedurálně generovaný svět klasického dungeon-crawl žánru. A když to dáte dohromady s velkým počtem monster, předmětů, bohů a kouzel, které hra obsahuje, octnete se v úžasně komplexním prostředí, do kterého můžete vstupovat znovu a znovu s jistotou, že váš příběh nikdy nebude stejný. O to zajímavější je pro takovou hru vytvářet umělého hráče.



NetHack bot winning the game for the first time


Práce na UI probíhala celkem ve třech fázích. Nejprve bylo nutné správně rozpoznat jednotlivé stavy herního světa. Zde bylo třeba vyřešit, jak rozpoznat, že stav hry zobrazený na terminálu již byl plně aktualizován a čeká se na akci hráče. Posloužil k tomu jednoduchý trik, kdy je po každé akci hráče vyslána ještě další akce, která v daném kontextu nezmění stav hry, ale vyvolá jednoznačnou odezvu.

Následně vznikal framework pro identifikaci a reprezentaci vlastností jednotlivých políček mapy, větví dungeonu, monster, předmětů a herních událostí. Tuto úlohu komplikuje zejména mnoho nejednoznačností herního rozhraní, např. mezera může reprezentovat jak prázdná průchozí nebo neprůchozí pole, tak „průhledná“ monstra – duchy. Jakmile byl framework hotov (ke stažení zde), bylo možné se pustit do třetí fáze, a to tvorby samotné UI.

UI sleduje podobný plán hry jako zkušení lidští hráči. Při soubojích taktizuje dle rozložení úrovně a postupně se vhodně vybavuje nalezenými předměty, které také díky nelidské trpělivosti dokáže identifikovat a využívat efektivněji než člověk. Za zmínku také stojí, že AI je implementována v jazyce Clojure a pro identifikaci předmětů používá pravidla zapsaná v Prolog).

Zatímco předchozí pokusy o UI hrající NetHack nepřekonaly ani polovinu hry (viz TAEB - OTHER BOTS), tato ve výsledku dokáže hru pokořit zhruba v jednom z 50 běhů, což je srovnatelné s průměrem lidských hráčů na veřejných serverech (viz Games finished per day).


Mohlo by vás zajímat:

Umělé inteligenci se věnuje také PogamutCup. Turnaj botů v Pogamutu jste mohli vidět například na Festivalu Fantazie.

Tento článek jsme automaticky naimportovali z předchozího redakčního systému. Pokud se v něm něco pokazilo, dejte nám prosím vědět.