Not Implemented Exception

  • A* version: 5.2.0
  • Unity version: 2022.3.49

The “Not Implemented Exception,” shown below, only appears if I have a huge recast grid (2D). If I have it saved; almost 11 Mb. Let me know if you want that file. The map was generated from a game with 36K RecastNavmeshModifiers, using 512x512 tiles.

AstarPath.active.Scan();
File.WriteAllBytes( filename , AstarPath.active.data.SerializeGraphs(new SerializeSettings { nodes = true }) );

Hi

Thanks for the bug report.
Was the graph saved using the current version of the package, or an older version?

Currently, version 5.2.0; I didn’t see a note that it was addressed in the Change Log through 5.2.3

I mean the graph file itself. Did you save it from an earlier version, or the one you are using right now?

The graph is created and saved in 5.2.0

Ok. Do you do any custom modifications to the graph? And do you use off-mesh links?

I’m unsure how to answer the question, so I provided this picture. I write the completed graph to disk so it doesn’t have to be rebuilt each time. When it’s being built, it marks all my objects as “unwalkable”. While being built, over 36,000 of these objects were set to be unwalkable. That’s the extent of how objects are set up. There are no “dynamic” RecastNavmeshModifiers in the system at the moment.

Is that what you are asking for?

That’s fine. Just as long as you don’t do any low-level modifications using code.

If you can replicate this reliably, I would be very interested in a test project in which I could replicate this issue. Would it be possible for you to share one with me?

Not sure how to do that. This is part of a game nearing early release. I had been using GridGraph and upgraded to Recast to support better graph resolutions.

It would be a lot of work to rip out just the map creation process into a test project.

Would the file it created through SerializeGraphs() be good enough?

This would also depend a lot on how the agent moves in the world.
Maybe it would work if you create a new test project, load your graph, and add a simple AI script that you move in a similar way to in your game, and see if that’s enough to replicate the error?

At the moment, the issue does not appear when I’m loading from disk instead of scanning. Possibly something left over from the scan?

Is there anything I should do after the Scan before using SerializeGraphs() ?

AstarPath.active.Scan();
File.WriteAllBytes( filename , AstarPath.active.data.SerializeGraphs( .... ) );

Strange… If serializing and deserializing cleans up the error, then it’s hard to debug with just the file.