|
engine-mk1
|
The Planner library is an implementation of goal oriented action planning (GOAP). GOAP is used as a more dynamic alternative to behaviour trees. It works by taking a disparate set of actions and working backwards from a goal to a bespoke tree. Actions are sets of pre/post-conditions that act on a world state.
The Planner describes state and atomic state changes through conditions, modifiers and properties. Their only difference is the operators they make use of. Multiple can be held together in a ConditionSet.
Conditions consist of a value and comparison operator.
Modifiers consist of a value and arithmatic operator.
Properties consist of a value and null/no operator.
Actions are a larger collection of operations that can be performed on a world state.
Plans can be generated by supplying the Planner with an ActionSet and a goal Action. A goal Action is an Action with preconditions but no postconditions, that the Planner can use as a starting point to plan from.
1.8.11