GOAP and modeling world state

Started by
4 comments, last by comfy chair 10 years, 3 months ago

I am almost ready to launch my sim game, and am already thinking ahead of ways to improve it.

One thing I have in mind is giving my agents planning ability - the current AI is utility based and cannot form complex plans.

In a future version, I would like to see a group of very intelligent animals formulate a plan to get food by first breaking down the player's defences, then fighting off his units and then stealing his food.

I think a planner such as GOAP could be useful. But I am not clear on how to model the world state so the planner can do its work.

I have the following idea: I already have the map divided into connected regions of a certain maximum size. If I take these regions and add extra data to them, such as resources and enemy strength within the region, and any obstacles between them, will GOAP then be able to create plans like the one described above?

Advertisement
Planners are typically set up with two layers. One is the actual "plan formulation" layer which does the abstract creation of plans based on world states. The second layer is the actual world state simulation layer, which allows you to "guess" what the world state will look like with certain modifications applied. GOAP in particular is all about working backwards from a desired world-state to the current world-state, and picking out the chain of actions that are necessary to move from one to the other.

The key part of this is that you don't just need to model the state of the world - you need to model interactions and how they affect that state.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Yes, I can model interactions such as "Move to region", "Defend region" etc. These will affect region states.

So it sounds like you have all the pieces... I'm not sure what's missing?

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Nothing wrong with the GOAP plan, but here are two alternatives to get the kind of behavior you seek:

(1) Modify the computation of utility to be more sophisticated about the likelihood of achieving some goals in the future. For instance, the group of animals could have their utility go up if they are near food that they might be able to steal. Make their utility even larger if the defenses are weakened. And finally, make the utility of actually having the food even larger. This way individual actions along the plan will present a smooth path of increasing utility, and an apparent plan will happen from simply maximizing the utility at each step. You probably want to be careful to tune things right, or you might end up with a bunch of animals hanging around well-defended food until they starve...

(2) For each possible action, use Monte Carlo simulations of possible future events, including simplified decision models for all agents involved and a simulation of the effect of each action. Then evaluate the average utility of the situation at some point in the future (perhaps at the end of the game?), and pick the action that maximizes that value.

Method (2) is a more radical departure from your current scheme, but it can be much better than GOAP for a situation where an adversary is trying to achieve different goals while you execute your plan. There is a paper about this idea here.

So it sounds like you have all the pieces... I'm not sure what's missing?

It would be nice to hear about experiences or opinions about using GOAP in this way... will there be too many states, is it too fine-grained..? Basically to know which pitfalls to be aware of.

This topic is closed to new replies.

Advertisement