top of page

Goal Oriented Action Planning (GOAP)

Me and one other Technical Designer were tasked with utilizing a gameplay AI technique to make a game. Instead we ended up making the AI technique from scratch on top of making a game.

In this demonstration, I showed off the Planner, automatically allocating the necessary Narwhals (the spheres) to fulfill grabbing each object. This is done by simply clicking on them. The planner checks how many Narwhals are free based on how many are back at base with no active plan. From there it will assign random Narwhals up to the minimum amount needed to go retrieve the object.

For the object requiring two, a world state is evaluated to determine the plan related to the coral barrier. In this case, because the path involved with two Narwhals taking down the barrier IS faster than going around, a plan was constructed to go to the object and destroy the wall when it gets in their way.

In this situation, this is with manual allocation of narwhals. While the first one automatically sent in two cause that was needed, on the submarine, it only needed one. However by double clicking on the submarine, it manually allocated two narwhals to retrieve the submarine and the plan was recreated to accommodate this. Similar to the previous demonstration, the plan evaluated that destroying the barrier and going through is faster than around with two narwhals.

The items were flipped in this case to highlight it not being a hardcoded case. In this scenario due to auto assign, only one narwhal is sent out. It evaluated with the barrier that going around the barrier is faster than destroying the barrier so it hauled the item around it.

The Situation

We learned about the various techniques used to make convincing video game AI such as behavior trees, Goal Oriented Action Planning (GOAP), and Hierarchical Tree Network (HTN). We were tasked with making a game with one of those techniques. Initial confusion stirred as we all assumed we had to recreate the technique but from scratch. After the first checkpoint, it became clear we were supposed to use a plugin to provide the base. However, me and my buddy decided to continue making it from scratch, if not for the learning experience of the ins and outs.

The Problem

Most of the resources we followed implement GOAP with the assumption of every agent for themselves. For ours, we wanted to emulate a pikmin game using GOAP which means we need agents to be working together in groups.

bottom of page