the Tactical Amulet Extraction Bot (for NetHack)
Fetching latest commit…
Cannot retrieve the latest commit at this time
TAEB is a modular NetHack bot + framework. All of its NetHack-playing logic is in lib/TAEB/AI/. The framework is the rest of lib/. For example, lib/TAEB/Spoilers/ includes data about NetHack's monsters, items, etc. The idea of TAEB is to abstract away the machinations of playing NetHack so that the AI can do things declaratively. For a good example, look at: lib/TAEB/AI/Behavior/DipForExcalibur.pm AI is currently broken into two parts, Behaviors and Personalities. Behaviors, such as "FixHunger", are slightly higher level than individual actions, such as "eat this particular item". Personalities make use of Behaviors and ultimately decide which one is run next. The "ScoreWhore" personality lingers on each level to maximize its score. The "Descender" personality takes the opposite approach, and descends any stairs it sees. The framework is ultimately in control of everything. Each turn it just asks the AI for an action to run. Any prompts or menus are handled through the use of callbacks. This divide made it easy to add a web interface in a day's work. -- INSTALLING If you're on Ubuntu, you'll first need to install the "build-essential" and "libncurses5-dev" packages. Warning: TAEB makes heavy use of CPAN. $ perl Makefile.PL Answer the defaults to any dependencies it asks about. You may have to set up CPAN. The defaults are usually fine. Be sure to set a mirror though. NOTE: Data::Dump::Streamer 2.08-40 has a test failure, so CPAN will refuse to install it. Because a lot of our dependencies depend on DDS, CPAN will try to install it a number of times. To fix this, force install DDS with: sudo cpan -fi Data::Dump::Streamer $ sudo make installdeps This will install the modules from CPAN. TAEB's dependencies themselves usually have a few dependencies. All in all you're probably looking at about 50 modules. -- CONFIGURING Now it's time to set up TAEB for running on nethack.alt.org. First, create a new account. Paste the contents of etc/TAEB.nethackrc into the account's rcfile. Then, in vim (and only vim; I'll know if you used emacs), edit the (nonexistent) etc/site_config.yml config file. Here's where you set your account's name and password. The format is: --- interface: Telnet interface_options: Telnet: account: MyTAEB password: secretsauce Be sure to include the three dashes. Then you should be ready to run him! Type perl bin/taeb and cross your fingers. If you want to run TAEB on your machine, you need to have nethack installed. No patches to nethack are required. If you're interested in developing TAEB, see the NEWTASKS file.