Trying to figure out why my navigation agents route weirdly, where the path my agents take don’t appear to be direct. I found an open PR godotengine/godot#70724 a few days ago which suggested a potential reason for the problem. Namely, the triangles in a navigation mesh are not combined, resulting in a path that isn’t direct. Changing my method to define the navigation mesh using a separate component instead of by defining a navigation mesh for each tile seems to fix the problem.
Before:
After:
I think this is because Godot’s navigation system tries to build a path between triangles, whether those triangles are optimized or not, rather than considering the entire shape that the navigation mesh makes.