While FSMs and Behavior Trees are used to create predefined and static plans with adaptive behavior, the most intuitive autonomous planning algorithm is GOAP (Goal-Orientated Action Planning) which seeks to create dynamic plans that resolve goal requirements at runtime by performing actions that achieve those goals, often by calculating and combining various actions that are defined by their effects on environment to bring about the changes that goals are dependant on.

This produces fully autonomous plans that are dynamically constructed from behaviours (actions) that solve selected goals:

As illustrated, predefined behaviours are defined by their preconditions (for being able to run), and the effects each has on the environment. Goals are defined by a static, predesigned combination of required effects, and the algorithm calculates and selects the actions that can bring about those required effects, and this constitutes the emergent plan of actions to perform to solve the goal.

GOAP is amongst the most dynamic, emergent and flexible methods of planning; however, while GOAP appears to be the panacea of Autonomy and independent behaviour, it can create emergent and creative behaviours that reach beyond the expectations of the game, making it difficult to reason about, debug and reproduce. This becomes a complexity scaling problem when more behaviours are inevitably required. The approach is, however, easy to understand and can be used in simpler scenarios where combinations of small core behaviours can still be managed.