Navmesh cross-platform determinism

Hi,

I have a fixed point simulation for an RTS game.

Using your asset, is a navmesh (not grid based) deterministic if:

  1. It needs to be updated at runtime
  2. A funnel algorithm is used so different sized units can path appropriately

I see source code is included with the A* pathfinding project asset. If the funnel algorithm (or however you handle different sized units) is not deterministic is it possible in theory I could rewrite it in fixed point maths to be deterministic?

Any general advice for what I’m trying to achieve?

Thanks

Hi

Pathfinding mostly uses integer math, so that should be determinstic.
However, many other parts use floating point math and may in very rare cases yield different results on different machines.
Note also that the funnel algorithm used in this package does not handle differently sized units. I have tried the funnel algorithms that can, and while they worked in 99% of the cases, there were wayy too many edge cases where they produced garbage output.

1 Like

Thanks for the info, I thought that was probably the case but thought I’d ask anyway.

Which funnel algorithms did you try & which is used in the package?

Hi

I can’t remember which paper I implemented for the arbitrary radius algorithm, but the one used in the package right now is http://digestingduck.blogspot.com/2010/03/simple-stupid-funnel-algorithm.html

1 Like

Ahh that’s the one I found too! The author there says that it’s best to just make more navmeshes for different unit sizes, if that’s feasible.

Thanks for the help! :+1: