-
Notifications
You must be signed in to change notification settings - Fork 194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NPBehave 2.0 Changes - Wishlist #25
Comments
Awesome. I'm looking forward to it |
NB |
I think we just need to make the logic part of NPBehave ununity dependent and just change the driver of NPBehave to a FixedUpdate that we write ourselves, which also caters to the logical frame requirements of many online game servers and clients.As for support for other game engines, you can let users customize. |
I would like to have a plugin or software that can be debugged visually on the server. |
I have 2 requests:
So it would be like this: etc.. The thing is this is my 2nd time using NPBehave, and having to make lots of nests with lots of paranthesis can become insane, if you forgot to close paranthesis the moment you created a node, everything below and above that code relevant to behaviour tree becomes red, however i must say i become better at it on my 2nd try, but this issue was the reason why i quit using NPBehave on my 1st try. (please note that i am no expert in coding so maybe i am just a noob :D ) 2: Have debug 'steps', so when NPBehave calculates the node it would print a (perhaps a customazible)log to Debugger window and when we click on that log Debugger window could show the states of all nodes and Blackboard values in that particular moment. |
Well, I realized this the first time I saw NPBehave, but that doesn't affect NPBehave which is a nice behavior tree.Maybe you can try to make a visual tool, I have made one, but some parts are not handled perfectly, so I don't plan to open source currently, it looks similar to this issue I expect to pull it to this great author in January 2020 |
It should be quite easy as most of the base NPBehave library is actually not tied to Unity. We just have to make the
Maybe we could think about providing one by running a little HTTP server in NPBehave, that would also solve the issue that we currently have a debugger that's dependent on Unity
Yeah that should be possible, although I wouldn't personally make this the default way to describe behaviour trees. However I have to admit that I also had this problem from time to time. What I did in the past to prevent huge nesting was splitting my tree up, by creating factoring methods that created me subtrees.
Yes I agree, that could be useful.
Yeah that sounds good and could be definitely helping some kind of users. Looking forward to it |
Yes, the Debug tool out of Unity is a tricky issue, But I don't have any good ideas at the moment, as you mean to make a lightweight WEB application, but I can't imagine how to connect to the behavior tree...,I'm looking forward to your performance |
Maybe something about persistance to support save/load systems? In many cases restoring the blackboard could be enough but on many cases with nodes related to time and the nodes that doesnt stop itself when condition is no longer met could be tricky. So it would be great to have to have a lets say Save method and this method could either directly save to a file or give us a savable struct so we can intergrate that to our save system. |
Firstly, I'd like to thank you a lot for the awesome work done here and the MIT license. |
yeah exactly, it should be not that hard to split that up. It's more about how the project(s) will be structured. |
Hello and thanks for your awesome work. An example is the node editor framework, which depends on undo pro: https://github.com/Seneral/Node_Editor_Framework/blob/v1.0.2-lts/package.json {
"name": "com.seneral.nodeeditorframework",
"displayName": "Node Editor Framework",
"version": "1.0.2",
"unity": "2018.1",
"description": "A flexible and modular Node Editor Framework for creating node based displays and editors in Unity",
"category": "",
"dependencies": {
"com.seneral.undopro": "1.0.0"
}
} Using this, you could split the project in two: core and unity and have unity depend on core. More info here: https://neogeek.dev/creating-custom-packages-for-unity-2018.3/ |
I recommend make NPBehave like some runtime, and build behavior tree use some like json or xml file. |
yes I agree, I'm thinking about adding YAML support for my own game, probably gonna put it straight into NPBehave if I can make it general enough |
Is MemoryPack a good choice for serialization? |
Looking at how things work in NPBehave two years after I wrote it, I realise it has some flaws in the aborting/Stops Rules, that cannot be resolved without major changes to the API. That’s why I aim for a new major version.
If you also have suggestions, feel free to comment on this ticket.
My Suggestions:
Base C# Library
As I currently don’t work in Unity, but in Monogame, I would like to split the NPBehave in a base C# library and have separate git-projects for each of the specific engines: Unity, Monogame etc.
Stops Rules
IMO one of the biggest flaws NPBehave has, is the
Stops Rules
and the aborting of nodes.Succeed
orFailed
. This is a property of NPBehave that I like over UE4, where aborting a node results in the whole branch to be aborted. You can get UE4s way by a combination ofIMMEDIATE_RESTART
and returning the right result in the aborted node, however the way it works right now is not very obvious. I would like to get rid of anyIMMEDIATE_RESTART
versions of the Stops Rules, and give the control over what “aborting” actually means completely to the aborted node. In case a node gets aborted, the node could control the flow by finish with:Succeed
,Failed
orAborted
(the latter is a replacement for IMMEDIATE_RETART but will always guarantee that the aborting decorator is restarted)The text was updated successfully, but these errors were encountered: