29 Sep 2010

Behave 1.1 released

Hello reader. It’s been quite a while since my last conf… post.

Yea sorry about that. Busy, busy, but then again I suppose most had probably figured that one out. However, I have had a bit of time here and there over the last few months to polish away on Behave and keep it compatible with Unity 3 as it developed.

A lot of this keeping up to date work at times resulted in some good old fashion rewrites – like the entire asset handling and parts of the compiler. This is probably not very interesting to you, but it is quite so to me as it has allowed me to restructure internally in ways that make the system as a whole more flexible and ready for change and additions.

One of those additions which I did sneak in next to the polish and updating is a new debugger. The in-game debugger has been thrown out in favour of one living in your editor environment. YAY! No really, yay. You will like this and not just because I say so. Ah and as much requested this one actually dives into sub-trees, making it actually quite useful compared to its predecessor.

Oh and the compiler runs on Windows too now. And I also shaved off some cruft in the action/decorator handler syntax, making Ricardo extra happy.

I will be putting up some short documentation for Behave 1.1 shortly, but if you still haven’t decided to download yet, here is a short teaser on the new debugger: This text is a link to a movie file. Click it. It will be fun!

Enough blabbering though. The package is available in the download section and the changelog is right here:

  • Made compatible with Unity 3.0 – including ensuring that the 2.5-2.6.1 bug preventing compilation on Windows is fixed on the Unity side.
  • UI tweaks and polish.
  • Added the option to have return values of nodes be inverted.
  • Fixed compiler bug when facing sequence or selector with only one child node.
  • Renamed Library.Tree → Library.InstantiateTree.
  • Added Tree.Tick () and Tree.Reset () methods using the IAgent instance given at instantiation of the tree.
  • Removed the abstract Library class.
  • Changed generated library class:
    • Trees → TreeType.
    • Actions → ActionType.
    • Decorators → DecoratorType.
    • Tree InstantiateTree (int, IAgent) → static Tree InstantiateTree (TreeType, IAgent)
    • int TreeID (Tree) → static TreeType Type (Tree)
    • bool IsAction (int) → static bool IsAction (int)
    • bool IsDecorator (int) → static bool IsDecorator (int)
  • Upped editor performance.
  • New asset structure change with automatic import of Behave 1.0 assets.
  • Changed action and decorator handlers. These are now the handlers mapped:
    • public BehaveResult Init[Name][Action/Decorator] (Tree sender, string stringParameter, float floatParameter, IAgent agent, object data);
    • public BehaveResult Tick[Name][Action/Decorator] (Tree sender, string stringParameter, float floatParameter, IAgent agent, object data);
    • public void Reset[Name][Action/Decorator] (Tree sender, string stringParameter, float floatParameter, IAgent agent, object data);
    • public BehaveResult Init[Name][Action/Decorator] (Tree sender);
    • public BehaveResult Tick[Name][Action/Decorator] (Tree sender);
    • public void Reset[Name][Action/Decorator] (Tree sender);
    • public BehaveResult [Name][Action/Decorator] {get; set;}
  • Added support for collection duplication.
  • Moved debug rendering into the editor with its own dedicated debugger window, including actor listing.
  • Debugger now renders active sub-trees as well.

Oh and if you are upgrading a previous Behave install in a project, please see Readme.txt for details on snags you might hit and how to solve the whole thing in 4-5 steps.

Ah and one more thing: Behave 1.1 removes the “only for non-commercial work” clause from the license.

Have fun! And remember to tell me about all your awesome projects!

Unity Protocol Buffers
Behave 2.7
Learn
Behave 2.6
Trusted Gear
Mad Mash Versioning
Behave 2.5
Behave 2.4
Co-very-routine
Construct
The Engine Wars: Numbers
GDC 14: The Quest For Fun
Moving in Unity
Behave 2.3
Unity and .net assemblies
Behave 2.2
ReView
Behave 2.1
Behave 2.0
Unity Hacks: Dual sticks
Unity Hacks: Cameras
Unity Hacks: Touch gestures
OnRenderTextureGUI
Unite 13 video "Unity Hacks" available
The implicit local network interface
Talks and progress
Five years of Unity expertise looking for contracts
Automagic Unity Android Java gadget OF DOOM!
Invading Planet from your couch
Mountain Lion and laggy bluetooth and duct-tape
Unite 12 video and new videos section available
Asia Bootcamp videos now available
Path is now MIT licensed
Behave 1.4 released
So I've been a bit busy lately
Behave 1.3 released
IGDA Unity SIG slides
Second Unity IGDA SIG this evening: Scene construction and AI
First IGDA Unity SIG this evening
Alternative licensing available
Pathfinding in two lines
Path 2 released
Assembling and assimilating
Path 2 intro screencast
Path 2 beta release for GGJ
AIgameDev master class video now online
Expanding beta
Behave AIgameDev master class public stream
Behave master class on open AIgameDev stream tomorrow
Interview with AIGameDev
New video: From tree to code
Issue tracking on github Behave release project
IT University Copenhagen Unity course completed
IT University Copenhagen Unity course files Thursday
CPH IT University Unity course files
Behave 1.2 released
Video: Behave - starting from scratch
Behave runtime documentation updated
Behave 1.1 released
FAFF cleanup: Sketch
Building a menu of delegates and enums
Pick me! Pick me!
Optimising coroutine yielding in C#
Downloading the hydra
New license of Path: GPL
CopyInspector
Magnetic
GUI drag-drop
Logging an entire GameObject
I bet you can't type an A!
Where did that component go?
UnitySteer
New and improved: Behave 1.0 released
Behave 0.3b and unity 2.5
Behave 0.3b hotfix
Path tutorial video available
Path 1.0 launched!
Continued community tutorials
Community tutorial
New tutorial
First tutorial available
Behave 0.3b
unite '08 open-mic session
Behave 0.2b
Behave 0.1b
Behave pre-release
Path beta 0.3b
Path beta 0.2b
Path beta 0.1b
Path pre-release