Let's start with the seek algorithm. The seek algorithm's goal is to steer the AI agent towards a specific position in the game space. This behavior applies force so that the current heading and the desired heading will align towards the target destination point. The following diagram describes this process:
The Desired Heading is really a vector in the direction from the character to the target. The length of the Desired Heading could be set as a value, such as the character's current speed. The steering vector or Seek Path is the difference between this desired heading and the character's current heading. The equation for this can be simplified to something like the following:
desiredHeading = normalize (position - target) * characterSpeed steeringPath = desiredHeading - velocity
An interesting side effect of the seek algorithm is that if an AI agent continues to seek, it will eventually pass through the target, and then flip its direction to approach the target again. This produces a motion path that looks a bit like a moth buzzing around a light bulb. To use OpenSteer to calculate the steering force, you call the steerForSeek function, passing a 3-point vector to describe the target's position:
Vec3 steerForSeek (const Vec3& target);