Skip to main content
GameDev.net gamedev.net
🔒 Locked

A* and Steering Behaviours

Started by discodowney Jan 28, 2010 at 1:34 PM 4 replies 1.9k views
Original Post
discodowney
discodowney
Hey, I just want to confirm this really. But id imgine you use both of these in conjunction. So you would use The Steering Behaviour to get the Vector to move at and A* to get the Path. Then feed them into the entity class to move?
Sneftel
Sneftel
A* is a graph search algorithm that can be used as part of a global path-planning strategy, and steering behaviors can be used to execute the path proposed by the global path planner while providing local obstacle avoidance.
Rouks
Rouks
Like Sneftel said, it is possible to combine the two type of algorithms to obtain interesting results. You could use A* to obtain an optimal path and a simple behavior like following a path could be used in conjunction to create realistic movement. By pitching in a behavior to avoid obstacles, you could even prevent your entities from colliding with dynamic objects which might not be considered by your A* search. The following links might help if you're not totally familiar with the implementations or what they should look like:

Steering behaviors in general
Path finding behavior

Ender1618
Ender1618
I have had problems integrating these to methods together in the past. One problem I have had is that the entity might walk through static geometry when trying to avoid a dynamic object. The original path would have yielded no collision, but the dynamic avoidance does. Satic obj collision detection could be added to the dynamic avoidance, but there are lots of instances where u can still get stuck.

How do path engine like AI.Implant deal with this? I was told they avoid steering behaviors completely (by a sale rep that might not have known what he was talking about, i suppose).
Kylotan
Kylotan
Not having the steering avoid static obstacles too is just lazy, I think. As for getting stuck, it should be simple enough to detect when this has happened, perhaps via attaching expected arrival times to path nodes.
Sneftel
Sneftel
Quote:
Original post by Ender1618
How do path engine like AI.Implant deal with this? I was told they avoid steering behaviors completely (by a sale rep that might not have known what he was talking about, i suppose).
They may have meant that they avoid Reynolds-style steering behaviors. Something like RVO is "steering", but not steering behaviors as they are popularly known.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.