Weighing different AI models: behavior tree vs GOAP
TL;DR: how could I best model the AI for a car combat game that is trying to simulate a human player?
I’m working on the AI for my car combat game and am using the Beehave addon to build a behavior tree. For the most part it’s going smoothly, but as I’m working in the “attack” behavior I’ve realized there is a lot of complexity to the decision making. For example, pre-attack, I’m trying to evaluate weapon range, damage, direction of attack (forward/backward shooting weapon), etc. to determine if the bot should engage or close distance or what. When I consider defensive maneuvers that seems very complex too.
I recently learned about goal-oriented action planning (GOAP) and it seems like an interesting approach to AI. What I read defined a “planner” object that had insight to all kids of game state, including other players info. This is in contrast to my approach with my behavior tree, where I’m trying to limit AI insight to sensors (raycasts, area3D) to mimic player decision making. Obviously there are other differences as well.
My goal is to make a relatively realistic simulation of a player that, eventually, could be made more/less difficult or have different “personalities” (aggressive, defensive, retreating). Which model would be a better fit for this kind of use-case?