Framework pro implementaci botů pro hru NetHack
Název práce v češtině: | Framework pro implementaci botů pro hru NetHack |
---|---|
Název v anglickém jazyce: | NetHack Bot Framework |
Klíčová slova: | bot, NetHack, framework |
Klíčová slova anglicky: | agent, framework, NetHack |
Akademický rok vypsání: | 2014/2015 |
Typ práce: | diplomová práce |
Jazyk práce: | čeština |
Ústav: | Katedra softwaru a výuky informatiky (32-KSVI) |
Vedoucí / školitel: | Mgr. Jakub Gemrot, Ph.D. |
Řešitel: | skrytý - zadáno a potvrzeno stud. odd. |
Datum přihlášení: | 26.05.2014 |
Datum zadání: | 06.10.2014 |
Datum potvrzení stud. oddělením: | 13.10.2014 |
Datum a čas obhajoby: | 15.06.2015 10:30 |
Datum odevzdání elektronické podoby: | 03.05.2015 |
Datum odevzdání tištěné podoby: | 05.05.2015 |
Datum proběhlé obhajoby: | 15.06.2015 |
Oponenti: | RNDr. František Mráz, CSc. |
Zásady pro vypracování |
NetHack je klasická počítačová hra pro jednoho hráče, zastupující žánr tzv. roguelike her, což je podžánr tahových fantasy roleplaying her převážně s ASCII grafikou. Odehrává se v procedurálně generovaném komplexu podzemních jeskyní s mnoha různými typy nepřátel, neutrálních postav, předmětů a úkolů, se kterými hráč musí interagovat, resp. je plnit.
Podobně jako pro ostatní roguelike hry existuje řada pokusů o implementaci automatizovaného hráče, bota, který by dokázal hru hrát bez lidského zásahu. Tato úloha je však v případě NetHacku náročná jak z hlediska umělé inteligence, tak i z hlediska technické implementace. Prostředí hry NetHack je komplexní - tedy částečně pozorovatelné, stochastické a rozsáhlé - a interakce s ním probíhá skrz textové rozhraní, které je v řadě případů nejednoznačné, což komplikuje rozpoznávání stavu hry. Cílem práce je navrhnout a implementovat framework pro tvorbu NetHack botů, který by programátora odstiňoval od napojení na samotnou hru, zprostředkovával programátorsky přívětivé rozhraní ke hře - tedy knihovnu akčních a sensorických primitiv spolu s modelem herního světa (reprezentace mapy, předmětů, nepřátel a jejich vlastností) - a umožnil tak soustředit se primárně na implementaci umělé inteligence. Framework nebude využívat modifikací kódu hry pro usnadnění napojení ke hře, ale bude využívat stejného rozhraní jako lidský hráč (tj. emulátoru terminálu), a umožňovat tak hru hrát i na veřejných NetHack serverech s podporou protokolů Telnet a SSH. Framework bude zacílen na platformu Java, pro kterou žádný podobný framework aktuálně neexistuje. Bude implementován v jazyce Clojure a poskytne také API pro boty pasné v jazyce Java. V rámci práce bude implementována ukázková umělá inteligence, která bude využívat funkce a služby frameworkem poskytované. Tato UI by měla být schopná hru hrát alespoň na úrovni srovnatelné se středně pokročilými lidskými hráči. |
Seznam odborné literatury |
Alex J. Champandard, AI Game Development, New Riders Games, 2003
Steve Rabin (eds.): AI Game Programming Wisdom series Mark DeLoura (eds.): Game Programming Gems series Russell, S., Norvig, P.: Artificial Intelligence: A Modern Approach, 1995 TAEB Website, http://taeb-nethack.blogspot.cz/ |