ABL is a language for designing believable agents, agents that act in a world, make decisions, and work to satisfy goals. ABL was written by Michael Mateas at CMU (more). ABL has structures to define
- how the agent interacts with the world:
- how to sense the world
- how to take actions in the world
- goals and subgoals
- relationships between goals, persistent goals, one-time goals, different ways of accomplishing goals
- joint behaviors between characters
The ABL compiler is written in Java and targets Java; the generated Java code is supported by the ABL runtime system. In a given context it is usually clear whether the term "ABL" is referring to the compiler or the runtime. Following are the main sections we have for the manual at the moment.
A New, Updated ABL Manual Is In Progress and Available Here
Debugging with ABL
IntelliJ Syntax Highlighting - save to the C:\Users\YOURUSERNAMEHERE\.IntelliJIdea90\config\filetypes directory
These documents are prior versions of the ABL documentation; they are in Microsoft Word format. We are in the process of renovating them and moving them to Mediawiki format. We will strike through them as they get moved.
- ABL Runtime Overview -- despite the misleading filename, this document gives an overview of the ABL runtime (there's nothing in there about the compiler).
- ABL Language Reference -- gives a detailed description of ABL language constructs and features.
- ABL Tutorial -- a tutorial-style introduction to ABL.
- ABL-UT Infrastructure Overview -- gives an overview of how sensorimotor systems in ABL work, using Unreal Tournament as the example world.
ABL Debugger Overview -- a brief overview of the ABL debugger.
Background material for manual writers
- ABL Dissertation Chapter -- A chapter from Michael's dissertation describing ABL. Mostly describes implementation details, though does provide some high-level discussion of joint goals.
- Hap Dissertation (pdf) -- Bryan Loyall's dissertation on Hap, the language ABL is based on.