Artificial War: Multiagent-Based Simulation of Combat

He changes his methods and alters his plans so that people have no knowledge of what he is doing. He alters his camp-sites and marches by devious routes, and thus makes it impossible for others to anticipate his purpose . Weigh the situation, then move.
Sun Tzu, The Art of War
The basic element of EINSTein is an agent, which loosely represents a primitive combat unit (infantryman, tank, transport vehicle, etc.) that is equipped with the following characteristics:
Doctrine: a default local-rule set specifying how to act in a generic environment
Mission: goals directing behavior
Situational Awareness: sensors generating an internal map of environment
Adaptability: an internal mechanism to alter behavior and/or rules
Each agent exists in one of three states: alive, injured, or killed (later we will introduce continuous health values). Injured agents can (but are not required to) have different personalities and offensive/defensive characteristics from when they were alive. For example, the user can specify that injured agents are able to move half as far, and shoot half as accurately, as their alive counterparts. Up to ten distinct groups (or squads ) of personalities, of varying sizes, can be defined. The user can also how agents from one squad react to agents from other squads.
Each agent has associated with it a set of ranges (such as sensor range, fire range, and communications range; see below), within which it senses and assimilates simple forms of...