JavaScript EditorFree JavaScript Editor     Ajax Editor 

Main Page
  Previous Section Next Section


In brief, the purpose of the specification phase is to do the following:

  • Describe the context of the problem.

  • Formalize the inputs and the outputs.

This is done in three steps:

  1. Sketching possible options in one creative burst.

  2. Rationalizing to check for consistency internally and with requirements.

  3. Formalizing the chosen model using knowledge representation and corresponding data structures.

The process of specification becomes easier with practice, but we can follow some rough guidelines:

  • Starting with the outputs is often simpler. The rest of the solution can fall into place around them.

  • Selecting the inputs is a matter of determining what information is required to solve the problem. Thinking about this as programmers helps; the AI will need similar information.

  • It's a good idea to keep the specification very flexible to save us the hassle of having to update it during the application.

With a robust specification, all problems are easier to solve. The next chapter uses the specification for movement to create a simple working prototype that can navigate complex dynamic worlds using steering behaviors.

Practical Note

Diving back into developing movement behaviors, another animat demonstrates the flexibility of the specification. Sir Tank uses straightforward reactive behaviors to bounce off obstacles. This animat differs because its movement is dissociated from its orientation. This separates the movement capability from other capabilities, such as aiming, which will prove useful in the next parts. The demo and code is available online at

      Previous Section Next Section

    JavaScript EditorAjax Editor     JavaScript Editor