#GOAP

Libra on Fire πŸ”₯ βš–οΈlibraonfire.bsky.social@bsky.brid.gy
2025-10-15

. Not a single Republican is actually doing the job they were hired to do not one of them. #Republicans #Democrats #GOap #Congress #Senate #GovShutdown .

2025-10-03

AI Planning Analytics β€” From F.E.A.R (2005) to Assassin’s Creed: Shadows (2025) by Eric Jacopin. Explore 20 years of Goal-Oriented Action Planning in NPC decision-making.
πŸ“… Nov 3–4, London
🎟 Tickets: tickettailor.com/events/gameai
#AIandGames #GameDev #NPC #GOAP

2025-05-09

Interestingly, I added a simple inventory to my little NPCs and then gave them a lower priority goal of collecting a certain amount of food. With a very minimal amount of effort not only will NPCs stockpile some food in their inventory, but also now when they're hungry, they can eat the food in their inventory before going out to look for more.

It's really cool seeing behaviors like this emerging without having explicitly planned it myself! #goap #goapai #gamedev #Godot4

2024-12-05

In part 11 of my #JFXInAction interviews, we look at game development. #FXGL is a library created by Almas Baim that helps us create #JavaFX games. But it’s much more than games! With the integrated Goal-Oriented Action Planning (#GOAP) functionality, it can use game technology and AI to solve any goal, based on actions and preconditions. In this video, Almas live codes such a solution with a minimal amount of code!

Video: youtube.com/watch?v=RFSIBrP4mZ
More info: webtechie.be/post/2024-12-05-j

2024-08-22

#GodotEngine #ResourceWrangler #GOAP #AI

Am hacking away on a small (fake) GOAP system for my fishies. I am using the Resource Wrangler plugin to sketch it out and find the best approaches.

For more complicated critters I will need a better goap, but that's the future.
πŸ¦‡

Screenshot showing several nodes that comprise a small goap system for the Petal Fish's ai system.

The plans that feed-into the fish's collection of plans are:
Avoid Harm
[Eat Veggies, Eat Morsels]
Rest

The fish will then behave according to it's internal state and decide among the various plans connected to it. 

Well, that's the plan :D
2024-05-17

#GOAP
What this means in practice is that an agent will attempt several things to try and bring its game state into alignment before trading to see if it has reached its goal.

There are mainly two things limiting the sorts of goals sought by an agent: One is that goals aren't originated from the agent themselves but the environment around them (Situations "emit" types of goals), and agents will make generalized risk/rewards assessments in the planning process.

I've implemented some "child goals" in tandem with the many free-standing goals, so that certain things will be attempted by an agent before they act on their main objective.

Results are varied, of course, so an agent might try to pull off a heist without knowing the interior of the location, becoming lost as a result. See: my next influence... #fiasco

2024-04-22

ΠŸΠ»ΡΠ½Π΅Ρ€ β€” язык логичСского программирования для ИИ: Ρ‡Ρ‚ΠΎ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ

Π‘ΠΎΡ‚Ρ‹ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ систСмы GOAP (Goal Oriented Action Planning), источник ΠŸΠ»ΡΠ½Π΅Ρ€ (Planner) β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ-логичСский язык программирования, схоТий ΠΏΠΎ своСму синтаксису с Лиспом . Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ языка содСрТит фактичСски Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Лисп Π² качСствС подмноТСства. ΠŸΡ€ΠΈ этом Π΅Π³ΠΎ встроСнныС возмоТности ΠΏΠΎ символьной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡˆΠΈΡ€Π΅. А Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² запись Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² скобок (Π² ЛиспС Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки) сдСлало ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π³ΠΎΡ€Π°Π·Π΄ΠΎ понятнСС для чтСния. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, логичСскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” это ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° программирования, основанная Π½Π° матСматичСской Π»ΠΎΠ³ΠΈΠΊΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠ΄ состоит ΠΈΠ· логичСских ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ» Π²Ρ‹Π²ΠΎΠ΄Π°.

habr.com/ru/companies/ruvds/ar

#ruvds_ΡΡ‚Π°Ρ‚ΡŒΠΈ #domainspecific #Planner #ИИ #ΠŸΠ»ΡΠ½Π΅Ρ€ #Лисп #логичСскоС_ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ #GOAP

Eduardo K. Simionieks@mastodon.gamedev.place
2024-01-04

I gave it a go in implementing #GOAP in our project and it seems it might actually not be very suited for a "tribe sim" sort of game (think buildings and resource management). Simply because... the world is not static. Things sometimes are available sometimes are not.

The world state in Fear is a set of 22 booleans (ENUM_AIWORLDSTATE_PROP_KEY in AIWorldState.h). What happens if you have 40+ resources that can be mixed together in different buildings?

Eduardo K. Simionieks@mastodon.gamedev.place
2024-01-04

I've been digging into #GOAP #gameai #gamedev. Here is a bunch of resources:

Jeff Orkin's GDC talk: gdcvault.com/play/1013282/Thre

A shorter intro: youtube.com/watch?v=PaOLBOuysw

Even shorter intro: youtube.com/watch?v=tdBWk2OVCW

A more recent #GDCtalk about GOAP: youtube.com/watch?v=gm7K68663r (the statistics are quite interesting!)

The Fear SDK source code with all GOAP goodies: github.com/xfw5/Fear-SDK-1.08

Another simpler GOAP implementation in #cpp: github.com/cpowell/cppGOAP

And also: unrealengine.com/marketplace/e

2023-02-14

To answer your question regarding inbox being a list: It's not possible. The inbox, outbox, ... have the type @id, see Node identifiers in the json-ld 1.1. spec.

As far as doing things like Variable(outbox) = Variable(actor) + "/outbox". I've written stuff like that myself. We are still some time away from having services that need to have outbox and actors on different servers to do cool stuff. We need a proper ActivityPub Server first (= a server supporting ActivityPub Server 2 Server and Server 2 Client and nice authorization).

2023-02-14

@helge based on your question, I'll have to rethink the logic I use in #GoAP for checking if an inbox/outbox belongs to an Actor. Currently I think I just check if the IRI is the Actor's IRI concatenated with the collection name itself. That seems bad. :D

@csddumi

2022-12-21

Building Robust Real-Time Game AI: Simplifying \& Automating Integral Process Steps in Multi-Platform Design
(2016) : Gaudl, Swen
url: swen.fairrats.eu/research/pape

2022-11-27

I don't know if I advertised this link before, but a while back I wrote about the main constraint that led to the current architecture of #go-ap libraries.

Here it is: man.sr.ht/~mariusor/go-activit

#ActivityPub #Go #goAP #fedbox

2022-11-09

I'm resetting my AI from a #GOAP to a #BehaviourTree because it seems I lose control a bit when more objects are doing things at the same time (nice when making an #RTS or #CityBuilder like I do).

I find it satisfying to see my carrier agent #Agabouga now can do the same that he used to be able to do as a GOAP agent. Almost progress then!

By the way, I love the #Unity plugin #BehaviourDesigner by Opsive. Expensive, but worth it!
assetstore.unity.com/packages/

2021-03-09

@humanetech "yes" as it's a testing instance but not sure if suitable as a generic devtool (there's no S2S Activitypub at the moment) and the C2S it implements is under documented. :D

It basically is a demo instance for FedBOX (a generic activitypub service implementation based on #goAP) which in turn is the base for the littr.me link aggregator.

On longer term, when the API for the libraries finalizes, I want it to support multiple frontends and services.

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst