Path MoveBlocked handling / re-pathing advice

So I started diving down this rabbit hole yesterday and had a few more questions. Not sure if this should be discussed via email or another post or something else. This might be too granular and too specific for whats commonly answered, but I figured I’d give it a shot.

I got all the easy classes setup and have the generator left to code. Are there any plans to port what you have over to main or could I reference it in any way via perforce or similar? Would save me a lot of time :O.

My current gameplay scenario is I have a variable # of lanes with the AI moving towards a target. The target will sometimes move, but not when any AI are around and there might be multiple targets, but not multiple targets for a single AI.

I plan to regenerate the poly graph during our down phase when there is no AI around and I have the cycles to spare. The level layout can change during gameplay, but not while AI is active. The direction samples for a given tile should not have to change that much. The AI will revert to normal pathfinding when it aggro’s an attackable target. I could potentially generate all possible baseline polygraphs, but we also have player placeable props that cut out the navmesh.

The custom Navigation Data is spawned and registered in the derived navigationSystem build() override since its like the abstract nav data and not associated with a given agent right? That’s the only reason I could see why it would be spawned there.

Currently I’m just overriding follow path segment in the derived path following component to get the direction from the flow data. The AI should only stop moving when its in combat and using normal pathfinding so I think that should be enough. I was curious if/where you created the fake FNavigationPath and how it was used in normal requestmove execution via the custom BT Task. After one of my AI spawns they will currently only have a single desired move point, unless they are in combat.

On a code note I had to declare an implementation of FallbackAgentRadius inside my derived navigation system due to the extern declaration. It seemed a weird way of declaring a fallback default global.

The main part of the generator that I was unsure about was how you subdivided the poly graph into the set of uniform 2D tiles and then samples. From a data perspective that part is a little confusing/vague to me. The past influence map work I’ve done has all been on a uniform grid and I’m not sure yet how to layer a similar type grid onto the polygraph to get the uniform samples for defining the direction.

And lastly, what actor markup data do you use for the initial polygraph generation. Currently I was planning a basic pre-placed set of actors to define a lane/direction and floodfill out from those actors to a defined distance from the source lane actor.