Skip to content

Releases: limbonaut/limboai

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

v1.0-rc3

13 Mar 16:16
088ef00
Compare
Choose a tag to compare
v1.0-rc3 Pre-release
Pre-release

LimboAI 1.0 RC3 is out now 🚀 bringing us a step closer to the stable release with a number of small fixes and improvements.

Changes in v1.0-rc3

  • Improvements
    • Prefetching rework: Move prefetching into BlackboardPlan and add checkbox to the plan editor.
    • Linking vars with Blackboard::link_var.
    • Blackboard-related improvements and fixes.
    • BBParam editor: Combine type+mode functionality in one button.
    • Demo: Display custom task source code upon selection in BehaviorTreeView.
  • Fixes
    • Fix crashing on HSM update with state transition.
    • Fix "Manage" button is sometimes shown for derived plans.
    • Fix BTState not honoring API virtual methods.
    • Fix building as external module (thanks @dpalais).
    • Fix BehaviorTreeView::update_tree null data crash (thanks @Rubonnek).
    • Set parent scope in state initialization (thanks @dpalais).
    • Demo-related fixes.
  • API changes
    • Expose BlackboardPlan factory methods.
    • New task_selected signal for BehaviorTreeView.
    • Use StringName for blackboard variables and HSM events.
    • Remove "p_" from the argument names in the ClassDB bindings.
    • Provide the previous state in the state_changed signal.
    • Allow LimboState::dispatch to be called from inside the hierarchy.
    • Expose BehaviorTreeView::clear to GDScript (thanks @Rubonnek).
    • Expose additional BlackboardPlan methods for custom tooling.
  • Documentation updates.
Previous changes in v1.0 (click to expand)

Changes in v1.0-rc2

  • Debugger improvements:
    • Performance gains: Implement selective tree updates in BehaviorTreeView.
    • New option: Specify update interval.
  • New BTEvaluateExpression task : Evaluate an Expression against a node or object (thanks @Rubonnek).
  • Demo: Various fixes.
  • Documentation updates.
  • GHA: Add debug build for web target, and add the missing entries in GDExtension manifest.
  • Fix crash upon increasing TypedArray<BBVariant> size (thanks @Rubonnek).
  • Fix icons not showing for user tasks in the demo project.

Full Changelog: v1.0-rc1...v1.0-rc2

Changes in v1.0-rc1

  • Comprehensive Demo: New extensive demo project includes a tutorial, several examples and a small game.
  • Tutorial: Introduction to behavior trees with examples inside the demo project.
  • Cut-Copy-Paste: New Cut, Copy and Paste actions in the behavior tree editor.
  • 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.
  • Visualize BTs In-Game: Exposed BehaviorTreeView and BehaviorTreeData to use with custom in-game tools.
    • BehaviorTreeView received improvements.
  • Other changes
    • Updated documentation with fixes from @VisitingOcean and @Rubonnek.
    • Fix: BTProbability showing incorrect percentage
    • Editor: Remember collapsed items in task tree
    • Fix: Debugger crashes when detached in GDExtension
    • Fix: Shortcuts not working in the module version
    • Disallow LimboHSM transitions to self when ANYSTATE is used
    • Improved variable synchronization between base and derived blackboard plans
    • Util: New function to decorate output variables (can be used by scripts)
    • Better error handling when resolving _generate_name
    • Blackboard: get_var now complains when variable is missing
    • GHA: Added Web target to GDExtension workflow

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.
    • 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.
    • Binding: Bind variables to object properties using blackboard.bind_var() method.
    • Blackboard variable property editor:
      • Used in the blackboard 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

Changes in v1.0-dev2

  • 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.

Changes in v1.0-dev1

  • 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.

New Contributors

Full Changelog: v1.0-rc2...v1.0-rc3

v1.0-rc2

19 Feb 13:27
Compare
Choose a tag to compare
v1.0-rc2 Pre-release
Pre-release

Changes in v1.0-rc2

  • Debugger improvements:
    • Performance gains: Implement selective tree updates in BehaviorTreeView.
    • New option: Specify update interval.
  • New BTEvaluateExpression task : Evaluate an Expression against a node or object (thanks @Rubonnek).
  • Demo: Various fixes.
  • Documentation updates.
  • GHA: Add debug build for web target, and add the missing entries in GDExtension manifest.
  • Fix crash upon increasing TypedArray<BBVariant> size (thanks @Rubonnek).
  • Fix icons not showing for user tasks in the demo project.

Full Changelog: v1.0-rc1...v1.0-rc2

Previous changes in v1.0 (click to expand)

Changes in v1.0-rc1

  • Comprehensive Demo: New extensive demo project includes a tutorial, several examples and a small game.
  • Tutorial: Introduction to behavior trees with examples inside the demo project.
  • Cut-Copy-Paste: New Cut, Copy and Paste actions in the behavior tree editor.
  • 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.
  • Visualize BTs In-Game: Exposed BehaviorTreeView and BehaviorTreeData to use with custom in-game tools.
    • BehaviorTreeView received improvements.
  • Other changes
    • Updated documentation with fixes from @VisitingOcean and @Rubonnek.
    • Fix: BTProbability showing incorrect percentage
    • Editor: Remember collapsed items in task tree
    • Fix: Debugger crashes when detached in GDExtension
    • Fix: Shortcuts not working in the module version
    • Disallow LimboHSM transitions to self when ANYSTATE is used
    • Improved variable synchronization between base and derived blackboard plans
    • Util: New function to decorate output variables (can be used by scripts)
    • Better error handling when resolving _generate_name
    • Blackboard: get_var now complains when variable is missing
    • GHA: Added Web target to GDExtension workflow

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.
    • 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.
    • Binding: Bind variables to object properties using blackboard.bind_var() method.
    • Blackboard variable property editor:
      • Used in the blackboard 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

Changes in v1.0-dev2

  • 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.

Changes in v1.0-dev1

  • 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.

v1.0-rc1

15 Feb 18:52
Compare
Choose a tag to compare
v1.0-rc1 Pre-release
Pre-release

Changes in v1.0-rc1

  • Comprehensive Demo: New extensive demo project includes a tutorial, several examples and a small game.
  • Tutorial: Introduction to behavior trees with examples inside the demo project.
  • Cut-Copy-Paste: New Cut, Copy and Paste actions in the behavior tree editor.
  • 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.
  • Visualize BTs In-Game: Exposed BehaviorTreeView and BehaviorTreeData to use with custom in-game tools.
    • BehaviorTreeView received improvements.
  • Other changes
    • Updated documentation with fixes from @VisitingOcean and @Rubonnek.
    • Fix: BTProbability showing incorrect percentage
    • Editor: Remember collapsed items in task tree
    • Fix: Debugger crashes when detached in GDExtension
    • Fix: Shortcuts not working in the module version
    • Disallow LimboHSM transitions to self when ANYSTATE is used
    • Improved variable synchronization between base and derived blackboard plans
    • Util: New function to decorate output variables (can be used by scripts)
    • Better error handling when resolving _generate_name
    • Blackboard: get_var now complains when variable is missing
    • GHA: Added Web target to GDExtension workflow
Previous changes in v1.0 (click to expand)

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.
    • 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.
    • Binding: Bind variables to object properties using blackboard.bind_var() method.
    • Blackboard variable property editor:
      • Used in the blackboard 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 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.
      • 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

Changes in v1.0-dev2

  • 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.

Changes in v1.0-dev1

  • 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.