Skip to content

v1.0-rc2

Pre-release
Pre-release
Compare
Choose a tag to compare
@limbonaut limbonaut released this 19 Feb 13:27
· 436 commits to master since this 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.