Hello Daniweb,

In 3D space I have generated a path which jumps between points in a grid of 100x100x100.
When simulating movement through this path, I tried making a bezier curve of the points in the path, but the results were not good enough.

I googled a lot, and the closest I came to success was this article from a game developer (http://www.valvesoftware.com/publications/2009/ai_systems_of_l4d_mike_booth.pdf, page 14) - something called reactive path following seams to be good for my purpose.

I am not sure at all, how I would get on to do this.

I thought of choosing a random number (2-6 or something) of points ahead the current point and then move to that position, but it simply seems to random and would make the bot run confused around.

I also thought of finding the point on the path, which is closest to being directly in line of sight of the current position, and move there.
But what if that selected point is like the end of the path, 2.5 kilometers away and crosses a lot of walls? - Furthermore, the point the bot moves to would continuously be the point directly in front of it, so it would not get far.

I hope anyone has advice or articles on this subject.

Thank you :)

Recommended Answers

All 4 Replies

I skimmed both these links (and the downloadable material), but I do not understand how it relates to the goal I have (and is demonstrated on the Valve PDF, page 14).

Could someone explain?

Edit: Ps, I do not need to generate a path, I just need to make the moving along the path more realistic, by not following it exactly, as it is jagged.

The easy answer is physics & "soft" targeting. Apply your x/y/z acceleration to the object, having it move toward the current node/point/target and once it gets within a pre-defined distance to that target, set it's new target to the next point and accelerate the object toward that new target. This should give a smooth transition, as long as you're not using a pure xVelocity = 2.0 type statement, but positive & negative acceleration.

The easy answer is physics & "soft" targeting. Apply your x/y/z acceleration to the object, having it move toward the current node/point/target and once it gets within a pre-defined distance to that target, set it's new target to the next point and accelerate the object toward that new target. This should give a smooth transition, as long as you're not using a pure xVelocity = 2.0 type statement, but positive & negative acceleration.

Thank you will try that and work my way from there! :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.