The system provides a large library of objects to build upon, and a prototype-based inheritance system to encourage experimentation and improvisation. LiveWorld has been used as a base for exploring a variety of agent-based programming systems. The most recent of these, Dynamic Agents, is a goal-based programming language that allows agents to be created dynamically during the course of action. While based on the same sort of cybernetic ideas that influenced the earlier systems, Dynamic Agents supports sequencing of actions as well as explicit goals. It also has sophisticated mechanisms for conflict resolution and can support a variety of different programming paradigms, including a variant of constraint programming in which each constraint is viewed as an agent.
Agents serve to combine goals with methods for realizing goals.
Dynamic Agents uses an anthropomorphic metaphor system to describe the behavior of agents and convey them to the user. Agents can have goals, and are portrayed as happy if their goal is satisfied, unhappy if not, and angry if another agent happens to be interfering with their goal. This emotional represetntation allows the system to generate storyboards that provide a narrative of the sometimes complex activity occurring in agent systems. They have served as idea generators and testers for me, and helped me to refine my own ideas about the metaphors that underlie computation, and resulted in a surprisingly simple yet powerful new programming paradigm. Whether this paradigm is accessible to novices is still open to question.