Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice

[Released] Behaviour Machine - New Visual Scripting FSM + HFSM + BT

Discussion in 'Assets and Asset Store' started by Anderson-Cardoso859, Mar 23, 2014.

  1. Anderson-Cardoso859

    Anderson-Cardoso859

    Joined:
    Mar 23, 2014
    Posts:
    61
    Hello guys,

    The second and third videos from the series Basics are ready!

    2 - State Machines




    3 - Behaviour Tree



    I hope you enjoy!
     
  2. Anderson-Cardoso859

    Anderson-Cardoso859

    Joined:
    Mar 23, 2014
    Posts:
    61
    Hello guys,

    I'll start to rewrite the GettingStarted document; since everyone that I gave support is a programmer, I'm thinking of turning it into something more programmer oriented, with practical examples on how to create your own states, nodes and variables, among other nice tricks.

    What you think about that?
     
  3. Anderson-Cardoso859

    Anderson-Cardoso859

    Joined:
    Mar 23, 2014
    Posts:
    61
    Hello guys,

    Another HUGE update is coming to the asset store.
    Version 0.5 was submitted and should be live on the asset store in a few days.


    Easily interface with scripts!
    I think it's worth to mention that now you can easily interface with your scripts, third party plugins and native Unity objects.

    I added custom variables that use reflection and let you access any public static/instance property/field of any UnityEngine.Object! Check it out:

    property.gif

    In the example above I'm using a Vector3Set, but since these fields/properties are variables; you can directly access they from any node. If you drag a GameObject to the target, it'll shows up its properties as well as its components' properties :)


    Random Nodes with Weights

    I added weight parameters to the RandomSelector, RandomSequence and RandomChild node. Here is the RandomSelector inspector:

    RandomSelector.png

    These properties are the relative weight of each child, they let you control how often they are selected. The weight properties are automatically updated when you add/remove/move children.


    And much more:
    - NEW: Easy and powerful integration with other scripts and native objects (GetProperty/SetProperty nodes + direct access to properties/fields (static or instance) of any Unity Object via reflection.
    - NEW: Redesigned sample scenes: added sounds, new features and more aesthetic elements.
    - NEW: Serialization feature; suppport for abstract fields!
    - NEW: Serialization feature; the type Variable on nodes can be serialized to ANY variable value/type, very powerful!
    - NEW: Material and Texture options for GetProperty and SetProperty
    - NEW: Enum support for the SetProperty node.
    - NEW: ReloadLevel, TextureSet, MaterialSet, RandomSeed, RandomChild, FloatToInt, FloatToString, IntToFloat, IntToString, StringToInt, BoolToFloat, BoolToInt, BoolToString, BoolToVector3, BoolToGameObject, BoolToObject, BoolToMaterial, BoolToQuaternion, BoolToRect and BoolToTexture nodes.
    - NEW: RandomSequence and RandomSelector now has a weight parameter for each child.
    - NEW: Easy send system events! You can use state.SendEvent(SystemEvent.FINISHED) to send the FINISHED event to the state.
    - NEW: Inspector node titlebar, looks and works exactly as the Unity component's titlebar.
    - NEW: Video option added to the toolbar menu: 'Tools / BehaviourMachine / Help / Videos'.
    - FIX: Single child error of the RandomSequence and RandomSelector nodes.
    - FIX: Displaying ObjectType in the Inspector.
    - FIX: SetProperty and GetProperty layout error on the Inspector.
    - FIX: Duplicating/pasting nodes in runtime.
    - FIX: Selecting the newly created node when dragging a script to a behaviour tree canvas.
    - FIX: Changing StateBehaviour.hierarchyName to StateBehaviour.fullStateName.
    - FIX: Now the StateBehaviour.blackboard property caches the component.
     
  4. Anderson-Cardoso859

    Anderson-Cardoso859

    Joined:
    Mar 23, 2014
    Posts:
    61
    Hi guys, the beta version is almost ending. The release version (1.0) will probably not have the editor source code. I'm doing this to protect my own work. The runtime source code will be there. So the build for all platforms and all runtime/editor functionality still works ok.

    Is that a problem for you? If so, why?
     
  5. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    I think it would be a mistake to not include the source code for the editor. Including the source actually gives you as a developer better protection as if someone put up a rival product with the same code you could get it taken down by proving the source matched. Bear in mind that there are decompilers available so someone could use one of those tools to convert it from a dll to source code and then you wouldn't even have the source match proof to go on. I don't see what the benefit to you would be of not including the source.

    The only reason for not including source code would be if you wanted to make it harder for someone to modify it or enhance it in future because the decompiled code wouldn't be very readable and contain comments. If you were developing something for a company on contract and wanted to ensure you were always used to make modifications I could see the benefit but in this case I can't.


    The only reason I would want to have the source code would be to if for some reason you stopped supporting it and a new version of unity came out I would have a good chance of being about to get it working again.

    It's just a question of trust really. The reason I decided to start using behaviour machine over playmaker was because of the lack of source code in playmaker. As a developer you have the choice to either code your own tools or buy them in the asset store to save time or get something of higher quality than you could code yourself saving time and money. When you buy a tool from the asset store you are in effect putting your trust in the developer to update it and keep it working. If you don't have the source you are in effect completely dependent on that developer. If for example a new version of unity came out and you were no longer supporting the tool it would no longer work and I would be stuck as a developer. If the source is included then I would be no worse off than if I had coded it myself because unity would try to update the code anyway and if it couldn't then I would have a chance to fix any errors to get it working again.

    I just don't see what not including the source would protect you from either. The only point in someone stealing your code would be if they wanted to sell their own product. For starters this would be unlikely as they wouldn't be able to get it into the asset store if it contained your code and changing the code enough to get it approved would be more trouble than its worth. Why would a customer choose to buy their product over yours anyway ? If they were that uncaring they would simply get it for free off a torrent site or something like that. It's the same reason that DRM is so unproductive. Piracy is committed by uncaring individuals who want free stuff. By that very nature they make for very bad customers. DRM doesn't make pirates buy stuff it just causes inconvenience for actual customers.
     
  6. Anderson-Cardoso859

    Anderson-Cardoso859

    Joined:
    Mar 23, 2014
    Posts:
    61
    Hi Ian,

    If all customers were like you, I don't even would think about close the editor source code.

    I know that is very easy to decompile a DLL and get the source code, but like you said, you will not have the line by line comment like in my tool ;). So this is some way of protection, but I agree that this is not the best one...

    The not so funny part is that a few competitors are already copying my own editor solutions/looks (a few parts, not the runtime or the entire core), and they say that this is an "editor improvements" or "new looks" o_O. They have not talked to me nor given me the credit...

    But I'm glad that the majority of the competitors are following their own path :).

    Don't worry about that, I'm working in this tool for over three years! I will not stop anytime soon.

    I'm just looking for the best way to give you guys the best tool I can develop, which includes a way to maintain a healthy competition.
     
  7. Anderson-Cardoso859

    Anderson-Cardoso859

    Joined:
    Mar 23, 2014
    Posts:
    61
    Hi guys,

    The beta has ended. Now Behaviour Machine has a Free, Indie and Pro versions.
    Everyone that has bought the beta version, now owns the Pro version that has all features from the Free and Indie versions; plus full source code and all current (and future) official packages.

    Checkout the new thread.
     
  8. OnePxl

    OnePxl

    Joined:
    Aug 6, 2012
    Posts:
    307
    Thanks, I appreciate that!
     
  9. MIK3K

    MIK3K

    Joined:
    Sep 10, 2014
    Posts:
    144
    This asset needs a little bump.

    - I'm a beginner so back when looking at Playmaker and Behavior Designer (all of 2 months ago for Playmaker and a week ago at Behavior Designer lol) I may have stumbled over Behaviour Machine Pro at $250 and skipped over it because of it's price. Found the free version today and watched 2 videos that made this my #1 choice - moving a cube (like everyone shows in tutorials) in just a couple of steps and the most important was the "Overview" video where you put together a character controller. That is exactly what I have been looking for and my brain is exploding from reading scripts. I actually understand how this works now.

    - The only reason I can think this behavior tree (and state machines) is not at the level of the other big assets (Playmaker and Behavior Designer) on the asset store is the name - "Behaviour."

    You cannot find this on the asset store even if you search for "Behaviour Machine." It doesn't show up. I would think most people are looking for "Behavior" trees. Need to add some search tags (is that what it's called?) using "Behavior" so it shows up in the search.

    Thanks for making this. I can only get the indie one, but what a steal for $25. The only thing that would make this perfect is a few more videos like the overview one showing how to do common tasks.
     
  10. Anderson-Cardoso859

    Anderson-Cardoso859

    Joined:
    Mar 23, 2014
    Posts:
    61
    Hi MIK3K,

    I'll add more search tags to the BehaviourMachine ASAP.

    I'm a programmer and a game developer and I confess that I'm not so good at marketing D:, I'm still learning from the community and has been very rewarding.

    Thanks for supporting the plugin :)

    Best Regards,
     
  11. MIK3K

    MIK3K

    Joined:
    Sep 10, 2014
    Posts:
    144
    I need to correct myself. I didn't see the 24 example scenes (was only looking in the tutorial folder and didn't see the other 6 folders). Oops.

    Well then, maybe some support for some kind of waypoint/spline system like curvy or simple waypoint system? I should probably dig deeper in Behaviour Machine before I suggest anything else :)
     
  12. winxalex

    winxalex

    Joined:
    Jun 29, 2014
    Posts:
    166
  13. Anderson-Cardoso859

    Anderson-Cardoso859

    Joined:
    Mar 23, 2014
    Posts:
    61
    Wow, controlling Mecanim using a BehaviourTrees is just f*** awesome.
    I can see a lot of good possibilities with this approach.

    Great job winxalex!