the other squad if the closest squad is full. When updated, the individual squad handles whatever task assigned to it and issues orders to the squad members by creating Order working memory facts. When the agent is calculating the relevancy of a goal, it checks its working memory for orders and this can affect the relevancy value for a goal.
Originally there was going to be several different types of tasks for the squads, Advance, PatrolLocation, AttackLocation, AttackLocationFlank, AttackLocationFormation, GoTo, Rendezvous, Advance and Follow. All these tasks were actually implemented and tested but performed poorly in practice. The concept behind the AttackLocationFormation was to first get the squad members to meet up and then advance in a flocking formation to attack a Domination point. However to meet up the agents had to go to a location in the map and then wait for the others. It was found that agents would arrive at a rendezvous location and either the agents moving to that location would be killed or the agent itself would die thus invalidating the task. Also while agents were waiting around, the opposition teams were taking over Domination points or adding more squad members to patrol and defend them. Due to similar problems experienced with other squad tasks it was decided to stick to four primary tasks which work quite well for the Domination game, PatrolLocation, AttackLocation, AttackLocationFlank and GoTo.
4.5 FSM Implementation
As FSMs were the final part of the project to be implemented, the GOAP system and all the subsystems were already in place. Hence the development of the system was relatively quick as all of the bugs in the subsystems (navigation manager, sensory manager, target manager, working memory etc) had been eliminated. As the goals and actions of the GOAP system had already been fleshed out and tuned, they directed what states would be needed by the FSM system and helped refine the previous FSM state design. The preconditions of individual GOAP actions were also in place so this helped flesh out the state transitions between the various states. As Buckland provided the state machine architecture, the main