2D vector based steering behaviors. Based on Craig Reynolds' Steering Behaviors For Autonomous Characters