All posts by Ash Blue

Ashton Blue is a web developer in San Francisco who engages in helping its citizens, design meetings, fighting the occasional nemesis, and public speaking. He also has a noteworthy obsession with coffee...

Unity Behavior Tree Library – Fluid

While there are tons of unity behavior tree libraries on the Asset Store. I haven’t found one that meets all my game dev needs. There is the amazing Fluent Behavior Tree library. But for me it’s missing features and the project isn’t currently in development. What I’ve been craving is an open source Unity behavior tree library that’s easily extendible.

I’m proud to announce Fluid Behavior Tree. An open source behavior tree system that’s easily extendable without forking the code. This means it’s updatable and quite resilient to breaking changes on upgrade.

Download on GitHub

Behavior tree features

Here are a few highlights of why this library is awesome!

  • Extendable, write your own custom re-usable nodes
  • Pre-built library of tasks to kickstart your AI
  • Heavily tested with TDD and unit tests

Other Features

  • Minimal runtime footprint
  • Tracks the last position of your behavior tree and restores it the next frame
  • Documentation on how to use and extend
  • Open source and free
  • Built for Unity (no integration overhead)
  • Includes a usage example of CTF

Usage Example

using UnityEngine;
using Adnc.FluidBT.Tasks;
using Adnc.FluidBT.Trees;

public class MyCustomAi : MonoBehaviour {
    private BehaviorTree _tree;
    private void Awake () {
        _tree = new BehaviorTreeBuilder(gameObject)
                .Condition("Custom Condition", () => {
                    return true;
                .Do("Custom Action", () => {
                    return TaskStatus.Success;

    private void Update () {
        // Update our tree every frame

Why is this better than other Unity behavior tree libraries?

Most behavior trees for Unity are paid products. There’s nothing wrong with premium paid projects (and devs should be paid for their time). But it can be difficult to share code for proprietary software. Paid projects also run the risk of being deprecated or having difficulty getting enough critical mass to start a continued community.

MEAN Checklist: Example Application

Ever since I delved into TypeScript 2 years ago I’ve been intrigued by the idea of an application built on it from front-to-back. This idea isn’t that odd and many Angular 2+ seeds are already using this tech stack. The MEAN Checklist is an example app that demonstrates a full stack TypeScript application. It was written in one week and deployed through Heroku. While it isn’t perfect and has some rough Heroku integration due to timeline constraints, it’s a great example app for rolling your own full stack apps.

*NOTE*: Heroku’s free tier is pretty slow these days. It may take a minute or two for the app to initially load when it wakes up out of sleep mode. As Heroku puts apps in a sleep state if they haven’t been used recently.

Technology Highlights

  • Back-end
    • MongoDB
    • Passport
    • Express
    • TypeScript
    • Gulp
  • Front-end
    • Angular CLI
    • Bootstrap 4
    • Font Awesome
    • Moment.js
  • API Testing
    • Postman
    • Newman

Why you should be using GitFlow

Ever had a team project with where merge conflicts seemed infinite? Code vanished constantly and nobody knew how? Or perhaps nobody could decide on how to create and merge new branches? Well you might want to consider GitFlow which solves all of these problems. It focuses on a master and develop branch, but allows you to create new features and releases for both of them with minimal risk of merge conflicts. What’s even better is popular Git GUI’s like SourceTree and Git Tower support it out of the box. For more info on GitFlow and getting started, check out the link below.