Hello!

Recently, I released LimboAI version 0.5 for #GodotEngine. This update brings numerous quality of life improvements to the editor and debugger, introduces new tasks, and includes support for Godot 4.2!
Check out the changelog.

What is this LimboAI, you ask? It's an open-source C++ module for Godot 4.2 providing a combination of behavior trees and state machines to craft your game's AI 🤖💡.
It comes with a behavior tree editor, built-in documentation, and a visual debugger. If you've been living under a rock and don't know what behavior trees are, I wrote a short introduction here.

Here's a screenshot of the editor with a sea toad creature from our game:

And a screenshot of the visual debugger in action:

You can watch the full debugger video on our mastodon.

Check out the LimboAI GitHub page!

    This is indeed a highly interesting plugin. I would like to know when we can expect it as a GDExtension?

    Hard to say. For the project we are working on, it's not really a priority. The issues I had in the past with GDExtension has been resolved though, so I'll look into it again when I have time.

      limbonaut The issues I had in the past with GDExtension has been resolved though, so I'll look into it again when I have time.

      It would be excellent. 👍️ There are other extensions that would be great to use together with this.

      a month later

      limbonaut

      🎉 Good news, everyone! 🎉

      GDExtension support is coming to LimboAI, and it will be going v1.0 in a few weeks. To celebrate that occasion, we decided to make a pre-release version 1.0-dev1.

      If you'd like to help with testing, grab a build on the GitHub: https://github.com/limbonaut/limboai/releases/tag/v1.0-dev1.

      It's also coming to Asset Library soon! 🚀

      Highlights

      • GDExtension support! Check out Using GDExtension
      • GDExtension builds are available in GitHub Actions.
      • BBParam editor: Handy custom property editor for blackboard parameters.
      • Support for editing variant-type blackboard parameters (BBVariant).
      • BTCallMethod improvements:
      • Include its delta as an argument. Thanks, @Rubonnek!
      • Store result on the blackboard.
      • Allow using blackboard variables as arguments for the call.
      • Online documentation: Check out online docs here.
      • Change Type action: Switch task's type with the "Change Type" context menu action.
      • Extract Subtree action: Save subtrees with the "Extract Subtree" context menu action (using BTSubtree decorator).
      • Adding tasks with Shift-click: In Task Palette, Shift+click to add a task after the selected and on the same level as the selected task.

      Other improvements

      • Fix LimboDebugger crash when EngineDebugger is not active. Thanks, @Rubonnek!
      • In the Debugger, show resource info for the currently presented BehaviorTree.
      • Fix debugger's "elapsed" column not always has enough space for decimals.
      • Open BehaviorTree in the BT editor when its property is clicked in the inspector.
      • Fix button focus in the Task Palette.
      • Optimize prefetching node references in the Blackboard and BTPlayer.
      • Various fixes in the class documentation.
      • Fix BTCheckVar performs erroneous equality check.
      • Improvements in the build workflows.

      Have a nice day!

      6 days later

      LimboAI v1.0-dev2 is out now, bringing hot-fixes and improvements. Work towards the 1.0 release is in full swing! :godot:🔧

      It's already on the GitHub and coming soon to Asset Library:

      https://github.com/limbonaut/limboai/releases/tag/v1.0-dev2

      Changes since dev1

      • New and improved workaround for the missing GDVIRTUAL* macros.

        • Fixes native method override errors.
        • @warning_ignore for custom task methods is no longer needed!
      • Add new BBParam types.

      • Refactored LimboHSM and LimboState code.

      • Fix: icon entries unsorted in GDExtension manifest.

      • Editor: Show info dialog about editing project settings in GDExtension.

      • Editor: Links to "Creating custom tasks" doc page in the editor and banner improvements.

      So happy it can now be used as Gdextension. I just downloaded from the asset store and currently studying the demo project. It looks simple enough, but I'll dig more into the state machine tomorrow as it's the most useful for me.

      10 days later

      Exciting changes are coming to LimboAI! 🚀

      Freshly revised Blackboard system is already out with the version 1.0-dev3 release in the Asset Library and on the Github :
      https://github.com/limbonaut/limboai/releases/tag/v1.0-dev3

      Changes in v1.0-dev3

      • Revised Blackboard system:
        • Breaking compatibility: BTPlayer's blackboard_data is replaced with new BlackboardPlan system (see below).
        • If you have blackboard data defined in BTPlayer or LimboState nodes, you'd need to redefine it using the new system.
        • New workflow: Define variables in the BehaviorTree resource and override those variables in the BTPlayer node.
        • Variables that begin with "_" are considered private and can't be overridden (they are hidden).
        • See also: Sharing data using Blackboard.
        • BlackboardPlan resource: Stores and manages a collection of variables, and is used to construct new Blackboard instances.
        • Define blackboard variables in a BehaviorTree resource, using it's BlackboardPlan property.
        • BTPlayer also has its own BlackboardPlan which extends the behavior tree BlackboardPlan resource, i.e. variables from the BehaviorTree resource are overridden in the BTPlayer node.
        • BlackboardPlan Editor
        • Accessed with "Manage..." button in the inspector.
        • Rename, reposition, and change types and hints of the blackboard variables.
        • Specify relevant export hints for the variables.
        • Edit default variable values directly in the inspector.
        • Binding: Bind variables to object properties using blackboard.bind_var() method.
        • Blackboard variable property editor:
        • Used in the behavior tree tasks and can be used with custom tasks.
          • Note: It is shown for any property that ends with "_var" and also when using BBParam-derived parameters.
        • Handy property editor that shows an indicator if variable is included in the blackboard.
        • Clicking on the indicator takes you straight to the blackboard plan editor and auto-fills variable name if it doesn't exist.
        • Also provides a drop-down selection of existing variables.
        • Special indicator for variables that begin with "_" (aka private variables).
        • These changes are fully compatible with both module and GDExtension builds!
      • Other changes
        • BBVariable object holds the value of a blackboard variable and its metadata (not exposed to the API).
        • GHA: Fixed issues with iOS templates build workflow
        • Refactored LimboHSM and LimboState code.
        • Fixed focus issues with BBParam property editor
      18 days later
      23 days later
      10 days later
      3 months later