GOAP Framework

O que é GOAP

Goal Oriented Action Planning é uma arquitetura de planejamento semelhante ao STRIPS, projetada com foco no controle de comportamento de personagens autônomos em jogos (ORKIN, 2018). Fundamentalmente a arquitetura diferencia-se das demais na área por sugerir uma abordagem não usual de algoritmos voltados à tarefa de busca por rotas (Pathfinding). O contexto de trabalho desta arquitetura, assim como dito anteriormente, é muito semelhante ao STRIPS contando elementos análogos à predicados, operadores (associados à rotinas de ação) e objetivos.

O atributo seria uma forma de representar uma característica do mundo, denotando o valor de tal propriedade através de um conjunto {chave, valor}. Os operadores no contexto de aplicação ao controle de um autômato, seriam a representação interna (restrita ao sistema de planejamento) das ações que podem ser executadas pelo mesmo. Contam com um conjunto finito de atributos definidos que define a sua aplicabilidade num determinado contexto, bem como um outro conjunto finito que define os resultados de tal ação sobre a situação de mundo (no que se refere aos atributos).

Sendo o mundo representado por um determinado conjunto de atributos, uma situação de mundo seria uma combinação dos estados destes atributos, que possui por finalidade representar as propriedades que são relevantes ao processo de planejamento.

Um objetivo é representado por um conjunto finito de atributos definidos. Essencialmente, este modelo trabalha com uma abstração de grafo na qual nodos possuem uma correlação com uma determinada situação de um conjunto de atributos definidos que representam o mundo, sendo que as conexões existentes entre estes nodos apresentam-se relacionadas à ideia que se tem de operador no caso do STRIPS. Este grafo é utilizado como um meio de construção de uma sequência de ações que satisfaça um dado objetivo através do algoritmo de pathfinding A*. Nesta arquitetura atribui-se um custo para cada ação (o que constitui um diferencial importante com relação ao STRIPS (ORKIN, 2006)), propriedade esta que termina por oferecer a possibilidade de aplicação de cálculos de heurística na estimativa de custo necessário ao “deslocamento” entre os nodos de situação atual e situação desejada do mundo.

Mas à princípio, você não precisa se preocupar com tudo isso na hora de usar o framework dentro do seu jogo ou o que seja.


Representação da operação do modelo GOAP
Representação de um plano dentro do modelo GOAP