Personally I would tend to use a more straightforward approach.

You're right about your previous tracing technique ignoring the obstacles' velocities. But I can't see how your new idea would overcome this issue. The flow direction nodes (or how they might be called ; )) around the obstacles would only have a short range and they don't help by predicting future collisions.

The nodes could be stored in a 3d matrix. However, storing all the nodes in your space world would require a pretty huge matrix (depending on the dimensions of your world and the granularity of the flow field of course). This could be improved by moving a matrix of limited size with the player's ship all the time. Entities beyond this matrix won't be able to perform obstacle avoidance then, though.

I might be wrong, but I think that your brainstormed flow field implementation doesn't provide any vital information that we can't get without it. The flowing direction/information of the nodes can for example directly be derived from the obstacles' characteristics (velocity, movement direction and so on).


Perhaps you have ever seen Reynolds unaligned collision avoidance implementation?

This is an approach that takes the obstacles' velocities and future positions into consideration. It is checked, when two moving objects will have their closest approach. If the closest approach takes place in the future and ends up in a potential collision, the collsion threat will be avoided. The avoidance strategy can depend on several factors, e.g. the parallelism of the objects' velocity vectors (ger: bzw. wie sich die Objekte zueinander bewegen).

I did a steering behaviours implementation some time ago. The unaligned collisions avoidance part was never completetly finished, but if you would like to try something along these lines, feel free to ask.

I for one would try somethinglike that. : )