Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: Seek Steering Behavior (AI)

  1. Jun 9, 2008 #1
    1. The problem statement, all variables and given/known data

    I'm having trouble understanding the physics equations related to Steering Behaviors For Autonomous Characters (present in the book "Programming Game AI by example").

    For those that don't know- Seek is a kind of behavior whereby an object with a given mass, current position & velocity attemps to seek to a target position.

    2. Relevant equations

    In the book, Mat Buckland calculates Seek like so (in Pseudocode)

    def Seek()
    DesiredVelocity = Normalize(TargetPos - VehiclePos) * VehicleMaxSpeed
    SteeringForce = DesiredVelocity - VehicleVelocity
    return SteeringForce

    3. The attempt at a solution

    Seek is stated, in the book- to return a steering force, which is "the force required, when added to the agents current velocity vector, gives the desired velocity.

    How does the subtraction of two velocity vectors suddenly become a force?

    My heads in a spin- any help is greatly appreciated!
  2. jcsd
  3. Jun 9, 2008 #2
    If you subtract the two velocity vectors, then you get a vector which points in direction you want the force to point. Formally, you would need to multiply by something (a constant, possibly) that has dimensions of mass over time to get a force. But the computer doesn't care about actual units, and the constant might as well be 1. So that's why a difference in velocities could be a force, or acceleration. A realistic implementation of that AI would probably need to have a constant to scale the SteeringForce to give good behavior, but that's something that would need to be experimented with.
  4. Jun 9, 2008 #3
    Thanks for the great answer, I understand now.

    Also- what exactly is the point of scaling the desired velocity vector to max speed? From what I can see- it will affect the direction as well as the magnitude of the output vector.
    Last edited: Jun 9, 2008
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook