I successfully got NavigationAgent2D integrated with the NPC characters in null. It took some tweaking, but the characters move around to a predetermined destination and avoid each other.

I need to eventually make the navigation more robust so that the characters can move around according to their own schedules. However, I think I first need to solve the problem of how to give NPC characters two distinct states:

  • Travelling - You should not be able to talk to NPCs that are moving around.
  • Waiting - You should be able to talk to NPCs that are not moving.

I also have a bug where characters are not aware of static obstacles because I have not done anything to send that information to the NavigationServer2D.