and targetInSights = true. Then the action will only trigger when both weaponLoaded AND targetInSights world state symbols are true. A nice extension to the GOAP system could be to include other Boolean operators between preconditions and effects of actions such as OR, XOR, NAND etc. So an action could trigger if weaponLoaded is true OR if targetInSights is true.
The squad tactic design for this project was principally an ad-hoc approach whereby different behaviour was created by passing orders into squad members from the squad manager. Different squad managers were then developed for different game modes. While this approach worked well in this case, commercial games may require something a little more structured. Both Orkin and Munóz-Avila recommend Hierarchical Task Networks as a way of applying a formalised planning system to squad behaviours. HTNs plan at a higher level than a GOAP system using tasks rather than goals. Each task is either a compound or primitive task. A compound task is made up of several primitive tasks and a primitive task equates to a concrete action. HTNs use methods which define how to achieve a compound task. HTN planning reasons on higher level strategies and concentrates on accomplishing methods using tasks rather than directly selecting actions to execute. HTNs are a very new field of research in games and there is little information available about how to incorporate them at present. However there is research being undertaken at the moment into their use and if included, could immensely improve the squad behaviour in the future.
The agent architecture formed a quite significant part of the GOAP system but the biggest problem encountered throughout development was the working memory cleanup. If it wasn’t cleaned up regularly enough, the working memory became clogged with useless facts. If done too often, then the working memory was emptied of working memory facts as they were deleted too soon. Further work could include devising some sort of cleanup solution as if this issue was overcome, distributed processing, caching and hence efficiency of the planner would be greatly improved. The working memory only allows for certain types of facts. In the future it could be useful if the working memory was to be extended to allow for