From 971125baf3a055005f78b0258234c487bd302a83 Mon Sep 17 00:00:00 2001 From: "MBA\\haisenbao" Date: Thu, 18 Apr 2024 14:51:12 +0800 Subject: [PATCH 1/5] Added a new composite node simple_parallel --- .../nodes/composites/simple_parallel.gd | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 addons/beehave/nodes/composites/simple_parallel.gd diff --git a/addons/beehave/nodes/composites/simple_parallel.gd b/addons/beehave/nodes/composites/simple_parallel.gd new file mode 100644 index 0000000..de72ed8 --- /dev/null +++ b/addons/beehave/nodes/composites/simple_parallel.gd @@ -0,0 +1,112 @@ +@tool +@icon("../../icons/sequence.svg") +class_name SimpleParallelComposite extends Composite + +## Simple Parallel nodes will attampt to execute all chidren at same time and +## can only have exactly two children. First child as primary node, second +## child as secondary node. +## This node will always report primary node's state, and continue tick while +## primary node return 'RUNNING'. The state of secondary node will be ignored +## and executed like a subtree. +## If primary node return 'SUCCESS' or 'FAILURE', this node will interrupt +## secondary node and return primary node's result. +## If this node is running under delay mode, it will wait seconday node +## finish its action after primary node terminates. + +#how many times should secondary node repeat, zero means loop forever +@export var secondary_node_repeat_count:int = 0 + +#wether to wait secondary node finish its current action after primary node finished +@export var delay_mode:bool = false + +var delayed_result := SUCCESS +var main_task_finished:bool = false +var secondary_node_running:bool = false +var secondary_node_repeat_left:int = 0 + +func _get_configuration_warnings() -> PackedStringArray: + var warnings: PackedStringArray = super._get_configuration_warnings() + + if get_child_count() != 2: + warnings.append("SimpleParallel should have exactly two child nodes.") + + if not get_child(0) is ActionLeaf: + warnings.append("SimpleParallel should have an action leaf node as first child node.") + + return warnings + +func tick(actor, blackboard: Blackboard): + for c in get_children(): + var node_index = c.get_index() + if node_index == 0 and not main_task_finished: + if c != running_child: + c.before_run(actor, blackboard) + + var response = c.tick(actor, blackboard) + if can_send_message(blackboard): + BeehaveDebuggerMessages.process_tick(c.get_instance_id(), response) + + delayed_result = response + match response: + SUCCESS,FAILURE: + _cleanup_running_task(c, actor, blackboard) + c.after_run(actor, blackboard) + main_task_finished = true + if not delay_mode: + if secondary_node_running: + get_child(1).interrupt(actor, blackboard) + _reset() + return delayed_result + RUNNING: + running_child = c + if c is ActionLeaf: + blackboard.set_value("running_action", c, str(actor.get_instance_id())) + + elif node_index == 1: + if secondary_node_repeat_count == 0 or secondary_node_repeat_left > 0: + if not secondary_node_running: + c.before_run(actor, blackboard) + var subtree_response = c.tick(actor, blackboard) + if subtree_response != RUNNING: + secondary_node_running = false + c.after_run(actor, blackboard) + if delay_mode and main_task_finished: + _reset() + return delayed_result + elif secondary_node_repeat_left > 0: + secondary_node_repeat_left -= 1 + else: + secondary_node_running = true + + return delayed_result + +func before_run(actor: Node, blackboard:Blackboard) -> void: + secondary_node_repeat_left = secondary_node_repeat_count + super(actor, blackboard) + +func interrupt(actor: Node, blackboard: Blackboard) -> void: + if secondary_node_running: + get_child(1).interrupt(actor, blackboard) + _reset() + super(actor, blackboard) + +func after_run(actor: Node, blackboard: Blackboard) -> void: + _reset() + super(actor, blackboard) + +func _reset() -> void: + main_task_finished = false + secondary_node_running = false + +## Changes `running_action` and `running_child` after the node finishes executing. +func _cleanup_running_task(finished_action: Node, actor: Node, blackboard: Blackboard): + var blackboard_name = str(actor.get_instance_id()) + if finished_action == running_child: + running_child = null + if finished_action == blackboard.get_value("running_action", null, blackboard_name): + blackboard.set_value("running_action", null, blackboard_name) + +func get_class_name() -> Array[StringName]: + var classes := super() + classes.push_back(&"SimpleParallelComposite") + return classes From 7206f856e753a3b1226eecf2990cb90d8df685c7 Mon Sep 17 00:00:00 2001 From: Neo Date: Tue, 23 Apr 2024 00:40:40 +0800 Subject: [PATCH 2/5] add unit test --- .../nodes/composites/simple_parallel.gd | 2 +- test/nodes/composites/simple_parallel_test.gd | 128 ++++++++++++++++++ 2 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 test/nodes/composites/simple_parallel_test.gd diff --git a/addons/beehave/nodes/composites/simple_parallel.gd b/addons/beehave/nodes/composites/simple_parallel.gd index de72ed8..8f01b44 100644 --- a/addons/beehave/nodes/composites/simple_parallel.gd +++ b/addons/beehave/nodes/composites/simple_parallel.gd @@ -78,7 +78,7 @@ func tick(actor, blackboard: Blackboard): else: secondary_node_running = true - return delayed_result + return RUNNING func before_run(actor: Node, blackboard:Blackboard) -> void: secondary_node_repeat_left = secondary_node_repeat_count diff --git a/test/nodes/composites/simple_parallel_test.gd b/test/nodes/composites/simple_parallel_test.gd new file mode 100644 index 0000000..daaf5b5 --- /dev/null +++ b/test/nodes/composites/simple_parallel_test.gd @@ -0,0 +1,128 @@ +# GdUnit generated TestSuite +class_name SimpleParallelTest +extends GdUnitTestSuite +@warning_ignore("unused_parameter") +@warning_ignore("return_value_discarded") + +# TestSuite generated from +const __source = "res://addons/beehave/nodes/composites/simple_parallel.gd" +const __count_up_action = "res://test/actions/count_up_action.gd" +const __blackboard = "res://addons/beehave/blackboard.gd" +const __tree = "res://addons/beehave/nodes/beehave_tree.gd" + +var tree: BeehaveTree +var simple_parallel: SimpleParallelComposite +var action1: ActionLeaf +var action2: ActionLeaf +var actor: Node +var blackboard: Blackboard + + +func before_test() -> void: + tree = auto_free(load(__tree).new()) + simple_parallel = auto_free(load(__source).new()) + action1 = auto_free(load(__count_up_action).new()) + action2 = auto_free(load(__count_up_action).new()) + actor = auto_free(Node2D.new()) + blackboard = auto_free(load(__blackboard).new()) + + tree.add_child(simple_parallel) + simple_parallel.add_child(action1) + simple_parallel.add_child(action2) + + tree.actor = actor + tree.blackboard = blackboard + + +func test_always_return_first_node_result() -> void: + action2.status = BeehaveNode.FAILURE + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.SUCCESS) + assert_that(action1.count).is_equal(1) + assert_that(action2.count).is_equal(0) + + action1.status = BeehaveNode.FAILURE + action2.status = BeehaveNode.SUCCESS + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.FAILURE) + assert_that(action1.count).is_equal(2) + assert_that(action2.count).is_equal(0) + +func test_interrupt_second_when_first_is_succeeding() -> void: + action1.status = BeehaveNode.RUNNING + action2.status = BeehaveNode.RUNNING + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.RUNNING) + assert_that(action1.count).is_equal(1) + assert_that(action2.count).is_equal(1) + + action1.status = BeehaveNode.SUCCESS + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.SUCCESS) + assert_that(action1.count).is_equal(2) + assert_that(action2.count).is_equal(0) + + +func test_interrupt_second_when_first_is_failing() -> void: + action1.status = BeehaveNode.RUNNING + action2.status = BeehaveNode.RUNNING + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.RUNNING) + assert_that(action1.count).is_equal(1) + assert_that(action2.count).is_equal(1) + + action1.status = BeehaveNode.FAILURE + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.FAILURE) + assert_that(action1.count).is_equal(2) + assert_that(action2.count).is_equal(0) + + +func test_continue_tick_when_child_returns_failing() -> void: + action1.status = BeehaveNode.RUNNING + action2.status = BeehaveNode.FAILURE + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.RUNNING) + assert_that(action1.count).is_equal(1) + assert_that(action2.count).is_equal(1) + + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.RUNNING) + assert_that(action1.count).is_equal(2) + assert_that(action2.count).is_equal(2) + + +func test_child_continue_tick_in_delay_mode() -> void: + simple_parallel.delay_mode = true + action1.status = BeehaveNode.RUNNING + action2.status = BeehaveNode.RUNNING + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.RUNNING) + assert_that(action1.count).is_equal(1) + assert_that(action2.count).is_equal(1) + + action1.status = BeehaveNode.SUCCESS + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.RUNNING) + assert_that(action1.count).is_equal(2) + assert_that(action2.count).is_equal(2) + + action2.status = BeehaveNode.FAILURE + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.SUCCESS) + assert_that(action1.count).is_equal(2) + assert_that(action2.count).is_equal(3) + +func test_child_tick_count() -> void: + simple_parallel.secondary_node_repeat_count = 2 + action1.status = BeehaveNode.RUNNING + action2.status = BeehaveNode.FAILURE + assert_that(tree.tick()).is_equal(BeehaveNode.RUNNING) + assert_that(action1.count).is_equal(1) + assert_that(action2.count).is_equal(1) + assert_that(simple_parallel.secondary_node_repeat_left).is_equal(1) + + action2.status = BeehaveNode.RUNNING + assert_that(tree.tick()).is_equal(BeehaveNode.RUNNING) + assert_that(action1.count).is_equal(2) + assert_that(action2.count).is_equal(2) + assert_that(simple_parallel.secondary_node_repeat_left).is_equal(1) + + action2.status = BeehaveNode.SUCCESS + assert_that(tree.tick()).is_equal(BeehaveNode.RUNNING) + assert_that(action1.count).is_equal(3) + assert_that(action2.count).is_equal(3) + assert_that(simple_parallel.secondary_node_repeat_left).is_equal(0) + + assert_that(tree.tick()).is_equal(BeehaveNode.RUNNING) + assert_that(action1.count).is_equal(4) + assert_that(action2.count).is_equal(3) From dc807538a6640081ac56b183858bd3ad8f3c7fd4 Mon Sep 17 00:00:00 2001 From: Neo Date: Tue, 23 Apr 2024 01:22:02 +0800 Subject: [PATCH 3/5] update unit test --- .../nodes/composites/simple_parallel.gd | 4 +- test/nodes/composites/simple_parallel_test.gd | 48 +++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/addons/beehave/nodes/composites/simple_parallel.gd b/addons/beehave/nodes/composites/simple_parallel.gd index 8f01b44..34d31c8 100644 --- a/addons/beehave/nodes/composites/simple_parallel.gd +++ b/addons/beehave/nodes/composites/simple_parallel.gd @@ -84,7 +84,9 @@ func before_run(actor: Node, blackboard:Blackboard) -> void: secondary_node_repeat_left = secondary_node_repeat_count super(actor, blackboard) -func interrupt(actor: Node, blackboard: Blackboard) -> void: +func interrupt(actor: Node, blackboard: Blackboard) -> void: + if not main_task_finished: + get_child(0).interrupt(actor, blackboard) if secondary_node_running: get_child(1).interrupt(actor, blackboard) _reset() diff --git a/test/nodes/composites/simple_parallel_test.gd b/test/nodes/composites/simple_parallel_test.gd index daaf5b5..c47980c 100644 --- a/test/nodes/composites/simple_parallel_test.gd +++ b/test/nodes/composites/simple_parallel_test.gd @@ -126,3 +126,51 @@ func test_child_tick_count() -> void: assert_that(tree.tick()).is_equal(BeehaveNode.RUNNING) assert_that(action1.count).is_equal(4) assert_that(action2.count).is_equal(3) + +func test_nested_simple_parallel() -> void: + var simple_parallel2 = auto_free(load(__source).new()) + var action3 = auto_free(load(__count_up_action).new()) + simple_parallel.remove_child(action2) + simple_parallel.add_child(simple_parallel2) + simple_parallel2.add_child(action2) + simple_parallel2.add_child(action3) + + action1.status = BeehaveNode.RUNNING + action2.status = BeehaveNode.RUNNING + action3.status = BeehaveNode.RUNNING + + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.RUNNING) + + assert_that(action1.count).is_equal(1) + assert_that(action2.count).is_equal(1) + assert_that(action3.count).is_equal(1) + + action2.status = BeehaveNode.SUCCESS + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.RUNNING) + assert_that(action1.count).is_equal(2) + assert_that(action2.count).is_equal(2) + assert_that(action3.count).is_equal(0) + + action3.status = BeehaveNode.RUNNING + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.RUNNING) + assert_that(action1.count).is_equal(3) + assert_that(action2.count).is_equal(3) + assert_that(action3.count).is_equal(0) + + action2.status = BeehaveNode.RUNNING + action3.status = BeehaveNode.RUNNING + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.RUNNING) + assert_that(action1.count).is_equal(4) + assert_that(action2.count).is_equal(4) + assert_that(action3.count).is_equal(1) + + action1.status = BeehaveNode.SUCCESS + assert_that(simple_parallel.tick(actor, blackboard)).is_equal(BeehaveNode.SUCCESS) + assert_that(action1.count).is_equal(5) + assert_that(action2.count).is_equal(0) + assert_that(action3.count).is_equal(0) + + simple_parallel2.remove_child(action2) + simple_parallel2.remove_child(action3) + simple_parallel.remove_child(simple_parallel2) + simple_parallel.add_child(action2) From cbc16da09edc6d4e4c8474a0df67f34205334ce9 Mon Sep 17 00:00:00 2001 From: Neo Date: Tue, 23 Apr 2024 03:14:29 +0800 Subject: [PATCH 4/5] icon and doc --- addons/beehave/icons/simple_parallel.svg | 13 ++++++++++ .../nodes/composites/simple_parallel.gd | 2 +- .../2ad8592e-265d-4887-95bc-f18f89a15e65.png | Bin 0 -> 45414 bytes docs/_sidebar.md | 1 + docs/assets/icons/simple_parallel.svg | 13 ++++++++++ docs/manual/simple_parallel.md | 24 ++++++++++++++++++ 6 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 addons/beehave/icons/simple_parallel.svg create mode 100644 addons/gdUnit4/tmp-update/2ad8592e-265d-4887-95bc-f18f89a15e65.png create mode 100644 docs/assets/icons/simple_parallel.svg create mode 100644 docs/manual/simple_parallel.md diff --git a/addons/beehave/icons/simple_parallel.svg b/addons/beehave/icons/simple_parallel.svg new file mode 100644 index 0000000..e9c8b00 --- /dev/null +++ b/addons/beehave/icons/simple_parallel.svg @@ -0,0 +1,13 @@ + + simple_parallel + + Layer 1 + + + + + + + + + \ No newline at end of file diff --git a/addons/beehave/nodes/composites/simple_parallel.gd b/addons/beehave/nodes/composites/simple_parallel.gd index 34d31c8..6297481 100644 --- a/addons/beehave/nodes/composites/simple_parallel.gd +++ b/addons/beehave/nodes/composites/simple_parallel.gd @@ -1,5 +1,5 @@ @tool -@icon("../../icons/sequence.svg") +@icon("../../icons/simple_parallel.svg") class_name SimpleParallelComposite extends Composite ## Simple Parallel nodes will attampt to execute all chidren at same time and diff --git a/addons/gdUnit4/tmp-update/2ad8592e-265d-4887-95bc-f18f89a15e65.png b/addons/gdUnit4/tmp-update/2ad8592e-265d-4887-95bc-f18f89a15e65.png new file mode 100644 index 0000000000000000000000000000000000000000..21151ffbfc3cb7871272a1b4cef7fbf4614db361 GIT binary patch literal 45414 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

**=X3WN>{Sc|;Jgangncpnb=yrlOt=9g4UuKOpR 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 literal 0 HcmV?d00001 diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 7346b53..1c2f702 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -7,6 +7,7 @@ * [ Composites](/manual/composites.md) * [ Selector](/manual/selector.md) * [ Sequence](/manual/sequence.md) + * [ Sequence](/manual/simple_parallel.md) * [ Decorators](/manual/decorators.md) * [Debugging](/manual/debugging.md) * [Performance](/manual/performance.md) diff --git a/docs/assets/icons/simple_parallel.svg b/docs/assets/icons/simple_parallel.svg new file mode 100644 index 0000000..e9c8b00 --- /dev/null +++ b/docs/assets/icons/simple_parallel.svg @@ -0,0 +1,13 @@ + + simple_parallel + + Layer 1 + + + + + + + + + \ No newline at end of file diff --git a/docs/manual/simple_parallel.md b/docs/manual/simple_parallel.md new file mode 100644 index 0000000..b1a789d --- /dev/null +++ b/docs/manual/simple_parallel.md @@ -0,0 +1,24 @@ +# Simple Parallel Node +The Simple Parallel node is a fundamental building block in Behavior Trees, used to execute two children at same time. It helps you run multiple actions simultaneously.Think of the Simple Parallel node as "While doing A, do B as well." + +## How does it work? +Simple Parallel nodes will attampt to execute all chidren at same time and can only have exactly two children. First child as primary node, second child as secondary node. +This node will always report primary node's state, and continue tick while primary node return `RUNNING`. The state of secondary node will be ignored and executed like a subtree. +If primary node return `SUCCESS` or `FAILURE`, this node will interrupt secondary node and return primary node's result. +If this node is running under delay mode, it will wait seconday node finish its action after primary node terminates. + + +## Example Scenarios +Here are some example scenarios to help you understand the Sequence node better: + +### Example: While attacking the enemy, move toward the enemy +Imagine you want a ranged enemy character trying to shoot you whenever he can while to move towards you. You can use a Simple Parallel node with the following child nodes architecture: + +1. Move to point A near player +2. Sequence Node + 1. Check if enemy can shoot + 2. Shoot + +The enemy will move to a location near player and try to shoot at same time, and if move action is successful or failure, the Simple Parallel node will termitate the child sequence node for shooting attempt, then return `SUCCESS` or `FAILURE` according to move action result. + +Simple Parallel can be nested to create complex behaviors while it's not suggested, because too much nesting would make it hard to maintain your behavior tree. From 35082b77d9a3597e0c9da1c309b8254e5b966a09 Mon Sep 17 00:00:00 2001 From: "MBA\\haisenbao" Date: Tue, 23 Apr 2024 10:24:23 +0800 Subject: [PATCH 5/5] remove temp file --- .../2ad8592e-265d-4887-95bc-f18f89a15e65.png | Bin 45414 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 addons/gdUnit4/tmp-update/2ad8592e-265d-4887-95bc-f18f89a15e65.png diff --git a/addons/gdUnit4/tmp-update/2ad8592e-265d-4887-95bc-f18f89a15e65.png b/addons/gdUnit4/tmp-update/2ad8592e-265d-4887-95bc-f18f89a15e65.png deleted file mode 100644 index 21151ffbfc3cb7871272a1b4cef7fbf4614db361..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45414 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

**=X3WN>{Sc|;Jgangncpnb=yrlOt=9g4UuKOpR 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