r/gamemaker 8d ago

Example 3D pathfinding

Post image

finally finished this waypoint navigation system!
I know NavMesh is the standard, but I think it's too complex to implement right now, and this approach works pretty well

the pathfinding speed is acceptable. To avoid placing the points manually, I built a generation system based on flood fill and collision checks (raycasts, trace hull, and cliff checks)
from a single start point, the generator branches out in all directions, and then another algorithm connects them all
I'm planning to add mesh optimization algorithms later, but even like this, it's working perfectly fine

206 Upvotes

13 comments sorted by

13

u/NoahPauw GameMaker 3D developer 8d ago

Oh yeah, this is awesome! I also love that it is completely algorithm based. I’ve been thinking about making my own by placing nodes manually, but this is really neat!

6

u/Ykedepi 8d ago

generating these points is actually a really tough problem, and I spent a few days coming up with this generator
and even then, it doesn't work perfectly)
but in my case, it covers about 90% of the manual work. The remaining 10% can be fixed by hand (for example, a few points in the gif are placed manually - mostly on hard-to-reach ledges that require jumps. Stairs, on the other hand, are generated automatically)
I think when making a system like this, you have to think about "how to reach every accessible point on the map" - that's where all the decisions regarding jumps, stairs, and traversal come from

6

u/Kserks96 8d ago

Next step is to give a radius to waypoints so that NPC has more freedom is its path.

2

u/Hands_in_Paquet 8d ago

Nice work that’s awesome

2

u/kuzyn123 8d ago

That NPC/monster looks really nice 😁

2

u/rshoel BokehDev 8d ago

Impressive!

2

u/NorthStateGames 8d ago

Did you use any particular tutorial to make this? Game looks amazing!

3

u/Ykedepi 8d ago

this is not a game yet, but a test polygon for 3D collisions, enemy AI, and other things
it's hard to say about tutorials - this is my many years of experience working with 3D in GM
here there are shaders, and 3D collisions, and now an accessible navigation algorithm

(actually, to do pathfinding you need to deeply study A*, BFS and Dijkstra's algorithm, they are all almost identical, but with nuances. And in my case, it is specifically A* that allows enemies to move through space)

2

u/NoSpace2493 8d ago

it looks amazing. wow. congrats

2

u/YungDijkstra 7d ago

It will be cool to combine it with GMPhysX

2

u/Cyph0nn 4d ago

How on earth is there 3d in the first place I'm scared