Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I've built my path finding system with unreal engine, somehow the path finding part works just fine while i can't find a proper way to solve dynamic obstacles avoidance problem. My characters are walking allover the map and collide with each other while they moving. I try to steering them when collision occurs, but this doesn't work well. For example, two characters block on the road while the third one's path is right in the middle of them and he'll get stuck. Can someone tell me the most popular way of doing dynamic avoidance? Thanks a lot.

share|improve this question

1 Answer 1

up vote 1 down vote accepted

I've never used the UDK before, but I'd solve this problem using pseudo-forcefields. Each object has a convex (most likely spherical or elliptical) forcefield that encompasses the whole object plus a few in-game meters or so of room. These forcefields may combine or affect each other depending on closeness, so that actors won't walk into a V-shaped dead end and get stuck. Now, when an actor begins to enter a forcefield, it is steered away from the center, faster if closer to the object, and won't collide.

PS: Make sure to disable or shrink the forcefield if it contains the goal point.

share|improve this answer
    
Thanks a lot, but the tricky part is how to combine them together, path-following while steering, simply mix them up will lead unexpected behavior. –  Variable Dec 19 '12 at 10:12
    
The solution is to not make the actor follow the path directly. Instead, have the actor steer towards the next waypoint. This way, you can combine two steering influences without any problems. –  Boreal Dec 19 '12 at 11:56
    
Thanks, i'll try it –  Variable Dec 28 '12 at 7:43

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.