Abstract. In this paper we describe a system where behavior of characters and groups of characters are determined by assigning attributes to groups and individuals hierarchically and by using random values as a default, combined with behavior maps that allow the user or the program to specify conditions that modify the behavior of the characters. Different path selection algorithms are used depending on the attributes of the environment and the specific characters. Some optimizations are also described that allow the system to work at interactive rates even with a relatively large number of characters.