Further information about the planning process is illustrated and in particular what steps were taken to optimise the A* search for F.E.A.R.. The planner uses the preconditions to force the A* search to only take fruitful branches and again the hashing of actions by their effects is mentioned. Orkin indicates that the action context preconditions work in tandem with the blackboard and working memory so that they don’t need to directly access the subsystems. The A* heuristic employed in F.E.A.R. is again described as being the number of unsatisfied world state symbols between the current and goal states.
The considerations involved with developing agents which implement blackboard systems in first-person shooters are analysed in another of Orkin’s articles (Orkin, 2003). It details more clearly how to go about designing and creating blackboards for games along with their benefits. There are two types of blackboard, inter-agent and intra-agent. The inter-agent blackboard is used to coordinate between agents (relates to the working memory in figure 3) while the intra-agent blackboard is used by sub-systems to communicate and share information (the blackboard in figure 3). While there is no formal structure to the blackboard set out, Orkin suggests it could be just a collection of getters and setters making it into a central repository of information. The task of the inter-agent blackboard or working memory is to store information about the world as sensed by the sensory manager but also to coordinate agents in teams by storing orders as received from the squad manager.
2.3 Finite State Machines
Some investigation into FSMs revealed that there are several different methods of implementing them in games. Three options are presented by Houlette (Houlette, 2003), the first is to code up the FSM directly in C++, the second is to use a macro-assisted FSM language and the last way is to create a custom FSM scripting language that defines the