Visualizing Pathfinding Algorithms

  Рет қаралды 159,237

CodeNoodles

CodeNoodles

Күн бұрын

Пікірлер: 156
@plagosus
@plagosus Жыл бұрын
The sound effect turned up much cooler than I expected tbh. Great work here!
@CodeNoodles
@CodeNoodles Жыл бұрын
I'm glad you liked it!
@andrewtoasterr9325
@andrewtoasterr9325 2 жыл бұрын
What I think would be cool if the path was not generated instantly, but was constructed tile by tile with the noise. Just like the algorithms
@Skyblue92u
@Skyblue92u Жыл бұрын
Isn’t that literally what he did?
@FriedMonkey362
@FriedMonkey362 Жыл бұрын
​@@Skyblue92uno he means AFTER its done Just like the sorting algorithm, after the sorting is done, you hear one last noise wich is the complete one, which should sound nicer then all the noise
@jutube821
@jutube821 Жыл бұрын
@@FriedMonkey362 Noise? Those were all single notes with defined frequencies, played fast or slow. It might sound like noise to a non musician I guess.
@wokark
@wokark 11 ай бұрын
​@@jutube821, no, noise as in sound in general, not white noise
@aldobernaltvbernal8745
@aldobernaltvbernal8745 11 ай бұрын
​​@@jutube821you know how when you say "loud noises", well noise as in that: a sound
@HyperFocusMarshmallow
@HyperFocusMarshmallow Жыл бұрын
I love how you showed “mistakes”. That’s so useful for learning. Maybe you even made mistakes on purpose to be pedagogical, I don’t know. Very useful regardless!
@CodeNoodles
@CodeNoodles Жыл бұрын
Trust me, I don't need to create mistakes to show because I make plenty already 😆
@HyperFocusMarshmallow
@HyperFocusMarshmallow Жыл бұрын
@@CodeNoodles Sorry I doubted you XD
@plectro3332
@plectro3332 2 жыл бұрын
8:24, your algorithm just straight up played Flight of the Bumblebee
@CodeNoodles
@CodeNoodles 2 жыл бұрын
Lol you're right it kinda does 😆
@tylerb6981
@tylerb6981 2 жыл бұрын
Personally, I heard the screams of a desperate algorithm losing hope that it will accomplish its singular goal in life!
@Quizlz
@Quizlz Жыл бұрын
eh
@Ace73Streaming
@Ace73Streaming Ай бұрын
Your explanation of breadth first search plus a short conversation with someone about how nodes work instead of tiles was enough for me to get a working breadth first search algorithm in a day, and I've never made a pathfinding algorithm before
@CodeNoodles
@CodeNoodles Ай бұрын
That's awesome, I hope the video gave you sufficient information!
@the_cheese_cultist
@the_cheese_cultist Жыл бұрын
you can make a c++ priority queue order from minimum to maximum like this: std::priority_queue
@u9vata
@u9vata Жыл бұрын
You should have written which is which. Btw a lot of other algorithms exist: like there are various speedups for A* for grid-like spaces like this that are more efficient and there are hierarchical pathfinding algorithms that basically create bigger grids and pre-calculate which connects with which (info needed only at boundary) and then you can do a higher level search on the bigger grid and then a low-level search for the inside of the grid. This ensures scalability much better. A further speedup to the original A* is to "look ahead" so instead of just using the hint values for the cell to visit - we look ahead and its hint becomes hint values of that + all its neighbors that are k distant from it. This ensures much better heuristic hints at the cost of more operations - but can lead to better results. One can also pair this up with data structures that hold the grid not the usual 2D array ways, but as a hierarchy where close-by elements are more often cache local to each (this is especially powerful if you can make the grid 0s and 1s.
@Speiger
@Speiger Жыл бұрын
I know this is one year late. But the breath first algorithm has 1 upside that the A* cant really compete in. And that is when you have multiple targets, or if you don't know where the targets are on the grid. The second one is fairly simple because the A* requires target locations to work optimally. The first one is not so simple, with a finite set of targets you could optimize it to work, but if the size gets to big even a optimized priority queue that is designed to handle multiple targets you simply lose in complexity gained because you have to iteratively check against all targets, while the breath first simply can simply check on a set if it is contained. It's basically List.indexOf vs Set.contains problem. And pathfinding usually contains multiple targets at once.
@DMG.
@DMG. Жыл бұрын
You could probably get A* working with multiple targets without much issue
@Speiger
@Speiger Жыл бұрын
@@DMG. It will turn into a N*M problem while breath first stays in the same logic complexity level. Because you need to evaluate the "closest" distance for every possible target on every node. Breath first doesn't have this issue.
@cameronbowen4430
@cameronbowen4430 11 ай бұрын
@@Speiger ya so cool! Recently discovered flow fields after playing a plague tale and I love this style of pathfinding! Instead of using each agent to request an A* path you just bake each navTile or mesh with a direction to the goal!
@toffeejc
@toffeejc 2 жыл бұрын
I’ve watched all your videos and I subbed, I can’t wait to see you post more. I really want to get into coding now
@grassypaddy
@grassypaddy 2 жыл бұрын
this is a great pathfinding algorithm! thanks for the epic video!
@PumpkinBear
@PumpkinBear 2 жыл бұрын
This is really cool! What happens if the target is fully encased in solid tiles?
@CodeNoodles
@CodeNoodles 2 жыл бұрын
Thanks! If the target is fully encased once the algorithm runs out of tiles it just stops and no path is generated.
@ghlcit
@ghlcit 2 жыл бұрын
@@CodeNoodles I saw that coming but I don't think the algorithm did
@jasobk5258
@jasobk5258 Жыл бұрын
Bud dump dink
@jazzj2
@jazzj2 Жыл бұрын
in addition to no complete path being generated, generally you still remember the closest valid tile to the goal and can still make a path towards it
@Tasarran
@Tasarran 10 ай бұрын
You have to remember that 'no path' is a valid result sometimes and allow for that exit point once everything has been checked.
@woi1130
@woi1130 4 ай бұрын
Man, this visualization is phenomenal, and the sound is awesome. Thanks and subscribed.
@danyaeger12345
@danyaeger12345 Жыл бұрын
Heh just seeing this video now, and i love it. The one thing i thought was missing is a final going up the scale as the purple line is drawn in. It was a little disappointing after all that awesomeness to not get that final glissando when it's found the path. Always found that to be the most satisfying part of the sorting method videos.
@CodeNoodles
@CodeNoodles Жыл бұрын
You're right. I love the sorting algorithm videos as well! Maybe I should do a video about them 🤔
@danyaeger12345
@danyaeger12345 Жыл бұрын
@@CodeNoodles Nice, i'd totally watch that :) btw, I hope i didn't come off too harsh with my prior comment, i just get nitpicky sometimes :-P
@comeycallate9959
@comeycallate9959 Жыл бұрын
The difference of the sound use is the algorithm is linearly increased, from sorting algorithms is more exciting because of the pseudo randomized opening and the ordered ending
@XoIoRouge
@XoIoRouge Жыл бұрын
The biggest thing missing is information on each pathfinding. My favorite part about Timo Bingmann's video is that I could identify which sort I liked the best and look it up for more information. I wish I knew which pathfinding algorithm was being used.
@paicemaster6855
@paicemaster6855 11 ай бұрын
So glad i found your channel! Awesome video and your newer ones look even more interesting ^_^
@CodeNoodles
@CodeNoodles 11 ай бұрын
Thanks, it means a lot!
@wangtang32000
@wangtang32000 2 жыл бұрын
i didn't expect how satisfying the generation would sound lol
@thePrplMonkey
@thePrplMonkey 2 жыл бұрын
How come the final path appears to go through the frontier tiles as seen at 6:06? If they're in the frontier, they shouldn't have been searched yet.
@CodeNoodles
@CodeNoodles 2 жыл бұрын
I forgot to mention that the A Star algorithm doesn't use a searched tile list. It can go over a tile multiple times if it produces a better path.
@lightsinthedarkness
@lightsinthedarkness 2 жыл бұрын
@@CodeNoodles what happened to the duck hunting game video?
@catmaxi2599
@catmaxi2599 Жыл бұрын
I think you could have shown Dijkstra and depth first search too. Perhaps djikstra ends up almost doing the same as bfs it still worthwhile pointjng out the differences
@KDKEVlN
@KDKEVlN Жыл бұрын
Or Jump Point Search
@ocomolinaehain1795
@ocomolinaehain1795 2 жыл бұрын
This reminds me of, a bit obviously, echolocation, as well as Slime molds!
@absobel
@absobel 2 жыл бұрын
I still don't see why you don't have as many subscribers as other channels who do the same kind of content
@lailoutherand
@lailoutherand 2 жыл бұрын
New channels tend to get less traction, even if the content is basically a copy but modified. (pain)
@brendenm8182
@brendenm8182 2 жыл бұрын
Posted 7 seconds ago this is the earliest I've ever been anyways hello
@richarddooley3655
@richarddooley3655 2 жыл бұрын
*Adds sounds* Algorithm: -I am cop -Now I am cat on piano
@Pheonix1328
@Pheonix1328 2 жыл бұрын
You could totally make music with this, and each algorithm would have different methods to do so...
@thevalarauka101
@thevalarauka101 Ай бұрын
"it's time for the fun part: the noise" but you've already added noise, I thought, it's just simple white noise for the solid tiles probably should have said "sound" here instead
@MAREKROESEL
@MAREKROESEL Жыл бұрын
The efficiency of the second algorithm seems a little suspicious, when you start in x+ direction and the target is exactly in the x+ direction. It would be nice to add at least a part of the c code, to give a hint, what you are doing there.
@DenisTrebushnikov
@DenisTrebushnikov Жыл бұрын
it tooks the closest tile to targetTile as first tile to move, so if target in x+ direction it goes x+ (Fcost is lower in that direction, it's greedy to get target faster as it can inspite of correct shortest way), It doesn't take other direction until it reaches dead end in first direction, and other tiles get additional cost if not selected, so it's hard to back to previous tiles. The best con of this is speed of calculations (it even needn't closed list to use algorithm, I guess)
@amoineau
@amoineau Жыл бұрын
Really cool piece of software !
@blazester1018
@blazester1018 2 жыл бұрын
I was wondering where your other videos are? I'm new to the channel and it seems you've had more videos but I only see four. Sorry if this has already been asked or if I'm wrong about there being past videos. By the way seems like a very good channel!
@CodeNoodles
@CodeNoodles 2 жыл бұрын
I did have some old videos but they aren't very good. I just want to keep making better videos and my old ones weren't up to the standard I want to work towards.
@lod4246
@lod4246 2 жыл бұрын
@@CodeNoodles Perhaps unlist them and put it in a playlist called "Old Videos" or something
@Mistereee
@Mistereee 2 жыл бұрын
another very epic and cool video
@ragemodegaming7962
@ragemodegaming7962 11 ай бұрын
8:24 R2D2 on drugs
@jakeaustria5445
@jakeaustria5445 9 ай бұрын
Hi Mr. Pasta, it's fortunate to see you not being gulped down by philosophers.
@MeriaDuck
@MeriaDuck 11 ай бұрын
4:28 Nooo, I do'nt want to go there, nooo! XD 'perfectly inefficient', could see that it actually would work with the fix you applied🙂
@user199x
@user199x Жыл бұрын
Would've been fun to see an algorithm that picks at random, just for the sound of it
@YourAverageYoutubeCommentor
@YourAverageYoutubeCommentor 4 ай бұрын
Life changing video!
@TheArchitectOfDreams
@TheArchitectOfDreams 9 ай бұрын
Sound effect should be low fart at the start, then get higher pitched as it gets closer.
@shripalmehta
@shripalmehta 9 ай бұрын
Great video, but could have been better if you showed which approach/algorithm is being implemented after adding the sound effects. you've put in great efforts.
@GordonWrigley
@GordonWrigley 11 ай бұрын
It's a nice enough video, but A* was kinda base level when I studied computer science more than 20 years ago so there are many many videos explaining it. It'd be nice to see videos that go into the various improvements that have been created since then.
@CodeNoodles
@CodeNoodles 11 ай бұрын
I agree. I made this video when I had a very limited understanding of pathfinding algorithms, so I should do something better in the future.
@frankdieter9907
@frankdieter9907 2 жыл бұрын
I believe your videos would be even better if you had less clips of other people laughing or saying something and instead just have yourself, you are way cooler than you probably think, to me at least
@Hattonz
@Hattonz 2 жыл бұрын
Would be cool to make a game using this. Cool video! : )
@Lifesstructure_
@Lifesstructure_ 2 жыл бұрын
Just with a higher pitch
@lightsinthedarkness
@lightsinthedarkness 2 жыл бұрын
What happened to your duck hunting video, I saw it and liked it but now it's gone?
@Psychopatz
@Psychopatz Жыл бұрын
I feel the struggle of the cpu from scanning that algorithm grid lmao
@anibaldk
@anibaldk Жыл бұрын
8:21 Me telling a story. 8:24 My gf telling the same story.
@Knittely
@Knittely Жыл бұрын
Now give this to some music producers and they will make a song by creating a maze!
@nathanfisher6925
@nathanfisher6925 Жыл бұрын
I can't help but wonder if your a* method would have problems if the optimal route to the goal involved substantial back-tracking, especially at the start. All your examples involved only forward-pathing.
@CodeNoodles
@CodeNoodles Жыл бұрын
You're correct. The A* algorithm isn't always the fastest, it just is well balanced for most situations. Good observation!
@beeble2003
@beeble2003 Жыл бұрын
A* copes wih that just fine. But, like any algorithm that explores the best-looking regions first, it'll have to do a lot of backtracking if the things that look good turn out not to be good. And there's plenty of backtracking shown in the video. In the example that starts at 8:24, you can see that the algorithm starts by heading broadly in the right direction, but it gets stuck in a bit of a dead-end at about 8:30. It then spends quite a while investigating minor deviations closer to the source, before finally breaking through.
@PikalaxALT
@PikalaxALT Жыл бұрын
Is there a combination of layout and algorithm that would make the audio sound like the harp intro to Zelda's Fairy Fountain theme?
@CodeNoodles
@CodeNoodles Жыл бұрын
That's such a cool idea, but I don't know if such a layout like that exists.
@obvioustruth
@obvioustruth Жыл бұрын
Awesome video! :D
@CakeCh.
@CakeCh. Жыл бұрын
0:43 Oh is that a "Sounds of the Mandelbrot set"? (colorful ♪)
@acerbd8784
@acerbd8784 2 жыл бұрын
Really good video!
@paulaosegueda9053
@paulaosegueda9053 2 жыл бұрын
I love your videos
@KingOfTresune
@KingOfTresune 2 жыл бұрын
Where is your duck hunt vid? That was really great!
@pptmtz
@pptmtz 3 ай бұрын
(;24 example is very interesting, as it kind of get some steps back to find the solution
@jeremiahlyleseditor437
@jeremiahlyleseditor437 9 ай бұрын
This works wonderfully but most of the outcomes are not the shortest distance. Have you improved this algorithm to always give the shortest distance?
@olillin
@olillin 2 жыл бұрын
Very nice video!
@Hoxle-87
@Hoxle-87 Жыл бұрын
Nice!
@YellowCardx
@YellowCardx 2 жыл бұрын
What library did you use for the visualization?
@VitorOzana
@VitorOzana Ай бұрын
DUDE, it would be very fun if the topology of the grid - or map? - make the pitches purposefully sound like music hahaha
@cabbageder
@cabbageder 2 жыл бұрын
So cool!
@abraxas2658
@abraxas2658 4 ай бұрын
I know this is an old video, but at 7:33, it looks like your heuristic might not be pointing in the right direction. It should naturally go from top left to bottom right, not to the middle of the right side.
@davepullin8572
@davepullin8572 Жыл бұрын
You should generate a sound in sync with the drawing of the final path. (instead of the silence!)
@osabga6877
@osabga6877 Жыл бұрын
HI, how did you created grafics for c++?
@djtimo
@djtimo Жыл бұрын
Hey Noodles! Where/How would I get the code for this. I wanted to experiment with the program but I wasn't sure how to do that.
@CodeNoodles
@CodeNoodles Жыл бұрын
It's on my Github, which is in the description of my videos.
@isaacmurray8490
@isaacmurray8490 Жыл бұрын
You should use this to make a pathfinding algorithm play never gonna give you up
@LilCalebW
@LilCalebW 2 жыл бұрын
Niiiice
@isaiahates9533
@isaiahates9533 2 жыл бұрын
Wow that's why I am subscribed for free codes
@shubhamkumar-tm6qq
@shubhamkumar-tm6qq 5 ай бұрын
Just wondering there is no glass header file in the repo ,could u please help with that??? Please see ur github repo
@Nsaf_UKR
@Nsaf_UKR 2 жыл бұрын
Your videos are great, but flashing back to the white background has destroyed my retinas. Please fix in the next patch
@SaudBako
@SaudBako 2 ай бұрын
Damn it you forgot to put the titles of the algorithms.
@Mint-t4d
@Mint-t4d 6 ай бұрын
bro im doing packman and i looked this up for the algortythm the chances
@DarmaniLink
@DarmaniLink Жыл бұрын
7:18 to get to the part of the video you clicked for
@HyperFocusMarshmallow
@HyperFocusMarshmallow Жыл бұрын
Cool!
@empireempire3545
@empireempire3545 Жыл бұрын
Now i wait for Jump Point Search
@treska7688
@treska7688 Жыл бұрын
That last part, with the noise... feels like it should come with some kind of warning. "Those of sensitive hearing, beware!" or maybe "Please don't listen to this part with headphones in, for your own sake"... something like that. Nice video otherwise, though!~
@shadow_jem_YT
@shadow_jem_YT Жыл бұрын
7:49 it sounds like the oof sound efect
@Haxses.
@Haxses. Жыл бұрын
Watching this made me hungry for noodles...
@c3cris2
@c3cris2 2 жыл бұрын
Love your videos, but there’s a jarring feeling when you insert loud laugh gag clips. I know you are trying to add humor like other KZbinrs I love such as @codebullet and @civvie11.
@kippesolo8941
@kippesolo8941 Жыл бұрын
Nice Vid but did you seriously compare A* and BFS ?? A Path finding algo vs a path optimization algo.
@nopparuj
@nopparuj Жыл бұрын
4:28 Generous best-first dearch
@tovarischkarno4390
@tovarischkarno4390 Жыл бұрын
3:43 : Try saying that 3 times fast Me: Greedy Breast F- wait what?
@hypercoder-gaming
@hypercoder-gaming Жыл бұрын
Why not make both the start and end pathfind to the other until they meet in the middle and make a path? Would it be faster or slower?
@the_cheese_cultist
@the_cheese_cultist Жыл бұрын
this is called a bidirectional search. it's usually faster, but the implementation is more complex
@wurdleturtle1
@wurdleturtle1 Жыл бұрын
I wonder if someone could make music with this…
@heyhey97777
@heyhey97777 2 жыл бұрын
hello there
@frankdieter9907
@frankdieter9907 2 жыл бұрын
General Kenobi
@Marioloverr2012
@Marioloverr2012 2 жыл бұрын
How this comment get 5 likes?
@AngFan1
@AngFan1 2 жыл бұрын
if polibeus existed this is tha music
@RenatoT66
@RenatoT66 7 ай бұрын
Wow!
@BelldofersMatlack
@BelldofersMatlack Жыл бұрын
7:50 "OOF"
@tt_thoma
@tt_thoma 2 жыл бұрын
Could you fill your character eyes ? It's real scary NGL
@lod4246
@lod4246 2 жыл бұрын
7:49 lmfao oof sound
@Frezi23
@Frezi23 Жыл бұрын
Maybe it's better to use vectors here instead of straight lines, to optimize it's movement
@moth.monster
@moth.monster 2 жыл бұрын
i apprecated the greedy worst-first search
@jayronbaello3645
@jayronbaello3645 2 жыл бұрын
codenoodles i have a question
@professorcube5104
@professorcube5104 2 жыл бұрын
7:58 why does this sound like the roblox death sound
@rcookman
@rcookman Жыл бұрын
No Dijkstra's algorithm???
@the_cheese_cultist
@the_cheese_cultist Жыл бұрын
on a graph with uniform edge cost, dijkstra works identically to bfs
@marcd.1166
@marcd.1166 Жыл бұрын
"Manathan distance" ... use the proper math term "Euclidian distance"
@the_cheese_cultist
@the_cheese_cultist Жыл бұрын
those are different. Manhattan distance is abs(x1-x2)+abs(y1-y2). Euclidean distance is sqrt((x1-x2)^2 + (y1-y2)^2)
@Periwinkleaccount
@Periwinkleaccount 2 жыл бұрын
I think you should put this online so other people can use it.
@explodingwolfgaming8024
@explodingwolfgaming8024 2 жыл бұрын
Commenting 4 algorithm
@callmemondy
@callmemondy 2 жыл бұрын
Hello
@MC5677
@MC5677 6 ай бұрын
bet you can't port it to 3ds
@theguywiththewhiteblanket
@theguywiththewhiteblanket 6 ай бұрын
Try ds
@jayronbaello3645
@jayronbaello3645 2 жыл бұрын
its that where did you discover coding and where did you use to code before making custom games
@CodeNoodles
@CodeNoodles 2 жыл бұрын
Good question. I am a self taught programmer and began with Python. One of my first projects was making a game so I've kinda been making games forever.
@jayronbaello3645
@jayronbaello3645 2 жыл бұрын
@@CodeNoodles oh ok im still a beginer in coding
@microwavedcaprisun9
@microwavedcaprisun9 2 жыл бұрын
hi
@Lightyboii
@Lightyboii 2 жыл бұрын
ThAt soUnd
@paul10724
@paul10724 2 жыл бұрын
2:51 pls don‘t use Nikocado clips. Its satisfying to look at those paths. A cool video.
The hidden beauty of the A* algorithm
19:22
Polylog
Рет қаралды 900 М.
Using Image Recognition to Automate More Mario Minigames
10:19
CodeNoodles
Рет қаралды 120 М.
How to Fight a Gross Man 😡
00:19
Alan Chikin Chow
Рет қаралды 17 МЛН
Ice Cream or Surprise Trip Around the World?
00:31
Hungry FAM
Рет қаралды 22 МЛН
Maze Solving - Computerphile
17:15
Computerphile
Рет қаралды 1,1 МЛН
A Comparison of Pathfinding Algorithms
7:54
John Song
Рет қаралды 721 М.
Using Octrees and A* for Efficient Pathfinding
31:22
git-amend
Рет қаралды 10 М.
How Dijkstra's Algorithm Works
8:31
Spanning Tree
Рет қаралды 1,4 МЛН
The Fastest Maze-Solving Competition On Earth
25:22
Veritasium
Рет қаралды 20 МЛН
This Program Contains EVERY Image in History
10:24
CodeNoodles
Рет қаралды 270 М.
A* Pathfinding (E01: algorithm explanation)
11:39
Sebastian Lague
Рет қаралды 2,1 МЛН
I Made Sorting Algorithms Race Each Other
8:24
Green Code
Рет қаралды 224 М.
Coding Adventure: Ant and Slime Simulations
17:54
Sebastian Lague
Рет қаралды 1,9 МЛН
Visualizing PATHFINDING Algorithms in C++ - SFML Devlog
12:42