TAEB - Future Directions
See TAEB, pubsub, and announcements on our blog.
Currently, TAEB completely forgets about monsters when they are not visible. It rediscovers them on the next turn and generally acts correctly, but not being able to track monster state from turn to turn puts annoying limitations on our tactics. If we could somehow track monsters the way we track items, TAEB would potentially be a much better fighter.
Most significantly, it is impossible for TAEB to know if a monster is awake; since it never remembers seeing monsters before, it is forced to conservatively assume the monster is asleep. If a monster is potentially asleep, we can't use combat tactics like waiting in a corridor - we would wait forever! This is an especially annoying problem because valkyries start with Stealth, so zoo monsters are very often asleep.
Unfortunately, monster tracking is hard. Monsters move around much more than items, so in general it's impossible to know which monsters are the same as monsters on the previous turn, especially in pack situations. We really want to support tracking packs, because pack monsters are a major TAEB killer. Also, monsters have many hidden variables, and testing in combat doesn't work very well.
The best candidate solutions are based on variations of Bayesian inference, deciding for each monster a conditional probability of being something we care about. This is a fair amount of work, though, and little progress has been made.
Behavioral, time-tested as it is, is starting to show signs of having reached the limits of its extensibility. Each new behavior added slows down the bot additively, and in interesting environments like quest levels we may take several seconds to decide on each move. Can Behavioral be saved or will a new, more stateful AI like Planar take the torch?
One long-term idea for the TAEB core is to use it to power the next-generation of Interhack. This would result in an Interhack with ability to semi-automate arbitrary tasks, extremely flexible Perl scriptability, and a queriable model of the entire dungeon, enabling an interface to rival Crawl. There are two main blockers for this. First, TAEB has to support all NetHack commands and game mechanics. While old Interhack could get away with simply passing through unrecognized commands and output (nearly all of it), that would wreak havoc with TAEB's world model. Second, TAEB needs to become much faster; on a good day, TAEB processing lag is on the order of a third of a second, more than twice the network lag from San Diego to Helsinki.