Skip to content

Releases: limbonaut/limboai

v1.2.2

16 Sep 10:16
d3d3295
Compare
Choose a tag to compare

What's Changed

a5c318b Update class docs
65a1a3d, 5766922 Fix prefetching failing for nodes set directly in BehaviorTree's BlackboardPlan resource
5ac6cda Fix BTSetAgentProperty name generation
fd1ac1c Fix BBNode::get_value() crash with a freed object in GDExtension
644c589 Fix BTForEach crash if elements are removed from the array during iteration
1cb8580 Fix mem leaks in the demo

Full Changelog: v1.2.1...v1.2.2

v1.2.1

05 Sep 15:12
7839670
Compare
Choose a tag to compare

What's Changed

  • Fix custom scene root is not used in BTPlayer and BTState by @limbonaut in #202
  • Fix editor setting initialization for GDExtensions by @monxa in #204
  • Generalize EDITOR_DEF macro to fix potential editor setting issues by @monxa in #205
  • Override _to_string() to give useful info about objects in GDExtension by @limbonaut in #206

New Contributors

Full Changelog: v1.2.0...v1.2.1

v1.2.0

22 Aug 14:45
f83cf65
Compare
Choose a tag to compare

Good News, Everyone! 🎉

LimboAI version 1.2.0 is out! This release focuses on the shiny new Godot Engine 4.3 and also brings a bunch of improvements and fixes. Due to the use of a newer API, it is no longer compatible with Godot 4.2.
While there are some breaking changes, most projects should remain unaffected. You can check the details in the linked ⚡PR below.

What's Changed

⭐ - highlights
⚡ - breaking changes, follow PR link for details

  • GHA: Build Android platform libs in GDExtension workflow by @limbonaut in #147
  • ⭐ Add support for Godot 4.3 by @Rubonnek in #64
  • Register and call virtual methods on scripts in GDExtension by @limbonaut in #149
  • Fix: GDExtension load fails due to Expression used without Ref<> by @limbonaut in #150
  • ⭐ Generate built-in documentation header in GDExtension variant by @limbonaut in #151
  • GHA improvements by @limbonaut in #154
  • Replace deprecated set_auto_translate call with set_auto_translate_mode by @dpalais in #155
  • ⭐ Improved layout for large displays (optional) by @limbonaut in #157
  • Fix BlackboardPlan arrays shouldn't be shared between instanced agents by @limbonaut in #158
  • Improve documentation tooltips by @limbonaut in #159
  • Fix new task script path don't update after changing the setting by @ydeltastar in #161
  • Fix error when opening scene with a BTPlayer by @ydeltastar in #162
  • ⭐ HSM improvements by @limbonaut in #164
  • Fix BTPlayer.restart() crash by @limbonaut in #172
  • GHA: Fix iOS builds by @limbonaut in #173
  • GHA: Add Linux & Windows ARM64 builds by @limbonaut in #174
  • LimboHSM: Fix process_input is not enabled in active substate by @limbonaut in #176
  • Hide update_mode property for non-root HSMs by @limbonaut in #177
  • Fix error if changed signal is already connected in several tasks by @limbonaut in #180
  • Breaking: Implement BTInstance - runtime instance of BehaviorTree by @limbonaut in #181
  • Allow monitoring BT performance in BTState by @limbonaut in #182
  • ⭐ BTPlayer: Allow switching BT instance at runtime by @limbonaut in #183
  • Allow supplying custom scene root for behavior tree instantiation by @limbonaut in #184
  • Editor setting to prefer online docs, and open builtin docs by default by @limbonaut in #185
  • ⭐ Edit task script on double-click (open help for core task) by @limbonaut in #186
  • Fix C# exports print errors due to missing ClassDB binding by @limbonaut in #188
  • Make player filter in the debugger case-insensitive by @ydeltastar in #189
  • Improved dev setup for GDExtension by @limbonaut in #190
  • Fix renaming BehaviorTree files doesn't update tab names by @ydeltastar in #191
  • Fix monitor_performance screwing C# exports by @limbonaut in #193
  • BlackboardPlan: Fix mapping failing for NodePath variables with prefetch enabled by @limbonaut in #195
  • GHA: Preserve nuget version for C# builds by @limbonaut in #197
  • Don't overwrite exisiting blackboard variables in BTState upon initialization by @limbonaut in #198
  • GHA: .NET build workflow fixes by @limbonaut in #199
  • GHA: Build additional .NET templates - Android & iOS by @limbonaut in #200
  • Fix editor undo polluting scene history if BehaviorTree is not saved to a file by @limbonaut in #201

New Contributors

Full Changelog: v1.1.0...v1.2.0

v1.2-rc

15 Aug 17:07
d7438b8
Compare
Choose a tag to compare
v1.2-rc Pre-release
Pre-release

Hey, folks! Are you excited about shiny new Godot goodies? This pre-release is focused on Godot 4.3, and it's not compatible with 4.2.
I believe it is quite stable. But if you come upon some bugs, don't forget to report them! Thanks.

What's Changed

⭐ - highlights
⚡ - breaking changes, follow PR link for details

  • GHA: Build Android platform libs in GDExtension workflow by @limbonaut in #147
  • ⭐ Add support for Godot 4.3 by @Rubonnek in #64
  • Register and call virtual methods on scripts in GDExtension by @limbonaut in #149
  • Fix: GDExtension load fails due to Expression used without Ref<> by @limbonaut in #150
  • ⭐ Generate built-in documentation header in GDExtension variant by @limbonaut in #151
  • GHA improvements by @limbonaut in #154
  • Replace deprecated set_auto_translate call with set_auto_translate_mode by @dpalais in #155
  • ⭐ Improved layout for large displays (optional) by @limbonaut in #157
  • Fix BlackboardPlan arrays shouldn't be shared between instanced agents by @limbonaut in #158
  • Improve documentation tooltips by @limbonaut in #159
  • Fix new task script path don't update after changing the setting by @ydeltastar in #161
  • Fix error when opening scene with a BTPlayer by @ydeltastar in #162
  • ⭐ HSM improvements by @limbonaut in #164
  • Fix BTPlayer.restart() crash by @limbonaut in #172
  • GHA: Fix iOS builds by @limbonaut in #173
  • GHA: Add Linux & Windows ARM64 builds by @limbonaut in #174
  • LimboHSM: Fix process_input is not enabled in active substate by @limbonaut in #176
  • Hide update_mode property for non-root HSMs by @limbonaut in #177
  • Fix error if changed signal is already connected in several tasks by @limbonaut in #180
  • Breaking: Implement BTInstance - runtime instance of BehaviorTree by @limbonaut in #181
  • Allow monitoring BT performance in BTState by @limbonaut in #182
  • ⭐ BTPlayer: Allow switching BT instance at runtime by @limbonaut in #183
  • Allow supplying custom scene root for behavior tree instantiation by @limbonaut in #184
  • Editor setting to prefer online docs, and open builtin docs by default by @limbonaut in #185
  • ⭐ Edit task script on double-click (open help for core task) by @limbonaut in #186
  • Fix C# exports print errors due to missing ClassDB binding by @limbonaut in #188
  • Make player filter in the debugger case-insensitive by @ydeltastar in #189
  • Improved dev setup for GDExtension by @limbonaut in #190
  • Fix renaming BehaviorTree files doesn't update tab names by @ydeltastar in #191
  • Fix monitor_performance screwing C# exports by @limbonaut in #193
  • BlackboardPlan: Fix mapping failing for NodePath variables with prefetch enabled by @limbonaut in #195
  • GHA: Preserve nuget version for C# builds by @limbonaut in #197

New Contributors

Full Changelog: v1.1.0...v1.2-rc

v1.1.1

07 Aug 08:40
8a23496
Compare
Choose a tag to compare

Work on release for Godot 4.3 continues. In the meantime, I cherry-picked some bug fixes for this patch release, plus it comes with Android GDExtension libs.

What's Changed

  • GHA: Build Android platform libs in GDExtension workflow by @limbonaut in #147
  • Fix potential rare var name conflict in BTCooldown
  • Fix connected signal error when loading BT for the second time
  • Fix BlackboardPlan arrays shouldn't be shared between instanced agents
  • Defer banner actions to not crash upon restart
  • Fix new task script path don't update after changing the setting (thanks @ydeltastar)
  • Fix BTPlayer.restart() crash
  • Fix process_input is not enabled in active substate
  • Fix error if changed signal is already connected to a BBParam in a bunch of tasks
  • Fix C# exports print errors due to missing ClassDB binding

Full Changelog: v1.1.0...v1.1.1

v1.1.0

18 Jun 14:08
8fa609e
Compare
Choose a tag to compare

Good News, Everyone! 🎉

LimboAI version 1.1.0 is out now, bringing new quality-of-life improvements and various bug fixes. As usual, this release targets the latest stable Godot version (4.2.2 currently).
Don't miss out on the new mapping feature!

What's Changed

⭐ - highlights
⚡ - breaking changes, follow PR link for details

  • Blackboard: Add create parameter to bind_var_to_property and link_var by @limbonaut in #89
  • BTDecorator: Add default _tick implementation by @limbonaut in #95
  • Add tests for nested HSM flow, tests for dispatch() and get_root(), and fix BBParam saved_value initializing to null by @limbonaut in #101
  • Add note about how to run demo/tutorial by @TranquilMarmot in #100
  • Add pre-commit configuration by @limbonaut in #103
  • ⭐ ⚡ Breaking: Allow specifying agent in BTPlayer node via inspector by @limbonaut in #102
  • GHA: Use older toolchain for SteamDeck compatibility by @limbonaut in #107
  • ⭐ Mapping variables by @limbonaut in #106
  • Editor: Check if variable is of correct type for BBParam subtypes by @limbonaut in #110
  • GHA: Generate .import files for GDExtension icons by @limbonaut in #116
  • GHA: Use godotengine buildroot mirror by @limbonaut in #117
  • Doc: Add first steps by @limbonaut in #118
  • ⭐ Implement tab navigation in the editor by @limbonaut in #120
  • Fix compile-time errors with updated godot-cpp by @limbonaut in #123
  • Editor: Add tab context menu option "Jump to Owner" by @limbonaut in #122
  • Show version info in the editor by @limbonaut in #124
  • API: Add Blackboard methods to enable iteration, state inspection & serialization by @limbonaut in #125
  • Add unit tests for Blackboard and fix Blackboard.unbind_var() by @limbonaut in #127
  • Fix custom task issues - a rare crash & a sticky name/script issue, and improve error handling by @limbonaut in #130
  • Fix reparenting an agent deactivates its HSM by @limbonaut in #131
  • Fix crash when freeing agent with performance monitoring enabled by @limbonaut in #133
  • Fix folding/unfolding selected composite task is not working by @limbonaut in #136
  • Fix task tree warnings column always taking up space by @limbonaut in #142
  • Support light themes for editor icons in GDExtension by @limbonaut in #145

New Contributors

Full Changelog: v1.0.2...v1.1.0

v1.1-rc

04 Jun 07:02
db73133
Compare
Choose a tag to compare
v1.1-rc Pre-release
Pre-release

What's Changed

⚡ - compatibility breaking, follow PR link for details.

  • Blackboard: Add create parameter to bind_var_to_property and link_var by @limbonaut in #89
  • BTDecorator: Add default _tick implementation by @limbonaut in #95
  • Add tests for nested HSM flow, tests for dispatch() and get_root(), and fix BBParam saved_value initializing to null by @limbonaut in #101
  • Add note about how to run demo/tutorial by @TranquilMarmot in #100
  • Add pre-commit configuration by @limbonaut in #103
  • Breaking: Allow specifying agent in BTPlayer node via inspector by @limbonaut in #102
  • GHA: Use older toolchain for SteamDeck compatibility by @limbonaut in #107
  • Mapping variables by @limbonaut in #106
  • Editor: Check if variable is of correct type for BBParam subtypes by @limbonaut in #110
  • GHA: Generate .import files for GDExtension icons by @limbonaut in #116
  • GHA: Use godotengine buildroot mirror by @limbonaut in #117
  • Doc: Add first steps by @limbonaut in #118
  • Implement tab navigation in the editor by @limbonaut in #120
  • Fix compile-time errors with updated godot-cpp by @limbonaut in #123
  • Editor: Add tab context menu option "Jump to Owner" by @limbonaut in #122
  • Show version info in the editor by @limbonaut in #124
  • API: Add Blackboard methods to enable iteration, state inspection & serialization by @limbonaut in #125
  • Add unit tests for Blackboard and fix Blackboard.unbind_var() by @limbonaut in #127
  • Fix custom task issues - a rare crash & a sticky name/script issue, and improve error handling by @limbonaut in #130
  • Fix reparenting an agent deactivates its HSM by @limbonaut in #131

New Contributors

Full Changelog: v1.0.2...v1.1-rc

v1.0.2

23 Apr 10:29
2bfedec
Compare
Choose a tag to compare

What's Changed

  • GHA: Provide version.txt with GDExtension builds & demo project by @limbonaut in #87
  • GHA: Build .NET binaries for macOS by @limbonaut in #88
  • HSM: Delay state transition till update is finished by @limbonaut in #91
  • Support multiple debugger sessions by @limbonaut in #92
  • Fix LimboState::get_root and dispatch freeze the process in case of nested HSMs by @limbonaut in #93
  • Documentation update - BTSubTree by @onze in #96

New Contributors

  • @onze made their first contribution in #96

Full Changelog: v1.0.1...v1.0.2

Update (May 27)

Builds were updated using a different toolchain to support Steam Deck and older Linux distributions. All the packages were updated to the new build.

v1.0.1

03 Apr 14:26
0ff93fa
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.0...v1.0.1

v1.0

22 Mar 10:15
ebc2ce3
Compare
Choose a tag to compare

Good News, Everyone! 🎉

LimboAI version 1.0 is finally here after months of intensive coding and refining! 🧠🔧
Now with GDExtension support, a new powerful blackboard system, improved editor, awesome demo project, and much more! 🥳

What's Changed

  • GDExtension support!
  • 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 need to redefine it using the new system.
    • New workflow: Define variables in the BehaviorTree resource and override those variables in the BTPlayer node.
    • 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 its 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.
      • NodePath prefetching is now enabled/disabled in the BlackboardPlan editor.
    • Binding: Bind variables to object properties using blackboard.bind_var() method.
      • A variable bound to a property will have the same value as that property (for both reading and writing).
    • Linking: Link variables using blackboard.link_var() method at runtime.
      • Two linked variables in different blackboards will share the same state.
    • Inspector property editor for BB variables:
      • Handy property editor that shows an indicator if a variable is included in the blackboard.
        • Clicking on the indicator takes you straight to the blackboard plan editor and autofills the variable name if it doesn't exist.
        • Special indicator for variables that begin with "_" (aka private variables).
      • Also provides a drop-down selection of existing variables.
      • Can be used with custom tasks.
      • Important: It appears for any StringName property in a custom task that ends with "_var" and also for exported BBParam properties.
  • Editor improvements
    • 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.
    • Cut-Copy-Paste: New Cut, Copy and Paste actions in the behavior tree editor.
    • BBParam editor: Handy custom property editor for blackboard parameters, and new BBParam types.
    • Remember collapsed branches in behavior trees.
  • Tasks
    • New BTEvaluateExpression task : Evaluate an Expression against a node or object (thanks @Rubonnek).
    • BTCallMethod improvements:
      • Include its delta as an argument. Thanks, @Rubonnek!
      • Store result on the blackboard.
      • Allow using blackboard variables as arguments for the call.
    • BTRunLimit improvements: New count_policy property.
      • Breaking compatibility: RunLimit count policy defaults to counting only successful runs. Previously, both successful and failed runs were counted.
  • State machines
    • Refactored LimboHSM, LimboState, and BTState code.
    • Disallow LimboHSM transitions to self when ANYSTATE is used.
    • Allow LimboState::dispatch to be called from inside the hierarchy.
    • Provide the previous state in the state_changed signal.
    • Fix crashing on HSM update with state transition.
    • Fix BTState not honoring API virtual methods.
  • Comprehensive Demo: New extensive demo project with a tutorial, several examples and a small game.
    • Tutorial: Introduction to behavior trees with examples inside the demo project!
  • Debugger improvements:
    • Performance gains: Implement selective tree updates in BehaviorTreeView.
    • New option: Specify update interval.
    • Visualize BTs in-game: Expose BehaviorTreeView and BehaviorTreeData to use with custom in-game tools.
  • Online documentation: link.
  • Other changes
    • Use StringName for blackboard variables and HSM events.
    • Remove "p_" from the argument names in the ClassDB bindings.
    • New function to decorate output variables in LimboUtility (for custom tasks).
    • Expose checks and operations in LimboUtility (for custom tasks).
    • Better error handling when resolving _generate_name.
    • Complain in Blackboard::get_var if variable is missing.
    • Fix: BTProbability showing incorrect percentage.
    • Fix crash upon increasing TypedArray<BBVariant> size (thanks @Rubonnek).
    • Fix building as external module (thanks @dpalais).
    • Fix BehaviorTreeView::update_tree null data crash (thanks @Rubonnek).
    • Fix: Assigning variables via code might have no effect if done before initialization.
    • Fix error when clicking resource header in debugger with a scene-embedded BT.
    • Fix user-passed parent scope is ignored in state initialization (thanks @dpalais).
    • Documentation updates.
    • And more!

New Contributors

Full Changelog: v0.5...v1.0