Taillight Games
Taillight Games
  • 1
  • 8 672
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
มุมมอง: 8 701

วีดีโอ

ความคิดเห็น

  • @Ralke1
    @Ralke1 หลายเดือนก่อน

    very great test and narrative. A little slow, but very good because it is deatailed.

  • @walttzbeatz3728
    @walttzbeatz3728 หลายเดือนก่อน

    3:18 ?

  • @FlynnFromTaiga
    @FlynnFromTaiga หลายเดือนก่อน

    That's incredible. Thank you for amazing coverage

  • @增加-o8c
    @增加-o8c 2 หลายเดือนก่อน

    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!

    • @TaillightGames
      @TaillightGames 2 หลายเดือนก่อน

      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.

  • @mariobachmann4490
    @mariobachmann4490 3 หลายเดือนก่อน

    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 !

  • @prathamreddyzindabad9176
    @prathamreddyzindabad9176 3 หลายเดือนก่อน

    90th sub.

  • @deadclicks
    @deadclicks 3 หลายเดือนก่อน

    Good vid

  • @loveIndieGame
    @loveIndieGame 3 หลายเดือนก่อน

    legend

  • @adambadre3214
    @adambadre3214 4 หลายเดือนก่อน

    Huge help

  • @jamiiedev
    @jamiiedev 4 หลายเดือนก่อน

    Thank you broski

  • @simonkazehaya1836
    @simonkazehaya1836 4 หลายเดือนก่อน

    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.

    • @TaillightGames
      @TaillightGames 4 หลายเดือนก่อน

      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.

  • @UltimatePerfection
    @UltimatePerfection 4 หลายเดือนก่อน

    🐝

  • @ZombieByte1
    @ZombieByte1 4 หลายเดือนก่อน

    Your video helped me a lot!! Thanks a lot!!

  • @RogueMasteryZone
    @RogueMasteryZone 4 หลายเดือนก่อน

    WOW! Great Work! Awesome didactics!

  • @Enphixo
    @Enphixo 4 หลายเดือนก่อน

    Huge help!

  • @FacundoComix
    @FacundoComix 4 หลายเดือนก่อน

    Great video, I wish I saw this before, when I was struggling to understand Beehave!😅

  • @DeavtheDev
    @DeavtheDev 5 หลายเดือนก่อน

    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?

    • @TaillightGames
      @TaillightGames 5 หลายเดือนก่อน

      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!

    • @DeavtheDev
      @DeavtheDev 5 หลายเดือนก่อน

      @@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

    • @asdwwe307
      @asdwwe307 4 หลายเดือนก่อน

      ​@@DeavtheDevthe official Godot documentation contains very good tutorials, with screenshots and explanations etc, I highly recommend reading it

    • @vosmibit
      @vosmibit 4 หลายเดือนก่อน

      take a python course. It looks like gdscript and you'll learn everything you need. Check coursera, edx or khan academy

  • @ItzVic
    @ItzVic 5 หลายเดือนก่อน

    Thank you for this, the learning resources on beehave are kind of limited

  • @Seisry
    @Seisry 5 หลายเดือนก่อน

    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()

    • @TaillightGames
      @TaillightGames 5 หลายเดือนก่อน

      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.