Limboai Versions Save

LimboAI - Behavior Trees and State Machines for Godot 4

v1.0.2

1 month ago

What's Changed

New Contributors

Full Changelog: https://github.com/limbonaut/limboai/compare/v1.0.1...v1.0.2

v1.0.1

1 month ago

What's Changed

Full Changelog: https://github.com/limbonaut/limboai/compare/v1.0...v1.0.1

v1.0

2 months ago

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: https://github.com/limbonaut/limboai/compare/v0.5...v1.0

v1.0-rc3

2 months ago

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: https://github.com/limbonaut/limboai/compare/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: https://github.com/limbonaut/limboai/compare/v1.0-rc2...v1.0-rc3

v1.0-rc2

3 months ago

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: https://github.com/limbonaut/limboai/compare/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

3 months ago

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.

v1.0-dev3

4 months ago

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 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
Previous changes in v1.0 (click to expand)

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-dev2

4 months ago

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.

Changes in v1.0

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.

v1.0-dev1

4 months ago

🎉 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. If you'd like to help with testing, grab a build below and feel free to open an issue if you encounter a bug. 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!

v0.5

6 months ago

🎉 Good news, everyone! 🎉

LimboAI v0.5 is released, bringing numerous quality of life improvements, new tasks and Godot 4.2 support!

Highlights

  • Godot 4.2 Support.
  • New Behavior Tree Tasks:
    • BTProbabilitySelector: New composite with a convenient probability editing popup.
    • Working with blackboard variables: BTSetVar, BTCheckVar, BTCheckTrigger.
    • Working with agent properties: BTCheckAgentProperty, BTSetAgentProperty.
    • Animation control: BTPlayAnimation, BTAwaitAnimation, BTPauseAnimation, BTStopAnimation.
    • BTCallMethod: Call a method on a node or object.
  • Behavior Tree Comments: Annotate behavior trees with the new BTComment task.
  • BTRepeat Improvement: Added a forever mode to the BTRepeat task.
  • Improved Task Palette:
    • New context menu options for BT tasks: "Edit Script" and "Open Documentation."
    • Add and remove tasks from favorites.
    • Added a "Refresh" button.
    • Introduced a new category system for better organization.
    • Improved task filtering capabilities by category and type.
    • Rich documentation tooltips.
  • Keyboard Shortcuts: Added keyboard shortcuts for a variety of editor actions.
  • Action Banners: Now you'll receive action banners for various alerts requiring user input.
  • Misc Menu: Includes shortcuts for opening the debugger and project settings, creating script templates, and displaying an introduction to Behavior Trees.
  • Task Custom Names: BT tasks with custom names are now emphasized in both the editor and debugger.
  • Unit Testing: Implemented unit tests for most tasks and nodes, with testing performed in the new GHA workflow on commits to the master branch.
  • Improved Documentation: Enhanced in-editor documentation for all classes and added an introduction to Behavior Trees.

Other Fixes and Improvements

  • Fixed issues with tasks disappearing during drag & drop.
  • Resolved oddities with BBVariant and Inspector.
  • Codebase refactored and cleaned up.
  • Improved handling of editor's theme.
  • Fixed various bugs in the BT tasks.
  • Fixed and improved GitHub workflows.
  • Improved compatibility with C#.
  • Now using the TaskStatus enum instead of integers.
  • Exposed the abort method in the BTTask class to support custom BT player implementations.