GithubHelp home page GithubHelp logo

mystikalpooka / unity-visual-behavior-tree Goto Github PK

View Code? Open in Web Editor NEW
37.0 6.0 8.0 5.59 MB

Reactive Visual Scripting Behavior Tree Tool for Unity 2018.x+

License: MIT License

C# 99.90% Shell 0.10%
unity unity3d unity-editor unity2d unity-scripts tree behavior behavior-trees behaviortree behaviors

unity-visual-behavior-tree's People

Contributors

gitter-badger avatar mystikalpooka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

unity-visual-behavior-tree's Issues

Add PR Templates

In order to better facilitate open source community contributions (should there be any...) there needs to be a pull request template and some ground rules laid out for how contributions should be made and how they will be accepted.

This is probably best to work on AFTER starting unit tests, as ideally I want at least 60% coverage on internal unit tests (AKA NOT editor GUI crap yet).

Improve Efficiency of Tick Method

Currently the Tick methods set an internal state that the parents must then check. This is not required any more since we are using reactive extensions which alleviates the problems with using coroutines that can only return IEnumerator. Having tick methods return the state immediately would be more efficient and much easier to work with.

Streamline Manager Component Editor

The current Monobehavior editor is a bit clunky and should be paired down.

This includes:

  • enable/disable the splice-list when enabling/disabling the splice boolean value
  • Rework the save feature to be like the "save file dialog" feature in the current BTree window editor.
  • Continue to update the descriptions of labels and provide better information overall
  • probably more

Fix Saving function in editor window

Currently the "save" button acts as a save file dialog at all times. This should probably be split into "save" and "save as" functionality to make it easier to quickly save.

Come Up With Clever Name

"Unity Visual Behavior Tree" is basically the most boring crap name ever, so a new name would be a good idea.

Look Into Node Framework(s) for editor UI

The current UI works (technically) but it really isn't pretty. Adding to that, apparently the debugger coloring isn't working on at leasrt one installation. Not sure if that is because of the IMGUI code or just because of windows 10, but it is worth a look anyways.

Update SpliceIntoTree() method

The method SpliceIntoTree() on BehaviorManager is still using the old non-reactive way of splicing into a tree and the UI for it is a bit clunky. I will want to swap this to an easier format.

Debug Tool

A comprehensive debugging tool for tracking down issues.
Include:

  • Color-based state information (quickly look at a behavior and know its state)
  • Frame-by-frame snapshotting
  • ADVANCED Debugging information (possible failures, etc?)

Abstract Behavior Manager Code

The behavior manager is currently responsible for far too much by itself and can not do complicated things without changing multiple things inside of the manager and the editor.

My plan is to abstract all of the behavior running stuff into its own class and use it as a composite managing system. This single system will be included in the manager, which will instead be there just for interacting with the tree runner systems rather than directly running the behaviors and sending events, etc.

Switch to JSON.NET for Unity

Newtonsoft fails when compiling for IL2CPP in certain iOS builds. Swapping to JSON.,NET should be basically an in-place swap and should fix these issues outright.

Still active?

It's been more than two months now since the project was last updated so I'm wondering if it's still under development. I like the idea of using UniRx for events and the upcoming debug feature got me excited but I'm not sure it's worth the wait. Thanks so much for sharing your work still.

Add Pictures to Documentation

Definitely need to add some screenshots to the documentation and readme to make it easier to read and follow... and more importantly, to show off how cool the real-time editor looks! (....yeah I know it looks like ass right now, but it will eventually look better! I think!)

Switch to Reactive Programming

To facilitate multiple things such as complex debugging, realtime feedback in UI, etc, switch to a reactive programming style for the "backend" tree behavior components.

For 2017.3.x this means using uniRx (https://github.com/neuecc/UniRx) library from the asset store. In 2018.1.x+ actual Rx.net should be enabled and usable (along with other standard .net 4 things) so this may change.

Add Unit Tests

Only have a single unit test and it barely tests anything... Add units tests including test coverage!

(Any projects aimed at testing unity packages specifically would be a great help, if anyone knows any!)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.