blackboard is extremely useful for the squad manager as it can monitor the status of a subsystem or task is by querying a single central location rather than the various subsystems. Orkin also states that blackboards assist developers in that they can provide improvements in performance, maintainability and flexibility and there is less to debug when using them (Orkin, 2003).
3.6 Squad manager
The squad manager designed for this application was simply an abstract class that was implemented at a later stage by the squad managers for the different game modes. Each squad manager is in charge of deciding what squad an agent is placed in and what tasks each of these squads should perform. The agents are first placed in a pool of agents and then a squad manager must decide whether to create squads or not. The primary function of each squad manager is to coordinate these squads so that they aren’t all performing the same tasks. When a squad manager wishes to set the squad a task, it issues it a command. Upon activation of a command, agents have working memory Order facts assigned to them. The squad manager monitors the status of the agent’s blackboard. Squad coordination is then brought about by creating new agent orders or modifying the squad’s task according to the status of the individual agents or according to events in the game.
Both the FSM and GOAP systems share the same squad manager system for each of the game modes as both types of AI attempt to perform the same tasks within the game. The difference arises in how the FSM or GOAP react to the orders that are stored in their working memory. Squad behaviour can be disabled for a team and when this occurs squads are never created and all agents are left in the pool of agents which never receives orders.