- Home /
Dynamic Pathfinding
Hi, I'm currently working on a game that creates a randomized maze using tiles and such, and to make it even more complex it regenerates parts of it as the game goes. What I would like to do is add some AI within the maze to track and follow the character.
My issue is that since everything is generated at run time, I naturally can't use a navmesh (at least as far as I know...) so that's out. I've messed with the Astar A* Pathfinding and it sorta works, but it causes issues with lag when it needs to recheck the grid. So I'm just wondering if anyone knows of a more efficient way or a way to optimize the pathfinding.
Thanks!
Answer by Firedan1176 · Sep 28, 2016 at 05:11 PM
With A*, you only need to calculate the pathfinding mesh/grid when your maze is generated. Afterwards, there's optimized ways to update your pathfinding when you spawn in your objects without completely generating the whole thing again. Unity's native NavMesh has a form of this, but I'm not sure if it's that efficient if you have a whole bunch of them.
Essentially, you could use the native AI in Unity, but it might not be that efficient if you have a lot of these dynamic objects (which is essentially your whole maze).
Well the problem is the maze changes and often times will create an entirely new route, so what I've been doing it rescanning the grid and resetting the AI's path. I'm trying to use the UpdateGraphs(Bounds) function as seen here to limit the entire graph but it still lags a bit. Also I either need to make the graph huge or figure out a way to recenter it each time a new part of the maze is generated...
Check the procedural examples folder of Astar how its done. You might want to make the grid follow the player (add procedural grid mover script to your player) and make for example 200x200 units grid and update it when player moves 10 units. Then all the enemies within 100 units radius will be able follow you and the grid moves with the player, only updating the new parts of the grid. You only need to scan the graph when your scene is started. Whats your target platform and devices? I didn't notice any lag with this method on PC open world game, but I haven't tested with mobile.
Your answer
Follow this Question
Related Questions
How do I do AI pathfinding in a scene that changes drastically during play 0 Answers
AI on dynamic navmeshes and moving platforms? (Drawbridges, Elevators, Monorail trains, etc) 1 Answer
Maze Game Pathfinding AI 0 Answers
Help With Maze Pathfinding AI. 2 Answers
How to make pathfinding over Minecraft-style terrain in Unity? 1 Answer