Files
Lukas Klingsbo a1f9633cbc chore(release): Publish Flame v1.18.0 et. al (#3178)
```
Package Name           Current Version   Updated Version   Update Reason
behavior_tree          0.1.1             0.1.2             manual versioning
flame                  1.17.0            1.18.0            manual versioning
flame_behavior_tree    0.1.1             0.1.2             manual versioning
flame_forge2d          0.18.0            0.18.1            manual versioning
flame_isolate          0.6.0+1           0.6.1             manual versioning
flame_markdown         0.2.0+1           0.2.1             manual versioning
flame_oxygen           0.2.1             0.2.2             manual versioning
flame_sprite_fusion    0.1.1             0.1.2             manual versioning
flame_lottie           0.4.0+1           0.4.1             manual versioning
flame_noise            0.3.0+1           0.3.1             manual versioning
flame_network_assets   0.3.1             0.3.2             manual versioning
flame_spine            0.2.0+1           0.2.1             manual versioning
flame_audio            2.10.1            2.10.2            updated with patch changes
flame_bloc             1.11.1            1.12.0            updated with minor changes
flame_lint             1.1.2             1.2.0             updated with minor changes
flame_rive             1.10.1            1.10.2            updated with patch changes
flame_texturepacker    4.0.0             4.0.1             updated with patch changes
flame_tiled            1.20.1            1.20.2            updated with patch changes
jenny                  1.3.0             1.3.1             updated with patch changes
flame_test             1.16.1            1.16.2            dependency was updated
flame_fire_atlas       1.5.1             1.5.2             dependency was updated
flame_riverpod         5.4.1             5.4.2             dependency was updated
flame_svg              1.10.1            1.10.2            dependency was updated
```
2024-05-27 21:20:57 +00:00
..

flame

This package provides a simple and easy to use behavior tree API in pure dart.


Behavior tree is a very common way of implementing AI behavior in game and robotics. Using this, you can break-down a complex behavior of an in game AI, into multiple smaller nodes.

Features

  • Nodes
    • Composite
      • Sequence: Continues execution until one of the children fails.
      • Selector: Continues execution until one of the children succeeds.
    • Decorator
      • Inverter: Flips the status of the child node.
      • Limiter: Limits the number of ticks for child node.
    • Task
      • Task: Executes a given callback when ticked.
      • AsyncTask: Executes an async callback when ticked.
      • Condition: Checks a condition when ticked.

Getting started

Add this package to your dart project using,

dart pub add behavior_tree

Usage

  • Create a behavior tree.
final treeRoot = Sequence(
  children: [
    Condition(() => isHungry),
    Task(() => goToShop()),
    Task(() => buyFood()),
    Task(() => goToHome()),
    Task(() => eatFood()),
  ]
);
  • Tick the root node to update the tree.
final treeRoot = ...;
treeRoot.tick();