chosen for F.E.A.R.. Orkin specifies exactly how the system used in the game was based on the STRIPS language and clarifies the modifications that were employed in order to make it more applicable to games. The STRIPS operators are renamed to become actions in a GOAP system. The primary differences were assigning costs to these actions so that they can be used alongside the A* algorithm, the removal of add and delete lists, procedural preconditions and procedural effects. The procedural preconditions and effects are added to actions so that they can query and have an effect on the virtual world outside of the planner. The actual planning process developed for F.E.A.R. is detailed and this includes a brief explanation as to how a generic A* engine can be used for both pathfinding and planning by changing A* nodes to be GOAP world states and A* edges to GOAP actions.
Orkin continues to explain that each NPC has a collection of symbols (called world state symbols) that represent the agent’s current perception of the world and set of goals and actions. Each symbol represents information about the world, e.g. if an agent is thirsty it could have an ‘isThirsty’ symbol which would be a Boolean value, true or false. The collection of world state symbols is known as a world state. Each goal has a world state which represents the satisfaction criteria for that goal. An action’s precondition is also a world state that the agent’s current world state must satisfy before an action can be triggered. An action’s effect is also a collection of world state symbols and they are applied to the NPC’s current world state upon execution of the action. Based on the agent’s current perception of the world, the NPC decides which of its goals is the most relevant. If this new chosen goal is different to its current goal, the GOAP planner system attempts to find a combination of available actions that can take the agent from its current world state to satisfy the goal world state. The A* algorithm is used to plan the correct sequence of actions that form an NPC’s plan. The NPC then proceeds to step through and execute the plan, one action at a time, until there are no more steps left.