I love UE4 a lot because it gets so very much done right,
however an issue that’s really hampering the early experience when working with this engine is the hours I’ve lost thinking something was a bug or I wasn’t doing it the right way, when in fact it couldn’t be done at all.
The most recent case of this was having spent hours this morning working on my AI within the behavior tree, trying to set an Enumerator value within a task, only to eventually find mention on the answerhub that you should be setting values only within services, even though you still have all the actions to set blackboard values in tasks, as well as elsewhere (I had planned to also set a blackboard value from the animation blueprint because there was a way for me to do that, but now I’m not sure if that will work either).
Biggest reason it had me lost is because it half worked (would change the value inside the task but not for the behavior tree).
So some feedback I would like to give is that it would be really nice if you were able to completely disable some functions like this where they wouldn’t work (If I can get access to a BP function I assume there is a way for it to work).
They haven’t written the documentation for the Behavior Tree’s yet, and I think it’s still in what they consider experimental status. When you are using it you are basically saying, I know this isn’t finished but I want to use it now. It takes some experimentation.
Months ago some of the devs said they were going to write tutorials, but those never got completed. I think they decided the whole thing needs to get stable before they write tutorials. If you have specific questions, the AnswerHub is the best place to ask them.
I’m not sure I know what you mean. You should be able to set whatever you want wherever you want. BT tasks are meant to do work after all. The recommendation is not to have tasks that write data to black board directly since task’s execution can be guarded by conditions observing the very bb keys being modified. It can get messy if you do that, but only conceptually. Technically this should work. This is just a recommendation and we’re not forcing it in any way. You’re free to use BTs in any pattern you like (as long as it works, and even if it doesn’t but it would make sense for it to work then let us know).
BT documentation is almost done but it had to be put aside for a moment by higher priority tasks. Regarding tutorials I don’t know who said that months ago, but now I’m working on some tutorials myself, so stay tuned. BTs have been stable for couple of month already (except for BT tools just missing some polish) and only lack of time stops us from putting up awesome, epic samples.
I realize that and accept it’s still in experimental, however I heard it was basically stable and ready to use short of some polish in the livestreams, it was just the latest example as I forgot the other situations where I’d thought something was a bug but it was just something I wasn’t suppose to be doing.
I eventually worked out that this example wasn’t completely relevant as I found the reason it was getting stuck like it was, was indeed an issue with my blueprint. After changing the Enum I had to use a ‘Finish Execute’ node to exit that branch (which I didn’t need to do in the previous AI I made). Without finishing the execute when looking at the debug behavior tree information the enum value didn’t get updated, hence mistaking it for a bug or something I wasn’t suppose to do.
An official BT tutorial would be awesome, especially with all the great changes in 4.3 :), goodluck I can’t wait :D.