- 1
- 8 672
Taillight Games
United States
เข้าร่วมเมื่อ 26 พ.ค. 2024
I'm Taillight Games, an indie game developer working on Ruins of Calica, a Zelda inspired N64 style action adventure game.
Godot 4: Enemy AI using Behavior Trees (BeeHave)
In this video, I explain how to use behavior trees with the BeeHave asset for enemy or NPC AI in Godot 4.x. And I go into the repository linked below and a bit of how it works.
Repository link: github.com/taillight-games/beehave-3d-example
Ruins of Calica: taillight.itch.io/ruins-of-calica
Recommended Resources:
Behavior trees for AI: www.gamedeveloper.com/programming/behavior-trees-for-ai-how-they-work
Godot 4.1: Behavior Trees with Beehave: th-cam.com/video/PDlAlutle_c/w-d-xo.html
Behavior Trees - Tutorial th-cam.com/video/YHUQY2Kea9U/w-d-xo.html -
BeeHave Docs: bitbra.in/beehave/#/
BeeHave Github: github.com/bitbrain/beehave
Repository link: github.com/taillight-games/beehave-3d-example
Ruins of Calica: taillight.itch.io/ruins-of-calica
Recommended Resources:
Behavior trees for AI: www.gamedeveloper.com/programming/behavior-trees-for-ai-how-they-work
Godot 4.1: Behavior Trees with Beehave: th-cam.com/video/PDlAlutle_c/w-d-xo.html
Behavior Trees - Tutorial th-cam.com/video/YHUQY2Kea9U/w-d-xo.html -
BeeHave Docs: bitbra.in/beehave/#/
BeeHave Github: github.com/bitbrain/beehave
มุมมอง: 8 701
very great test and narrative. A little slow, but very good because it is deatailed.
3:18 ?
That's incredible. Thank you for amazing coverage
Thanks for the introduction to Beehave. I try to replace my ai with it. But I find that it does not support "await"! I use "await" for velocity_computed signal in navigation agent. Are there any solution? Thx!
It depends on your use case of await, but I think it should work. If you want to pause the tree's execution until the await is done, you can pause the behavior tree, await, then resume it (I do this whenever an attack animation or similar is playing) but if you want to have the behavior tree update after an await is finished so you know the information its reading is accurate, like from the velocity_computed signal, you could set it so the tree doesn't call tick() on its own every frame and call tick() manually whenever the signal is received.
amazing video ! tons of work to do now.. i feel like I understood the whole concept, which is super important, but im still scared to touch it haha but thanks alot! it was amazing !
90th sub.
Good vid
legend
Huge help
Thank you broski
Hey thanks for the didactic video! Just wanted to ask, around 1:12 an enemy in your game took damage and entered a stagger animation. How do you deal with this type of interaction from the outside environment? Do you just restart or enable/disable the Behaiviour tree? I found that behavior trees are great to determine "internal" decisions, but I'm struggling to design how they should respond to external inputs like damage from the player.
Yes! that is how it works in mine. Once the behavior tree has made a decision, its turned off while it executes that action. My system works on a animation tree where the behavior tree just tells the animation tree what to do and when the animation starts, it shuts the behavior tree off until its done.
🐝
Your video helped me a lot!! Thanks a lot!!
WOW! Great Work! Awesome didactics!
Huge help!
Great video, I wish I saw this before, when I was struggling to understand Beehave!😅
Hey!! If you dont mind me asking. Im new to Godot and Game development in general (no coding experience) I completed the GD Quest Zero to Beginner Interactive app to learn the basics. But how did you learn to code? What steps did you take to learn and about how long did it take you?
I personally learned the basics of how to code at a summer camp when i was ~12 or 13 and taught myself the more advanced stuff as I went. So my learning experience with it was not really typical. imo the most important starting point is to think in terms of programming, which is not easy but it's important. Maybe start by learning Scratch and making a simple game in it, it's much simpler than Godot and can help get that initial step. Or if you just want to learn in Godot, I like to follow an in depth tutorial series for a bit, and then abandon it when I have the basics and just start making things, looking up as I go. Don't be afraid to make bad games. But this is all what helped me learn, so take it with a grain of salt. Good luck!
@@TaillightGames Thank you I appreciate the wisdom! I'll definitely look into scratch some more as I tried to use it before, but now that I know the basics I might have more success with it! Thanks for taking the time to respond
@@DeavtheDevthe official Godot documentation contains very good tutorials, with screenshots and explanations etc, I highly recommend reading it
take a python course. It looks like gdscript and you'll learn everything you need. Check coursera, edx or khan academy
Thank you for this, the learning resources on beehave are kind of limited
is there any advantage to this over having a match state and putting all the functions inside the specific states like : match state: wander: walk() be_on_guard() engage: fight() flee: try_to_survive()
For simple applications, that's definitely easier but in the end I think the architecture would become pretty similar. As that system gets more complex and you want more functionality out of it, you'd probably just reinvent behavior trees.