Тёмный

Visualizing Pathfinding Algorithms 

CodeNoodles
Подписаться 77 тыс.
Просмотров 143 тыс.
50% 1

In this video I code a visualization of a couple of different pathfinding algorithms.
Sorting Algorithms Video: • 15 Sorting Algorithms ...
LINKS
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Support the channel: ko-fi.com/codenoodles
Itch.io: codenoodles.itch.io/
GitHub: github.com/OfficialCodeNoodles
█▀ █ █ █▄▄ █▀ █▀▀ █▀█ █ █▄▄ █▀▀
▄█ █▄█ █▄█ ▄█ █▄▄ █▀▄ █ █▄█ ██▄

Наука

Опубликовано:

 

18 авг 2022

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 153   
@plectro3332
@plectro3332 Год назад
8:24, your algorithm just straight up played Flight of the Bumblebee
@CodeNoodles
@CodeNoodles Год назад
Lol you're right it kinda does 😆
@tylerb6981
@tylerb6981 Год назад
Personally, I heard the screams of a desperate algorithm losing hope that it will accomplish its singular goal in life!
@Quizlz
@Quizlz Год назад
eh
@plagosus
@plagosus 7 месяцев назад
The sound effect turned up much cooler than I expected tbh. Great work here!
@CodeNoodles
@CodeNoodles 7 месяцев назад
I'm glad you liked it!
@andrewtoasterr9325
@andrewtoasterr9325 Год назад
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 10 месяцев назад
Isn’t that literally what he did?
@FriedMonkey362
@FriedMonkey362 9 месяцев назад
​@@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 6 месяцев назад
@@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.
@dominikluigi2308
@dominikluigi2308 5 месяцев назад
​@@jutube821, no, noise as in sound in general, not white noise
@aldobernaltvbernal8745
@aldobernaltvbernal8745 5 месяцев назад
​​@@jutube821you know how when you say "loud noises", well noise as in that: a sound
@HyperFocusMarshmallow
@HyperFocusMarshmallow 6 месяцев назад
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 6 месяцев назад
Trust me, I don't need to create mistakes to show because I make plenty already 😆
@HyperFocusMarshmallow
@HyperFocusMarshmallow 6 месяцев назад
@@CodeNoodles Sorry I doubted you XD
@u9vata
@u9vata 7 месяцев назад
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.
@toffeejc
@toffeejc Год назад
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 Год назад
this is a great pathfinding algorithm! thanks for the epic video!
@PumpkinBear
@PumpkinBear Год назад
This is really cool! What happens if the target is fully encased in solid tiles?
@CodeNoodles
@CodeNoodles Год назад
Thanks! If the target is fully encased once the algorithm runs out of tiles it just stops and no path is generated.
@ghlcit
@ghlcit Год назад
@@CodeNoodles I saw that coming but I don't think the algorithm did
@jasobk5258
@jasobk5258 Год назад
Bud dump dink
@jazzj2
@jazzj2 7 месяцев назад
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 4 месяца назад
You have to remember that 'no path' is a valid result sometimes and allow for that exit point once everything has been checked.
@paicemaster6855
@paicemaster6855 5 месяцев назад
So glad i found your channel! Awesome video and your newer ones look even more interesting ^_^
@CodeNoodles
@CodeNoodles 5 месяцев назад
Thanks, it means a lot!
@danyaeger12345
@danyaeger12345 5 месяцев назад
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 5 месяцев назад
You're right. I love the sorting algorithm videos as well! Maybe I should do a video about them 🤔
@danyaeger12345
@danyaeger12345 5 месяцев назад
@@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
@the_cheese_cultist
@the_cheese_cultist 5 месяцев назад
you can make a c++ priority queue order from minimum to maximum like this: std::priority_queue
@Speiger
@Speiger 6 месяцев назад
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. 5 месяцев назад
You could probably get A* working with multiple targets without much issue
@Speiger
@Speiger 5 месяцев назад
@@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 5 месяцев назад
@@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!
@SkateBox900
@SkateBox900 7 месяцев назад
🤘🔥 awesome. thanks. that’s really cool. I’m going to tinker around with coding something like that.
@amoineau
@amoineau 7 месяцев назад
Really cool piece of software !
@comeycallate9959
@comeycallate9959 6 месяцев назад
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
@Mistereee
@Mistereee Год назад
another very epic and cool video
@XoIoRouge
@XoIoRouge 5 месяцев назад
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.
@MichaelHumphrey
@MichaelHumphrey Год назад
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 Год назад
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 Год назад
@@CodeNoodles what happened to the duck hunting game video?
@olillin
@olillin Год назад
Very nice video!
@acerbd8784
@acerbd8784 Год назад
Really good video!
@wangtang32000
@wangtang32000 Год назад
i didn't expect how satisfying the generation would sound lol
@hattonz5275
@hattonz5275 Год назад
Would be cool to make a game using this. Cool video! : )
@Lifesstructure_
@Lifesstructure_ Год назад
Just with a higher pitch
@ocomolinaehain1795
@ocomolinaehain1795 Год назад
This reminds me of, a bit obviously, echolocation, as well as Slime molds!
@YellowCardx
@YellowCardx Год назад
What library did you use for the visualization?
@blazester1018
@blazester1018 Год назад
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 Год назад
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 Год назад
@@CodeNoodles Perhaps unlist them and put it in a playlist called "Old Videos" or something
@paulaosegueda9053
@paulaosegueda9053 Год назад
I love your videos
@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 5 месяцев назад
Or Jump Point Search
@MeriaDuck
@MeriaDuck 5 месяцев назад
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🙂
@Hoxle-87
@Hoxle-87 6 месяцев назад
Nice!
@osabga6877
@osabga6877 Год назад
HI, how did you created grafics for c++?
@cabbageder
@cabbageder Год назад
So cool!
@jakeaustria5445
@jakeaustria5445 3 месяца назад
Hi Mr. Pasta, it's fortunate to see you not being gulped down by philosophers.
@PikalaxALT
@PikalaxALT 5 месяцев назад
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 5 месяцев назад
That's such a cool idea, but I don't know if such a layout like that exists.
@shripalmehta
@shripalmehta 3 месяца назад
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.
@KingOfTresune
@KingOfTresune Год назад
Where is your duck hunt vid? That was really great!
@richarddooley3655
@richarddooley3655 Год назад
*Adds sounds* Algorithm: -I am cop -Now I am cat on piano
@obvioustruth
@obvioustruth 6 месяцев назад
Awesome video! :D
@TheArchitectOfDreams
@TheArchitectOfDreams 2 месяца назад
Sound effect should be low fart at the start, then get higher pitched as it gets closer.
@user199x
@user199x 7 месяцев назад
Would've been fun to see an algorithm that picks at random, just for the sound of it
@Pheonix1328
@Pheonix1328 Год назад
You could totally make music with this, and each algorithm would have different methods to do so...
@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 6 месяцев назад
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.
@thomasames3789
@thomasames3789 Год назад
I would love to know what C++ Editor you use!
@CodeNoodles
@CodeNoodles Год назад
I use Visual Studios for my projects but in my videos I show the code with VS Code instead.
@thomasames3789
@thomasames3789 Год назад
@@CodeNoodles Thank you!
@djtimo
@djtimo 10 месяцев назад
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 10 месяцев назад
It's on my Github, which is in the description of my videos.
@Psychopatz
@Psychopatz 5 месяцев назад
I feel the struggle of the cpu from scanning that algorithm grid lmao
@lightsinthedarkness
@lightsinthedarkness Год назад
What happened to your duck hunting video, I saw it and liked it but now it's gone?
@CakeCh.
@CakeCh. 5 месяцев назад
0:43 Oh is that a "Sounds of the Mandelbrot set"? (colorful ♪)
@GordonWrigley
@GordonWrigley 5 месяцев назад
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 5 месяцев назад
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.
@brendenm8182
@brendenm8182 Год назад
Posted 7 seconds ago this is the earliest I've ever been anyways hello
@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 8 месяцев назад
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)
@davepullin8572
@davepullin8572 6 месяцев назад
You should generate a sound in sync with the drawing of the final path. (instead of the silence!)
@HyperFocusMarshmallow
@HyperFocusMarshmallow 6 месяцев назад
Cool!
@isaiahates9533
@isaiahates9533 Год назад
Wow that's why I am subscribed for free codes
@LilCalebW
@LilCalebW Год назад
Niiiice
@absobel
@absobel Год назад
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 Год назад
New channels tend to get less traction, even if the content is basically a copy but modified. (pain)
@hypercoder-gaming
@hypercoder-gaming 5 месяцев назад
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 5 месяцев назад
this is called a bidirectional search. it's usually faster, but the implementation is more complex
@jeremiahlyleseditor437
@jeremiahlyleseditor437 3 месяца назад
This works wonderfully but most of the outcomes are not the shortest distance. Have you improved this algorithm to always give the shortest distance?
@Knittely
@Knittely 6 месяцев назад
Now give this to some music producers and they will make a song by creating a maze!
@RenatoT66
@RenatoT66 Месяц назад
Wow!
@anibaldk
@anibaldk 6 месяцев назад
8:21 Me telling a story. 8:24 My gf telling the same story.
@Unfilteredcallinshow
@Unfilteredcallinshow Год назад
Your videos are great, but flashing back to the white background has destroyed my retinas. Please fix in the next patch
@lod4246
@lod4246 Год назад
7:49 lmfao oof sound
@ragemodegaming7962
@ragemodegaming7962 4 месяца назад
8:24 R2D2 on drugs
@empireempire3545
@empireempire3545 9 месяцев назад
Now i wait for Jump Point Search
@isaacmurray8490
@isaacmurray8490 9 месяцев назад
You should use this to make a pathfinding algorithm play never gonna give you up
@AngFan1
@AngFan1 Год назад
if polibeus existed this is tha music
@nopparuj
@nopparuj 7 месяцев назад
4:28 Generous best-first dearch
@shadow_jem_YT
@shadow_jem_YT 6 месяцев назад
7:49 it sounds like the oof sound efect
@frankdieter9907
@frankdieter9907 Год назад
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
@DarmaniLink
@DarmaniLink 6 месяцев назад
7:18 to get to the part of the video you clicked for
@morgandonze7798
@morgandonze7798 7 месяцев назад
8:24 best one
@Haxses.
@Haxses. 11 месяцев назад
Watching this made me hungry for noodles...
@BelldofersMatlack
@BelldofersMatlack 7 месяцев назад
7:50 "OOF"
@jayronbaello3645
@jayronbaello3645 Год назад
codenoodles i have a question
@wurdleturtle1
@wurdleturtle1 5 месяцев назад
I wonder if someone could make music with this…
@invisiblevfx
@invisiblevfx 9 месяцев назад
Nice job. Now use only the notes in the a minor key
@tt_thoma
@tt_thoma Год назад
Could you fill your character eyes ? It's real scary NGL
@heyhey97777
@heyhey97777 Год назад
hello there
@frankdieter9907
@frankdieter9907 Год назад
General Kenobi
@Marioloverr2012
@Marioloverr2012 Год назад
How this comment get 5 likes?
@kippesolo8941
@kippesolo8941 5 месяцев назад
Nice Vid but did you seriously compare A* and BFS ?? A Path finding algo vs a path optimization algo.
@jayronbaello3645
@jayronbaello3645 Год назад
its that where did you discover coding and where did you use to code before making custom games
@CodeNoodles
@CodeNoodles Год назад
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 Год назад
@@CodeNoodles oh ok im still a beginer in coding
@explodingwolfgaming8024
@explodingwolfgaming8024 Год назад
Commenting 4 algorithm
@moth.monster
@moth.monster Год назад
i apprecated the greedy worst-first search
@mission2858
@mission2858 Месяц назад
7:50 Oof
@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!~
@rcookman
@rcookman Год назад
No Dijkstra's algorithm???
@the_cheese_cultist
@the_cheese_cultist 5 месяцев назад
on a graph with uniform edge cost, dijkstra works identically to bfs
@tovarischkarno4390
@tovarischkarno4390 6 месяцев назад
3:43 : Try saying that 3 times fast Me: Greedy Breast F- wait what?
@Frezi23
@Frezi23 10 месяцев назад
Maybe it's better to use vectors here instead of straight lines, to optimize it's movement
@callmemondy
@callmemondy Год назад
Hello
@microwavedcaprisun9
@microwavedcaprisun9 Год назад
hi
@Lightyboii
@Lightyboii Год назад
ThAt soUnd
@professorcube5104
@professorcube5104 Год назад
7:58 why does this sound like the roblox death sound
@Periwinkleaccount
@Periwinkleaccount Год назад
I think you should put this online so other people can use it.
@MC5677
@MC5677 4 дня назад
bet you can't port it to 3ds
@theguywiththewhiteblanket
@theguywiththewhiteblanket 3 дня назад
Try ds
@paul10724
@paul10724 Год назад
2:51 pls don‘t use Nikocado clips. Its satisfying to look at those paths. A cool video.
@marcd.1166
@marcd.1166 5 месяцев назад
"Manathan distance" ... use the proper math term "Euclidian distance"
@the_cheese_cultist
@the_cheese_cultist 5 месяцев назад
those are different. Manhattan distance is abs(x1-x2)+abs(y1-y2). Euclidean distance is sqrt((x1-x2)^2 + (y1-y2)^2)
@drakovangorder8160
@drakovangorder8160 Год назад
give us the link lmao
@drakovangorder8160
@drakovangorder8160 Год назад
i want to mess with the funny noise generator
@ImXyper
@ImXyper Год назад
then
@callmemondy
@callmemondy Год назад
Earn your early ticket here! Only for 1h
@microwavedcaprisun9
@microwavedcaprisun9 Год назад
claimed
@emperorstorm3266
@emperorstorm3266 Год назад
demialc
@Bottle_Goat
@Bottle_Goat Год назад
Claimed
@newbite6394
@newbite6394 Год назад
lol 6:40 ratio
@DD-rn4gi
@DD-rn4gi Год назад
The sounds are horrendous
@IldefonsSkrzypifurtka
@IldefonsSkrzypifurtka Год назад
It sounds like "faith" and that's not very poggers ✝️🙏
Далее
AI Learns to play Geometry Dash || Part 2
10:27
Просмотров 183 тыс.
How do vector field Pathfinding algorithm work ?
7:12
ЛИВАН - КАК ПР***АТЬ ВСЁ
25:57
Просмотров 271 тыс.
15 Sorting Algorithms in 6 Minutes
5:50
Просмотров 24 млн
How Dijkstra's Algorithm Works
8:31
Просмотров 1,2 млн
ChatGPT vs. REAL Programmer... Who Will Win?
9:12
Просмотров 13 тыс.
Using Space Filling Curves to Render Images
3:40
Просмотров 12 тыс.
Pathfinding Explained in the Binding of Isaac!
9:36
How to average color
7:46
Просмотров 85 тыс.
How principled coders outperform the competition
11:11
Giving Personality to Procedural Animations using Math
15:30
Внутренности Rabbit R1 и AI Pin
1:00
Просмотров 2,3 млн
🤖Вернулись в ПРОШЛОЕ🤪
0:28
Просмотров 109 тыс.
#miniphone
0:18
Просмотров 3,5 млн
🤖Вернулись в ПРОШЛОЕ🤪
0:28
Просмотров 109 тыс.
Samsung or iPhone
0:19
Просмотров 7 млн