Easy Pathfinding for ECS and MONO [Agents Navigation Asset Review]

  Рет қаралды 13,350

Turbo Makes Games

Turbo Makes Games

Күн бұрын

📌 Get Agents Navigation: assetstore.unity.com/packages... 📌
⌚ Flash Deal Starts May 31st at 8PM PDT ⌚
🐤 Follow me on Twitter for updates: / turbomakesgames 🐤
💬 Join our Discord community: tmg.dev/Discord 💬
Other Assets by @LukasChodo
DOTS Plus: assetstore.unity.com/packages...
Adaptive Split Screen: assetstore.unity.com/packages...
DOTS Mesh Slicer: assetstore.unity.com/packages...
Imposter Graph (NEW): assetstore.unity.com/packages...
My Favorite Assets on Sale:
Final IK: assetstore.unity.com/packages...
DOTween Pro: assetstore.unity.com/packages...
Feel: assetstore.unity.com/packages...
Odin Inspector & Serializer: assetstore.unity.com/packages...
Odin Validator: assetstore.unity.com/packages...
Nature Manufacture Forest Environment: assetstore.unity.com/packages...
Shapes Vector Graphics: assetstore.unity.com/packages...
Epic Toon FX: assetstore.unity.com/packages...
Asset store affiliate links help support Turbo Makes Games!
💻 My Game Development Setup: tmg.dev/GameDevPC 💻
📸 My Camera Gear: tmg.dev/CameraGear 📸
🎮 Let me know what other topics you want to learn about 🎮
⌚ Time stamps for key topics ⌚
- 0:00 - Agents Navigation
- 1:01 - Asset Overview
- 3:05 - How to Setup
- 6:26 - GameObject Performance Metrics
- 9:15 - Entities (ECS) Performance Metrics
- 13:05 - Overall thoughts on Agents Navigation
- 14:14 - Areas of Improvement
- 15:10 - Final Thoughts
🌐 Find Me Online! 🌐
📄 Blog: tmg.dev
👨‍💻 GitHub: github.com/JohnnyTurbo
🎮 Games: johnnyturbo.itch.io/
🦅 Twitter: / turbomakesgames
📺 Twitch: / turbomakesgames
🎵 Music by: Joakim Karud / joakimkarud
#️⃣ #GameDevelopment

Пікірлер: 62
@LukasChodo
@LukasChodo Жыл бұрын
Thank you for reviewing my asset. I am truly humbled!!! I am actually quite impressed with how well you communicated the package idea, especially capturing the idea of this package as the foundation for project-specific navigation. This was one of the most important pillars of the package. Honestly, I would love to include this video somewhere in my package as I feel like it provides so much information. Additionally, I really loved the suggestions you made, and I have already added them to my feature requests backlog. By the way, it is always fun to see foreigners trying to pronounce my last name. :D
@1lsgaming27
@1lsgaming27 Жыл бұрын
cool asset
@TurboMakesGames
@TurboMakesGames Жыл бұрын
So glad to hear this! Thanks for the kind words and thanks for creating such a great and useful asset! Feel free to include this video wherever you'd like 😊 Also, you should have seen my other attempts at trying to pronounce your name 😆😆 Hope the sale does well for you!!
@ashpats2
@ashpats2 Жыл бұрын
Classic case of an american butchering a name :D Btw, any updates you have foreseen for the package in the future? Like fixes, behavior improvements, etc.
@mrbinggrae5954
@mrbinggrae5954 Жыл бұрын
Sale period is over...? When is the next sale period...? I am so sad.
@LukasChodo
@LukasChodo Жыл бұрын
@@mrbinggrae5954 Yea its over. Usually, I am get news about sale only within the month or week, so currently no upcoming sales for agents navigation AFAIK.
@logicprojects
@logicprojects Жыл бұрын
Very cool stuff! High performance assets like this seem like a great application for dots without needing everyone to learn it!
@TurboMakesGames
@TurboMakesGames Жыл бұрын
So true!! Something like this could be a good way to start introducing people to the concepts of DOD
@jrf407
@jrf407 Жыл бұрын
I’ve been looking at this package quite a bit to replace my current solution. After watching this video I’m definitely going to try it out. Thanks for covering it!
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Awesome, hope it works out well for you!!
@chosencode5881
@chosencode5881 Жыл бұрын
Another great video! Thanks again man, glad to see this has Game Object support for old school unity Devs like me!
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Absolutely! And it doesn't seem like the GameObject usage is significantly worse or more difficult to use than the ECS usage
@denvernova4239
@denvernova4239 Жыл бұрын
Awesome video. This asset looks amazing.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Thanks! Glad you thought so
@ananthukrishna5259
@ananthukrishna5259 Жыл бұрын
This looks like a must get package. there are a lot of scenarios where navigation can be used and it beeing this good only encorages it.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
I totally agree! I've worked on a few projects in the past where this would have literally saved me days of work!
@TheKr0ckeR
@TheKr0ckeR Жыл бұрын
Thanks for your high effort on this mate! Do you have some video plans on 2022 LTS with updated DOTS?
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Lots of exciting things coming to the channel soon 😀
@AIGameMonster
@AIGameMonster Жыл бұрын
Great, already favorited
@TurboMakesGames
@TurboMakesGames Жыл бұрын
🙌🙌🙌
@adambenk0
@adambenk0 8 ай бұрын
Hi. I am working on a ground vehicle based game where player can build his base as well, all in 3D. The vehicles have a steering system just like a car has. It is going to be an open world slow paced kind of game. Do you think that this asset will work well for vehicles and theirs pathfinding ?
@KonradGM
@KonradGM Жыл бұрын
I know DOTS in beta used to have the convert to entity thingy where you used object to use as ENTITIEs, nbut does 1.0 still support it? The Object frontend and ECS backedn seem to be kinda it but still something im curious about
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Nope, convert to entity is no longer a thing! You can still used managed components on the ECS side to reference things on the MonoBehaviour side, but it is a bit more challenging thing to do as it can be a bit of a pain to reference objects between the main scene and subscene(s).
@testitestmann8819
@testitestmann8819 Жыл бұрын
This looks really nice. I wonder how it compares to the A* project. I hope I will manage to pick it up when it's on discount.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Not sure how they compare, but this one is great because it is easy to setup and works well with both ECS and MonoBehaviours
@chasinghope8198
@chasinghope8198 4 ай бұрын
How to set high priority for red ball
@manai2683
@manai2683 Жыл бұрын
Oh shoot I missed it.... oh well... I wonder if this sort of redundant with A* pathfinding by Arongranberg though. It has local avoidance and what not too so..
@odo432
@odo432 Жыл бұрын
This has been on my To-Buy-List for a while now. I'll definitely be picking it up in a few days when it goes on sale. Have only put it on hold due to the asset requiring ECS 1.0 which won't be production released until 2022.3 LTS. I did give the latest 2022.2.21 a go but for some reason installing entities gives me a lot of errors so here's hoping Unity irons them out soon as I'm quite keen to check it, and this asset, out. For now, I'm using 2021 with entities 0.51 which has been surprisingly robust.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
0.51 was a good version for sure, but it is quite a bit different than 1.0, so may be a bit of work to upgrade everything. although 2022 LTS is out now!!
@odo432
@odo432 Жыл бұрын
@@TurboMakesGames Yeah, I purchased Agents Navigation when it went on discount. Can't wait to try it out. I won't be upgrading my current project as it's too much of an effort to make it work with entities 1.0 (I did have a quick look to see what it would take). I do, however, have an idea for another project that I think would be perfect for Agents Navigation and DOTS 1.0 so can't wait to start that. Thanks for the videos.
@user-jg8fv5ew1l
@user-jg8fv5ew1l 8 ай бұрын
Hi. Do you know how to stop group of agents when they walking around target? I tried using Smart stop component but it didnt helped.
@TurboMakesGames
@TurboMakesGames 8 ай бұрын
Take a look at the RTS example project included with the package and see how it is setup there, because I believe in that example it does a good job at handling this. The nice thing about this package though is that it is easy to extend to add in your own custom stopping behavior.
@FrankLin-mr5ss
@FrankLin-mr5ss 9 ай бұрын
Are we able to "hook" into this asset to add additional AI behavior? Eg if these spawned objects/entities were animals could we introduce hunger and thirst, then implement some sort of state system where it instructs them to pathfind their way to food or water?
@TurboMakesGames
@TurboMakesGames 9 ай бұрын
Yes definitely! As I was making this video I found it extremely easy to connect in with the components of this asset to do different things. The code is very clean and easy to follow as well
@FrankLin-mr5ss
@FrankLin-mr5ss 9 ай бұрын
@@TurboMakesGames thanks man... It's not easy to keep up with the community so I appreciate your response. I have a follow-up question: How would you save entities in ECS and load them back in? From what I've managed to gleam from forums it seems like it's anyone's guess at this point
@pablomirandaandrade3712
@pablomirandaandrade3712 Жыл бұрын
I love u man
@TurboMakesGames
@TurboMakesGames Жыл бұрын
🙌🙌🙌
@mohamadbakr6474
@mohamadbakr6474 Жыл бұрын
This is amazing but I was wondering isn't there a alternative for ECS for unity because I don't have the budget to pay for this and also I don't want to pay and then after while unity comes out with a pathfinding system for entities and its for free. So I would like if you would answer this question and do a tutorial if such a thing exist. Thanks for your amazing content and all of your effort.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Honestly, this is probably going to be your best option. Unity hasn't mentioned that they are working on a native solution (doesn't mean they aren't working on it though) so I wouldn't expect anything from them to come out soon. There are some other packages out there people have made, but they aren't compatible with ECS 1.0. Reese Schultz made a good one, but it still uses Entities version 0.51 I believe
@yichunwang6452
@yichunwang6452 29 күн бұрын
it didn't move in subscene
@mohokhachai
@mohokhachai 5 ай бұрын
Prblm is on arrival so put them on circular motion
@TurboMakesGames
@TurboMakesGames 5 ай бұрын
That sounds like a good solution!
@KimboKG14
@KimboKG14 Жыл бұрын
10:45 that looks like unreals nanite visualisation 🤣
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Haha it kinda does huh 😄😄
@AlexanderZapataIndividual
@AlexanderZapataIndividual Жыл бұрын
These mechanics will not yield deterministic behavior's cross platform on systems that do lock stepping, such as Warcraft and Sctarcraft. given floating point arithmetic is inherent in names which this package depends on. Unity itself by its float use has this problem. This negates its usability on Multiplayer functionality. For which Such games are known for. I myself am sort of using Navmesh on the controlling client of the unit and only sending the next position to go on the locally calculated path across the net, to reduce the amount of network traffic. Given upon changes of the enviorenment such as following an enemy, demand path is recalculated. Such recalculations due to movement on a selected army targeting a feeling enemy would incurr massive network traffic. If you send the path across the network. using a navmesh to calculate the path on each client yields different paths and so, it would desynchronise the game. So altho is nice. I have no use for it!
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Fair points! The developer mentioned on the store page that he intends to address the cross platform determinism problem by introducing fixed point types, so we'll see how that pans out. All the best with your project 😀
@AlexanderZapataIndividual
@AlexanderZapataIndividual Жыл бұрын
Reading his package information he says: Is it deterministic? All systems are running in fixed update. In theory, it should be deterministic for Intel/AMD platforms (Burst). However, it still uses floats for navigation operations, which will not produce deterministic code across all the platforms. In the future, I plan to address this by introducing fixed point types.
@LukasChodo
@LukasChodo Жыл бұрын
Yes, this highly requested feature is something I want to implement at some point. It is going to be a bit complex, as it would require converting some of the Unity ECS components like transform. Additionally, I would like to provide the option to keep float precision as well. It's important to note that Warcraft and StarCraft were created during a time when network bandwidth was limited. Considering factors such as the target platform and entity count, a client-server architecture could work well. However, it highly depends on these factors. Nevertheless, lockstep would still offer better performance in terms of synchronization.
@AlexanderZapataIndividual
@AlexanderZapataIndividual Жыл бұрын
@@LukasChodo The only solution to overcome the desynchronisation is to avoid float usage. Even on the same plataform due to how processors process differently the floats. I have doine ample testing on this. I dont think you can mess with unity's internal physics calculations to use a fixed point type. The work around I use is, to use a physics system developed using fixed point. Simulation is deterministic on different instances of n the same computer however. Photon Truesync(descontinued) uses a weak and buggy physics package one can use to step a physics simulation. Their design gave like 15 frames per second max, which would make the RTS experience unbearable. This is why they implemented some sort of prediction and correction software. Still sucked. I only use the physics Fixed point Physics from them. I have seen also a DOTS package modified by a guy called Kimbatt, that seems to have done something like what you are trying to do. But the DOTS was a package he could modify. While unity internals are out of reach. God speed, your design is great. And I so wish I could get my hands on something that powerful that works.
@teanomg
@teanomg Жыл бұрын
i push 1000 likes but nothing happens
@TurboMakesGames
@TurboMakesGames Жыл бұрын
😲💯
@LukeClemens
@LukeClemens Жыл бұрын
I too am really impressed by this asset. Lukas should be really proud of it! I've used A* Pathfinding Project and getting local avoidance to work in ECS was a huge task that took about 3 weeks... but with Project Dawn I had ECS agents running around with full local avoidance in pathfinding in under an hour. Its performance in many scenarios is awesome as well. There is one problem I had with it - when a lot of agents attempt to go to the same destination and they all get close to that destination, even with avoidance by itself, performance tanks pretty hard - I was only able to get ~2k agents in that scenario while keeping FPS above 60 (on a laptop). That made it ~3x slower than A* Pathfinding project in that scenario, so hopefully a fix will come soon because that's the main reason I'm not using the Project Dawn asset right now. If anyone is interested and has already bought the asset - my benchmarking utility is here: gitlab.com/lclemens/PdBenchmark . I'd be interested to see if other people are noticing the same end-of-path slowdown and also I'd like to see some of the benchmark numbers you all are getting - especially with Turbo's supercomputer 😆 Overall - Awesome project - it's an absolute no-brainer for starting up a new DOTS project and will save countless days and weeks of messing around with half-broken pathfinding + avoidance solutions or writing your own.
@TurboMakesGames
@TurboMakesGames Жыл бұрын
Totally agree, it is a great asset! Thanks for pointing out the issue of all the units pathfinding to the same location. Though I think in most "real" game scenarios, you wouldn't actually want all the units to go to a specific point, rather it would probably be best for them to line up in a circular formation around the destination point. It seems like this asset has some of that built into some demos, but it is definitely a feature that could be improved - luckily with the way this asset is structured, it probably wouldn't be crazy difficult to add this behavior in yourself. Thanks for sharing your benchmarking utility, I'll see if I can give it a go later and post the results in the Discord. p.s. I think adding that link almost got your comment lost in "comment purgatory" again... luckily I was able to find it though 😊
@LukeClemens
@LukeClemens Жыл бұрын
@@TurboMakesGames thanks for getting me out of purgatory 😂. I'll remember not to include links next time.
@MatteoJD
@MatteoJD 8 ай бұрын
@LukeClemo I was wondering if in the past few months that you have made a determination on which asset you prefer? Which do you think performs better, and which is easier to implement?
@LukeClemens
@LukeClemens 8 ай бұрын
@@MatteoJD A couple of months ago Lukas fixed the slowdown issue by implementing a max neighbor count. If my game was based on game objects I would say that both are similar in terms of ease of implementation, and A*PFP provides more fine tuning options. However, since I'm using entities instead of game objects, the Agents Navigation package was waaaaaay easier to implement. A*PFP was built from the ground up to work with game objects and OOP so it sucks to try and adapt it to entities and DOP. I had to write a custom movement system and then after that it took over three weeks and hundreds of lines of code to get the RVO working. With agents navigation I had everything running in an afternoon with almost no coding. I did some benchmarking and Agents Navigation performed about 10% better with collision and separation compared to A*PFP's RVO. The Sonar feature in Agents Navigation is horribly slow so I don't use it. I made both benchmarking apps public - you can find them by searching gitlab for "pdbenchmark" and "astarpfpbenchmark".
@MatteoJD
@MatteoJD 8 ай бұрын
@@LukeClemens really appreciate the response. I think I'll have to aquire Agents Navigation now. Cheers man!
@fuglong
@fuglong Жыл бұрын
Would this work in 3d space? Currently planning a world with large groups of flying cars
@TurboMakesGames
@TurboMakesGames Жыл бұрын
I haven't played around too much with the flocking behavior that comes with this asset, but I do know there are other DOTS focused assets that do flocking like this one - assetstore.unity.com/packages/tools/ai/flock-box-dots-155028?aid=1101l9vRP
@ananthukrishna5259
@ananthukrishna5259 Жыл бұрын
i was wondering the same. I have never seem many 3d navigation systems.
Should You Use DOTS in 2024? (plus what is Unity ECS)
30:15
Turbo Makes Games
Рет қаралды 35 М.
Why Stairs Suck in Games... and why they don't have to
11:24
Nick Maltbie
Рет қаралды 1,5 МЛН
100❤️ #shorts #construction #mizumayuuki
00:18
MY💝No War🤝
Рет қаралды 20 МЛН
СҰЛТАН СҮЛЕЙМАНДАР | bayGUYS
24:46
bayGUYS
Рет қаралды 797 М.
Dynamic #gadgets for math genius! #maths
00:29
FLIP FLOP Hacks
Рет қаралды 19 МЛН
A Comparison of Pathfinding Algorithms
7:54
John Song
Рет қаралды 704 М.
When to use Entity Command Buffer in Unity ECS - [Unity DOTS]
11:53
The Hot Path Show Clips
Рет қаралды 1,3 М.
How Many Animated Units Can Unity ECS Handle? [Perf Test]
16:32
Turbo Makes Games
Рет қаралды 13 М.
Intro to DOTS Animation - Unity ECS Tutorial 2023
28:30
Turbo Makes Games
Рет қаралды 20 М.
We Made VAMPIRE SURVIVORS in 2 Engines - Unity & Bevy
19:19
Turbo Makes Games
Рет қаралды 30 М.
The PERFECT Pathfinding! (A* Pathfinding Project)
24:59
Code Monkey
Рет қаралды 109 М.
Control Units and Give Orders! (Unity RTS Tutorial)
17:14
Code Monkey
Рет қаралды 188 М.
Watch This Before Working on a Big Game in Unity
18:44
John Leorid
Рет қаралды 290 М.