mirror of
https://github.com/flame-engine/flame.git
synced 2025-10-30 08:27:36 +08:00
# Description CommandDash is shutting down and the AI Code assist isn't operational anymore. This PR requests its removal from the all Readme. We're thankful for being able to serve the community and apologise for the interruption. ## Checklist - [X] I have followed the [Contributor Guide] when preparing my PR. - [X] I have updated/added tests for ALL new/updated/fixed functionality. - [X] I have updated/added relevant documentation in `docs` and added dartdoc comments with `///`. - [x] I have updated/added relevant examples in `examples` or `docs`.
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.
- Composite
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();