[FREE] Behavior Bricks - Visual Scripting Editor for Behavior Trees (AI & NPCs)

Behavior Bricks 1.0 - Visual Editor for AI and NPCs
- Now available for FREE on the Unity Asset Store -

2866967--210036--icon.png

Behavior Bricks (BB) is a state-of-the-art engine for Behavior Trees (BTs) along with an intuitive visual editor. Behavior Bricks has been designed with three main goals in mind: efficiency, extensibility, and reusability. As a result, Behavior Bricks includes some unique features not to be found in other tools for Behavior Trees available in the Asset Store.

State-of-the-art, unique features, and free, how is that even possible? Behavior Bricks is the showcase of the work from a research group from the Complutense University of Madrid in Spain. We work on new methods for creating artificial intelligence (AI) for non-player characters (NPCs) in games. Check our web page to find research papers related to machine learning and behavior trees, and take a glimpse of what the future may bring to Behavior Bricks:

http://gaia.fdi.ucm.es/research/bb/

For complete documentation, examples and information visit:

http://bb.padaonegames.com



  • Also compatible with Unity Personal Edition

Includes:

4 Likes

This looks really, really impressive. I can’t believe it is free. I am going to play around with it this weekend and post my thoughts.

1 Like

Thanks very much, seems like a great asset

Hi there, does it support realtime view of the state machines ?
( visualizing the state logic while the game is running)

I posted a review. This is a really strong contender for the best free asset on the store. The one thing that will keep me from using it is that I could not get it to work with Apex Path. I do have a suggestion. I liked the tutorial. I think it was very good, even if it did not cover anything particularly advanced. But my suggestion would be to have a demo scene with more advanced pre-built AI’s. Since everything is built around scriptable objects, it would enable an almost instant AI. No other AI asset on the store offers an easily modifiable nearly plug and play AI. I even think you could sell them as separate packages.

3 Likes

any chance this would be updated to work on 5.5 ?

Hi!

I can’t use Behavior Bricks, because is have some error. Is not have even window of Behavior Brick.

Look seem have some problem in dll. Because when I import Behavior Bricks to my projects, I can’t Play Scene, Unity show “All compelling errors must be fixed”, but console not show any error.

I use macOS, possible on Windows is work.

Edit: Ok, I see on some MacBook is work, so is more details about my system: Unity 5.5.0f3, macOS Sierra 10.12.1.

I am working in Unity 5.4.2f2, on a MacBook Pro running OSX 10.11.6 El Capitan. I just started the tutorial, and when I try to drag and drop the MoveToPosition action, when I drop the action in the graphical editor, it bounces back. However, when I double-click the MoveToPosition action, it spawns an instance in the graphical editor, but double-clicking another action (eg. SetActive) after spawns a second instance right on top of the MoveToPosition action, and actually changes both instances to the new action (SetActive). I am unable to move forward with the tutorial. Please help!

Behavior Bricks does not support the visual debugging of the Behaviors right now, but we are currently working on this feature, and some more, as the Zoom in the BB Editor. We want to continue improving the editor, doing it more intuitive, usable and powerful, but we cannot say when these features will be available.

Anyway, thanks for your feedback!

1 Like

Hi, EvilGremlin.

We reallly appreciate your feedback and your detailed review!

Thanks for reporting the conflict with Apex Path. We’ll take a look at this issue and we’ll try to fix it as soon as possible.

Hi, Radzievskyi.
Thanks for your feedback.

Some people are experiencing problems with Drag&Drop in the BB Editor; with some versions of Unity in Mac OS (it works fine up to Unity 5.3.6). But we think this is not your case.

We have tested Behavior Bricks in a MacBook Pro (macOS Sierra 10.12.1) with a clean Unity 5.5.0, and it does open the editor and play both Done Scenes.

Please, try reimporting the package in a new empty project, and choose “I Made a Backup. Go Ahead!” in the API Update Required pop-up window.
2883198--211735--API Update Required.png

We hope this will help you, and feel free to ask if it doesn´t work.

Hi, dbarile.

Some people are experiencing problems with Drag&Drop in the BB Editor; with some versions of Unity in Mac OS (it works fine up to Unity 5.3.6).

We are working to fix this bug and to have an update on the next weeks.
Meanwhile, if you want to try Behavior Bricks with Mac OS, we recommend using Unity 5.3.6 or earlier.

Thanks for your feedback!

Hi there! I’ve been messing around with behaviour bricks, and want to integrate them into my project. However, I’ve run into a problem when an AI that has a behaviour executor attached spawns into a scene later, instead of starting already active.

There error I get when the AI spawns in is:
NullReferenceException: Object reference not set to an instance of an object
BBUnity.UnityBlackboard.BuildBlackboard ()
BBUnity.InternalBehaviorExecutor.StartBehavior ()
BBUnity.InternalBehaviorExecutor.Awake ()
BehaviorExecutor.Awake () (at Assets/BehaviorBricks/BehaviorExecutor.cs:19)

Thanks for your time!

Hello, namespacestudio.

There should be no problem with the delayed activation of the GameObjects.
If a GameObject with a Behavior Executor is disabled, it doesn’t call the OnUpdate() function, and doesn’t use CPU time at all. Then, when you activate the GameObject, starts with it behavior and works normally (as it hadn’t been deactivated).

I’ve created a simple modification of the Quick Start Tutorial, with a GameObject that starts inactive and spawns when the Enemy approaches to the player. You can donwload the Unity package and play the scene in your computer.

Maybe, we must be missing something. Please, send us an email with a more detailed description of your problem and a Unity package with an example, so that we can help you with your issue.

Thanks for your interest in Behavior Bricks!

2886962–212114–ActivateGameObjectTEST.unitypackage (13.3 KB)

Is a great plugin!
But I think we need a “Priority Sequence” node to take precedence over one but with the functionality of a Sequence node.
Because I noticed that the “MovePosition” action, calls GetComponent on OnStart many times, since it has “Repeat” as the parent node.

Thanks for your time!

This looks really interesting… and free! lol. I’ll be giving it a try for my next project :slight_smile:

Is there any chance that this package might become open source one day? I’d like to use it in an open source project, in the robotics/AI field, so it would be preferable to base it on equally open source frameworks. I’ll be recommending the use the package to potential contributors but then how can I be sure that the included DLLs are free from any kind of malicious code?

Hi,

We are not currently considering to liberate the core framework.
However, all the actions and conditions are open source, so you can look at the C# code, and create your own custom actions and conditions.

Thanks!

1 Like

Hi,
I was also getting:
NullReferenceException: Object reference not set to an instance of an object
BBUnity.UnityBlackboard.BuildBlackboard ()

Currently I’m trying to fetch gameobject from scene from tree.
Example:
I have Object with task “Pursue” that require InParam “target”
I have Task “FindPlayer” that puts GameObj in OutParam “player”.

How can task “Pursue” use that player reference (without manually putting target reference in Blackboard)?

1 Like

Hi, markoal.

In Behavior Trees, the blackboard is the way to exchange values between nodes. If you want that one node uses the result of other one, you will have to use the blackboard.

In this case, if you do not want to select the GameObject “player” manually from the scene (in the Inspector), you can use one of the “GameObject” actions (FindByName, FindByTag) and store the output parameter in a LOCAL blackboard variable. This local variable can be used later in the “Purse” task.

And remember, that all the Actions and Conditions are open source, and you are free to modify it according to your needs. :wink:

Could you give us some more information about the NullReferenceException? Is it the same problem of namespacestudio, with runtime instantiation of GameObjects with Behavior Executor attached?

We have solved this issue in the new version that will be released pretty soon. But we are having some unexpected problems with the guid of Scriptable Objects within versions, and we are trying to fix them. We will release the new version as soon as possible, and will notify in this thread when the new version be available.

Thanks for your feedback, and sorry for the inconvenience.

1 Like