Erratic behaviour with RichAI and Funnel Simplification enabled


#1

I am finding that RichAI agents with Funnel Simplification will start behaving oddly when the system is under a good load. The objects will start moving through obstacles, and jumping to nodes that are not connected. When the load is reduced, everything behaves fine. If I turn off Funnel Simplification, everything works fine.

Another really weird thing that may or not be related is that I will experience odd behaviour if I turn off “Always Draw Gizmos” in Seeker. This is the same in editor or in runtime build. I had a quick look at code referencing this and does not make sense. If I leave on “Always Draw Gizmos” then everything behaves fine. Performance in runtime build does not seem to get affected either way.


#2

Hi

Do you have a video of this? That could help me determine the likely cause.

Do you mean ‘Draw Gizmos’ on the Seeker or ‘Always Draw Gizmos’ on the AIPath script (which I don’t even think you are using)? There is no ‘Always Draw Gizmos’ toggle on the Seeker component.
What kind of odd behavior are you seeing?

Also. Which version are you using?


#3

“Draw Gizmo” on Seeker component. Occasionally RichAI objects will get stuck or run back and forth in small loops. I have tested quite a bit and really seems related. Usually it is just a couple of seekers out of a horde but here is a video with an extreme example:

https://youtu.be/CgklTzUKNjU

I think I have tracked it down to this code in Seeker.cs - OnPathComplete()

// If not drawing gizmos, then storing prevPath is quite unecessary
// So clear it and set prevPath to null
if (!drawGizmos) ReleaseClaimedPath();

Looks like this code gets processed in runtime as well as in the editor. So if I leave “Draw Gizmos” enabled, it seems to fix this particular issue with guys getting “stuck”. Might be a small hit on FPS but did not seem like much.


#4

Strange. Are you using some custom movement script or some custom changes to it? Or are you calculating paths manually at some point?


#5

No changes or any manual path changes. If I comment out that one line then everything seems to behave ok. Not sure of the implications of doing that…