Advance Enemy AI in Godot

แชร์
ฝัง

ความคิดเห็น • 164

  • @ThePouetman
    @ThePouetman ปีที่แล้ว +20

    This is exactly what I needed, i was struggling on how to solve obstacle avoidance without implementing a grid based pathfinding, this seems like the perfect solution

    • @JackieCodes
      @JackieCodes  ปีที่แล้ว +3

      Thank you! And please feel free to reach out if you need some help!

  • @StevePixelFace
    @StevePixelFace 2 ปีที่แล้ว +49

    I learned stuff, I laughed a lot and picked up new dance moves. Excellent video.

  • @levizin917
    @levizin917 หลายเดือนก่อน +1

    I saw that video you referenced, and thought cool, but I couldnt think of how to implement it, this gives me what I need, thank you

  • @GabrielSanchezGameDev
    @GabrielSanchezGameDev 7 หลายเดือนก่อน +6

    This just popped up in my suggested videos. Very nice explanation. I haven’t gotten to my enemy AI, but I will keep this approach in mind. Thanks!

  • @serenacula3256
    @serenacula3256 ปีที่แล้ว +5

    A fun little addition to this, which I used to use to create super simple but effective AIs, is great for creating 'group predators'. The goal is for each predator to try and keep away from each other, while chasing the player. The result of this is that they will naturally surround the player, circling around them.
    I got the idea from a study I saw on how wolves algorithmically surround their prey - 1. go towards prey, 2. stay away from other wolves, 3. repeat
    Adding something like this to your 'interest' algorithm would make for fun group dynamics!

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

    This was so cool! I’ve only been getting into game dev for the last few months in godot, been making a top down maze crawler game and I’m 100% going to try to apply these concepts to the enemies in it.

  • @toddkronenberg4126
    @toddkronenberg4126 15 วันที่ผ่านมา

    This was great. I watched that Game Endeavor AI video you mentioned like last week, but your video went into detail how to actually do this stuff! Can't wait to try to build this sort of thing myself!

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

    This is awesome! I've seen the video from Game Endeavor and have been looking for a script that does that since, but this video made it easier to understand the process. I've actually added onto this by making the enemy able to detect all obstacles in a radius and have that affect them similar to how the enemy tracks down the target. So thanks!

  • @woof6907
    @woof6907 2 ปีที่แล้ว +103

    Jidion introduced me to the best TH-camr. You should also invest in a high quality mic

    • @Miesko1
      @Miesko1 2 ปีที่แล้ว +2

      i dont think she got the funds for that

    • @Jriniscool
      @Jriniscool 2 ปีที่แล้ว +2

      @@Miesko1 what makes u think that?

    • @JacksonAcademy1
      @JacksonAcademy1 2 ปีที่แล้ว

      Which video did Jidion mention her?!

    • @JacksonAcademy1
      @JacksonAcademy1 2 ปีที่แล้ว

      I foudnd the video, Twitch Con, but what is the timestamp?

    • @Miesko1
      @Miesko1 2 ปีที่แล้ว

      @@Jriniscool not a popular youtuber innit

  • @tigerwarrior2309
    @tigerwarrior2309 2 หลายเดือนก่อน +1

    Thanks for the video! You just helped me figure out an issue I've been having with connecting Utility AI and State Machines.

  • @uncle_mayy
    @uncle_mayy 2 ปีที่แล้ว +11

    JIDION GANG LESS GOOOOOOO

  • @JC-jz6rx
    @JC-jz6rx ปีที่แล้ว +7

    I don’t know who you are. I don’t know where you came from. But I received a great explanation of something I was too lazy to research myself. It’s scary how much we don’t know in these sort of development oriented fields (edit:we don’t know what we don’t know) I hadn’t seen this type of AI system before. Thanks for the video

    • @JackieCodes
      @JackieCodes  ปีที่แล้ว

      I don't know who you are. I don't know where you came from xD But your comment really made me smile! I appreciate it so much. Took me a long time to wrap my head around this stuff, I'm glad you got something out of this.

  • @Pokedubness
    @Pokedubness 2 ปีที่แล้ว +3

    This was a great video, really concise explanations and the editing was top tier. great job!

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

    Thank you for this amazing all-encompassing video. You break down the process of building a rather complex AI into digestible bits and you give a proper view of the whole thing with just the right amount of details. Now I can begin to implement these concepts without the fear that I'll make a mess of them. In short, this is exactly what I was looking for. Truly a life saver

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

    Your explanation of advanced concepts such as this is incredible! You seem to have a talent for teaching

  • @_gamma.
    @_gamma. 2 ปีที่แล้ว +4

    Hahahaha that herd joke caught me so off guard

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

    This is exactly what I needed, having myself been inspired by that same video trying to implement it one way, I was looking for a less messy way to implement it and you just made my week (like a year+ later)!

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

    The thumbnail is the only reason I clicked on this vid... glad I stayed lol

  • @randykava6445
    @randykava6445 ปีที่แล้ว +1

    Very well done, Jackie! Fun but very educational too. Gave tech details that made sense with good graphic examples.

  • @TheSlimHim
    @TheSlimHim 2 ปีที่แล้ว +2

    I just saw the Game Endeavor video a few days ago and put on my todo list to look into how he implemented it. I can't thank you enough for making this video! I am still a little confused as to when to add together interests. Do you add the interests arrays all together then subtract from danger or do you get the contexts maps and add them all together?
    Like this?
    1. Normalize a vector to what the AI desires.
    2. Make an array that is the dot product of that vector with all the 8 directions.
    3. Repeat steps 1-2 for all points of interest.
    4. Make danger array/
    5.. Make a new array where you subtract element 1 in interest from element 1 in danger, and so on for element 2-8. AKA danger minus interest. This gives you the context map.
    6. The highest value in the context map is the most desired direction.
    7. Apply steering to get a more natural most desired direction.
    8. Tell AI to go in the direction from step 7.

    • @JackieCodes
      @JackieCodes  2 ปีที่แล้ว +2

      you add all the interest arrays together first, you should only have 1 context map array. And when you add all the interest arrays together, if you have a number thats greater than the number you put for the danger, than that means you need to raise the danger away. I said 5 was good for me but if you have like 6 interest arrays, you might want to raise it. Hope this helped, sorry for the late reply, I'm a mess :) feel free to ask more questions and lmk how you implementation went!

  • @moigncoin4870
    @moigncoin4870 8 หลายเดือนก่อน +1

    What a great video, thanks for the upload

  • @manancialgd.
    @manancialgd. 2 หลายเดือนก่อน +1

    What Endeavor did in his video was, when the AI get's close to the player. it will change the shape of the dot product, so it will change the desirability. as:
    float changedDot = 1 - Mathf.Abs(dot - 0.65f).
    you can also make it run a little to the side with:
    float changedDot = 1- Matg.Abs(-dot)
    it's the shaping part of the video. You didn't mention that

  • @demonpandagang
    @demonpandagang 2 ปีที่แล้ว +2

    Glad that Jidion showed love to this channel

  • @takoyaki_1i
    @takoyaki_1i ปีที่แล้ว

    I've been looking for a good godot tutorial on context based steering for a while and I have no Idea why this video only got recomended to me now. But Im glad it did eventually because it's the best!!!!

  • @Jake-lb5wp
    @Jake-lb5wp 2 ปีที่แล้ว +9

    Jidion gang

  • @lawrenicium2845
    @lawrenicium2845 ปีที่แล้ว +2

    Great tutorial although there's a major flaw that I encountered. The enemies can get stuck between two directions when you get them behind a wall and stand directly behind the wall so they can't prioritize which way to go and they alternate between two vectors indefinitely. This isn't much of a problem if the game in question doesn't have many obstacles (such as your game) but if your game has many sharp corners and tight spaces (which was the case in mine) it can be a serious headache for you.
    Though it's not without it's solutions. One way I found to combat this problem was to use pathfinding2D in a way. I connected a navigation agent to the enemy and got it's next path's vector after which I got it's dot product with the raycast vectors to figure out which direction was the most similar to the next path location. I then got the index of the closest one and added a number to the corresponding index on the interest vector. It may look jaggy at first but by tuning the number you have added to the interest vector you can smooth it out.

  • @Skeffles
    @Skeffles 2 ปีที่แล้ว +2

    Great video! It's cool to hear about state machines you used.

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

    This is the video that finally made the interest array stuff click for me!! Thank you!

  • @shaolinfantastic9118
    @shaolinfantastic9118 ปีที่แล้ว +1

    This video just single-handily reignited my passion for coding which I lost after getting a C+ in my programming college course. Thank you Jackie!

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

      Hey, one more plus and you're golden

  • @datboidave1775
    @datboidave1775 2 ปีที่แล้ว +5

    from the jidion video

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

    This is very useful. After implementing this I have realized that this method has 1 issue. When player stand directly in parallel with the Enemy in between an obstacle. The enemy will not try to circle around the obstacle to reach the target.

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

      Are you sure you implemented the Dangers correctly?

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

      @theseangle I think so. The context steering cannot completely replace the pathfinding. Its quite easy to get enrmy to stuck in many different positions such as: In between 2 obstacles, or as I previously mentioned when the player stands directly in parallel with enemy with an obstacle in between.
      These sort of scenarios require some additional logic to be implemented to complement danger values that are assigned by hitting other obstacle colliders. For example, always favoring right side if there are obstacles on both sides... there are other ways as well but simply setting danger values of a vector and 2 neighbouring vectors ( as has been explained in this video) will not ensure the enemy can find a way towards player if you have many obstacles

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

      @@lukaspetrikas6320 hmm maybe you can create an algorithm which detects when something like this happens, and depending on the cause do some actions, e.g. enlarge the ray casts for x seconds. Maybe it'll help

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

      @@lukaspetrikas6320 also the steering is pretty important. Without it the ai gets stuck on corners

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

      I didn't have any problems with two obstacles, but standing parallel to it and behind an obstacle is giving me a headache. Did you ever find a reliable way to fix this?

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

    Incredibly helpful video. Can't wait to use context steering in my own AI!

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

    this is so useful thank you very much i always wondered how to make interest based steering system

  • @dfa2691
    @dfa2691 2 ปีที่แล้ว +1

    Nice video!
    Be careful that state machines can become really complex quite quickly.
    One approach is to have a state machine for each state, if you plan in having complex AI.
    If, for example, an enemy wants to have an injury state that differs from when it is in combat or idle, you could need a substate machine, isolated from the main one.
    As someone else suggested, Behaviour Tree is more manageable than state machines and allow for having even really complicated AI under control.

  • @ericomfg
    @ericomfg ปีที่แล้ว

    tyvm, this was so enjoyable. extremely talented, earned my sub!

    • @JackieCodes
      @JackieCodes  ปีที่แล้ว +1

      I appreciate it, was a blast to make!

  • @tiredboiiii8362
    @tiredboiiii8362 2 ปีที่แล้ว +1

    Jiddion really boosted her subs good shi jackie keep it up

  • @RealFosi
    @RealFosi 2 ปีที่แล้ว +2

    i’m glad jidion put me on 🙏

  • @wikdpi
    @wikdpi ปีที่แล้ว

    Wow, very nice explanation and implementation. Good job!

  • @JahznCentral
    @JahznCentral ปีที่แล้ว

    that steering force function saved me hours of googling thank youuu

  • @panhoracy8254
    @panhoracy8254 2 ปีที่แล้ว +1

    I remember when I was figering it out, about few months ago. I used those exact technics. I recommend checking behavior trees. It is a modification to state machine that fits game AI needs very well. In Godot recently addon was created implementing behavior tree, it's named BeeHave. Imo it simplifies working with states

    • @JackieCodes
      @JackieCodes  2 ปีที่แล้ว

      Oo sounds cool, gotta check it out, thanks!

  • @filopuk
    @filopuk 2 ปีที่แล้ว

    Didn't know you are such a talented dancer, Jackie! :D Good job, the video is wonderful :)

  • @xhenryx14
    @xhenryx14 2 ปีที่แล้ว

    Loved the video! Gracias Jackie!

  • @rholyoak
    @rholyoak 2 ปีที่แล้ว

    Really clever work on the steering behaviours and state machine.

  • @scuffedgamedev
    @scuffedgamedev 2 ปีที่แล้ว +1

    OH WOW i didnt realise the Ancient greeks had this advanced AI, you will learn something new with Jackie every day!!

  • @xaeCarolina1865
    @xaeCarolina1865 2 ปีที่แล้ว +1

    Jidon crew here boys

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

    I implemented, got a problem with it on getting stuck between two objects and my tip is do the neighbour danger values such as it doesn't sum up to 1, this way even tho a path may be dangerous if the enemy is on that side you need to go reach him, if enemy avoids completely it will end up stuck going back and on again

  • @brock6156
    @brock6156 2 ปีที่แล้ว +1

    I’m here because of Jidion (aka chad Gibbs) keep it up Jackie 😎👍🏻

  • @slanqem
    @slanqem 2 ปีที่แล้ว +1

    great video Jackie

  • @wsixfour8556
    @wsixfour8556 2 ปีที่แล้ว +1

    8:06 W RIZZ

  • @_gamma.
    @_gamma. 2 ปีที่แล้ว +1

    Also FYI Godot 3.5 has a new navigation server with obstacle avoidance 😄 It’s nice, but this implementation is really interesting! I like how flexible it is. And that state machine setup is really nice!

    • @JackieCodes
      @JackieCodes  2 ปีที่แล้ว +4

      I already used it and it wasnt working and one of the devs told me not to use nav avoidance on static colliders....

    • @_gamma.
      @_gamma. 2 ปีที่แล้ว

      @@JackieCodes my bad, probably just for basic collision, I really like your solution! That weighted values for different obstacles blew my mind when you made the edges of the arena “dangerous”

  • @svetlinsvilenov8739
    @svetlinsvilenov8739 2 ปีที่แล้ว

    Noice! I found out we have that Game AI Pro book series in the work library, and I'm going through the first one :)

    • @JackieCodes
      @JackieCodes  2 ปีที่แล้ว

      Omgggg!! So lucky! Lmk how it is!

  • @walkermains7396
    @walkermains7396 2 ปีที่แล้ว +1

    Congratulations with the jidion video

  • @Senpai-Choco
    @Senpai-Choco 2 ปีที่แล้ว +1

    Hey I came from jidion i dont know much about coding but nonetheless this is really interesting keep uo the good work

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

    Thank you for the amazing video. It works fantastically, one question I had was while implementing FSM with steering, I wasn't sure how to implement the two while trying to decouple them. Would the states be in charge of handling the velocity of the CharacterBody2D or the steering script?

  • @sonicrocks2007
    @sonicrocks2007 22 วันที่ผ่านมา +1

    You should add actual military formations to the ai

    • @JackieCodes
      @JackieCodes  22 วันที่ผ่านมา

      @@sonicrocks2007 cool idea!!

    • @sonicrocks2007
      @sonicrocks2007 20 วันที่ผ่านมา +1

      @JackieCodes the ai you could circle around you, or go line for formation and then put archer in back so you have to fight 5 melee guys before getting to the archerer etc. Making it way more difficult. Lol if you do you should do a tutorial

    • @martincout
      @martincout 12 วันที่ผ่านมา

      That's really cool! I'm gonna try to do that

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

    Before I go back and rewrite my enemy AI/PathfindingObstacleAvoidanceSpaghetti I wanted to drop a comment and thank you. Thank you for showing me this brilliant idea.
    Signed, fullstack developer for 20y+ trying gamedev as a hobby 👍❤

  • @sevside
    @sevside 2 ปีที่แล้ว

    Great job Jackie I don’t know what any of this means but. In the future I do plan on learning since my childhood dream is to make a game and I will make sure to revisit your channel for any help I may need along the way!☺️

  • @johnsophusson
    @johnsophusson 2 ปีที่แล้ว +1

    man u gained 25k subs, all hail jidion

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

    this was fantastic, ty

  • @MCNeko6554
    @MCNeko6554 10 วันที่ผ่านมา

    I really wish there was a link to find out more about the AI part. I already know how to do the state machine part, but I'm struggling to implement the AI pathing. I get that there's a set of 8-directional raycasts and an 8-directional vector array that detects objects within the path. However, translating that in Step 1 to an actual AI path is just a bunch of ???? to me. On top of that, the "Navigation2D" node has been deprecated, so I guess NavigationAgent2D is the closest match..

  • @WhatnotArt
    @WhatnotArt 2 ปีที่แล้ว

    This is going to be the next Terminator, I swear.
    As an aspiring game developer, I found this really awesome and helpful

  • @micahrollins8353
    @micahrollins8353 2 หลายเดือนก่อน +1

    You really lost me at the steering behavior bit. The array and raycast stuff was great and fairly easy to follow though

  • @onlyenzoYT
    @onlyenzoYT 2 ปีที่แล้ว +1

    Hey im here from Jidion You’re W TH-camR

  • @drxpoutk2517
    @drxpoutk2517 2 ปีที่แล้ว +1

    Came from jidion W TH-camr‼️‼️

  • @dashiscool5
    @dashiscool5 2 ปีที่แล้ว

    I am a discord bot and web developer and i am tryiing to get into web developement. I am going to watch your videos once i get done with my bot, keep it up!!

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

    Great explanation thank you :)

  • @wrobertz
    @wrobertz 2 ปีที่แล้ว +1

    Jidion said hi

  • @user-yo6jm8vw3q
    @user-yo6jm8vw3q 2 หลายเดือนก่อน +1

    is there a code example anywhere of this?

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

    I implemented this, the caviat is that it doesn't work that great for enclosed areas, the ai will get scared of doors since the diagonals will hit a wall but not the straight path through

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

      sometimes it needs adjustments, like messing around with the length of the raycast?

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

      @@JackieCodes I am not sure I played with it for like 1-2 hours, the bane of it is a single door with multiple enemies. You can get them to not be scared of doors but then they will get stuck in an angle.
      An other issue with many of them, is that they ping pong on each other, making the insentive lobsided will make them rotate but again there will be a way where they will rotate and sync to each other to block themselves from doors.
      I think I ll hard code it, put a detection zone around doors and queue them in a deterministic fashion

  • @nunezgeeked1650
    @nunezgeeked1650 2 ปีที่แล้ว

    Love this

  • @thawzan7370
    @thawzan7370 ปีที่แล้ว

    Hi! Great video but do u think u can go more indepth into the explanation on the steering force? That will be awesome!. Thanks a bunch!

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

    Hello, I'm still a pretty novice gamedev using Godot and can follow along with this guide until I get to the "Dangers" section. For the life of me, I can't figure out how to get the raycasts to change the values within the Danger Vector array. I've been at this for about two days now and have been spending most of my free time scouring the internet for trying to find answers.
    I've tried;
    - Creating the raycasts outside of the code like in the video, putting into their own array and checking is_colliding() on each of them in a for loop, but that just returns an error saying is_colliding isn't a function in the base.
    - Generating them through code in a few different ways, appending them into a raycasts array and then checking if each is colliding but that doesn't work either.
    - I got a bit of progress by referencing each raycast in their own onready var and then checking if their colliding and changing the values manually like below, but then I run into a problem where they're constantly overriding the value's other collisions set.
    ○ If _0.is_colliding:
    § danger_vector[0] = 5
    § danger_vector[1] = 2
    § Danger_vector[7] = 2
    - And on top of that, after getting it working somewhat, when I try to get the Context Vector by subtracting the values in the Danger Vector from those in the interest Vector, I keep running this error or errors like this "Invalid set index '0' (on base: 'Array[float]') with value of type 'float'"
    I don't know if I'm overthinking or overworking it but I just can't seem to get it to work properly. Is there any way you can share your process for how you got this done with some example code? Anything would be much appreciated.

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

      I was getting the same invalid set index 0 errors as well, and fixed it, but don't fully understand what's going on. I read that if you declare an empty array, there will be no index 0. So, I thought, okay, declare the arrays with a bunch of zero placeholders (i.e. var danger_array = [0,0,0,0,0,0,0,0]). That worked for the danger array and context array, but not for the interest array. Maybe I had a typo somewhere. Dunno. Regardless, I switched to . append for the interest array (i.e. interest_array.append(var) ) , and made sure to clear the array after every cycle (i.e. interest_array.clear() ). The following is my code for the danger array.
      for i in range(8):
      if raycast_array[i].is_colliding():
      if i == 7:
      danger_array[6] += 2
      danger_array[7] += 5
      danger_array[0] += 2
      else:
      danger_array[i-1] += 2
      danger_array[i] += 5
      danger_array[i+1] += 2

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

      You need to fix the is_colliding() issue because thats probably the best way to do it, I did it simmilarly to what you mentioned, defined an array with the raycasts, and an array with the danger values, all initially set to 0; then, for each raycast, i checked whether it was colliding, and if it was, I set a variable containing the index of said raycast, so I could change the values in the danger array on the corresponding index (for example, if it was the 5th raycast, I would update the 4th, 5th and 6th values to 2, 5, 2) with an if statement checking whether the values have already been set (for example if the player entered 3 raycasts, it would only update the values assignes to 2 and 0, and leave the 5's so it doenst get all messed up).
      If you havent already fixed it and my explanation makes 0 sense (very possible), I could send you the gdscript code so you can see what I actually did. Hope this helps.

  • @brandonpuget6034
    @brandonpuget6034 2 ปีที่แล้ว

    from Jideon with love

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

    Thanks! Valeu!

  • @driver3899
    @driver3899 ปีที่แล้ว

    Topic: Cool
    Information: Super useful
    Embarrassment while green screening: Amazing

    • @JackieCodes
      @JackieCodes  ปีที่แล้ว +1

      Haha appreciate it!!

  • @tgskingmeeks1731
    @tgskingmeeks1731 2 ปีที่แล้ว

    🔥🔥🔥

  • @Bootifullyx
    @Bootifullyx 2 ปีที่แล้ว +1

    Here from Jidion, you're the loveliest lady! Xxx

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

    nice video

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

    Pog

  • @drksolo
    @drksolo 2 ปีที่แล้ว

    jidion w

  • @qarrett
    @qarrett 2 ปีที่แล้ว

    Hey Jackie! Loved the video, I'm curious though, based off your game coding experience how long would a game like Terraria take to build? Years worth of work and effort? Huge fan of the game and always wondered how long a 2D game like that would take to design. Not counting updates haha! 😇💙

    • @JackieCodes
      @JackieCodes  2 ปีที่แล้ว +1

      I feel really guilty saying this but ive yet to play terraria! 🙈 its in my steam library so i will come back to you on that.

  • @unterforderung
    @unterforderung 2 ปีที่แล้ว

    great vid

  • @imaginelee2082
    @imaginelee2082 2 ปีที่แล้ว

    top tier content

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

    Cool video.
    please, more code, more dances, more numbers, less auto-hate

  • @therealrah
    @therealrah 2 ปีที่แล้ว

    Lets gooooooo

  • @prismatic1987
    @prismatic1987 2 ปีที่แล้ว +2

    Came from jidion

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

    How well does this translate to 3D enemies?

  • @moistduck8621
    @moistduck8621 2 ปีที่แล้ว +1

    From jidion 💕

  • @four2417
    @four2417 2 ปีที่แล้ว

    nice vid!

  • @saultoons
    @saultoons 2 ปีที่แล้ว

    Damn your brain so big wtf I just copy paste and hope for the best :'D

    • @JackieCodes
      @JackieCodes  2 ปีที่แล้ว

      I did that at first but over time you mess with the code more and more and you start to learn it better :)

  • @Sharkybugzz
    @Sharkybugzz 2 ปีที่แล้ว

    That’s so cool! But can u do it on a MacBook? + I really like ur videos they give me Michael reeves videos but much more relaxed lol:)

    • @JackieCodes
      @JackieCodes  2 ปีที่แล้ว +2

      Of course u can! I initially developed this game using a mac mini and then i switched to windows :)

  • @onez479
    @onez479 2 ปีที่แล้ว

    JIDION

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

    8:16 how we get current velocity?)))))) Sorry)))))

  • @takumicrary4396
    @takumicrary4396 2 ปีที่แล้ว

    PogChamp

  • @BO3Master
    @BO3Master 2 ปีที่แล้ว

    now i can say im an OG lol

  • @alexhursey4804
    @alexhursey4804 2 ปีที่แล้ว

    You were on jidions video!

  • @Alex5000148
    @Alex5000148 ปีที่แล้ว

    Hello, I wanted to ask for your advice. How to program an NPC to understand if it's path is blocked? For example, if the player stands in the doorframe.

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

      Have the Raycasts also detect the player.

  • @JacksonAcademy1
    @JacksonAcademy1 2 ปีที่แล้ว

    i liek your editing and dancing. you should become a tiktoker

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

    tis wanderfull, but I still can not figure it out in my code)))))

  • @sheeptype
    @sheeptype 2 ปีที่แล้ว

    W