Real-life "fighter jet" like movement behavior in a 2D side-view game

I'm looking for a way to implement a fighter-jet like movement behavior for my non-player entities in my 2D side-view shoot-em-up.

I.e. enemy entities (say jets or planes) can't suddenly change their facing or velocity vector, but instead should need to slow down and / or fly a curve in a wider angle, possibly depending on a properties like "agility" or "maneuverability".

Gravity is not relevant for Enemy entities.

The goal would be to have an enemy Entity that can ultimately "intercept" the players path to fire a projectile. However, just being able to move in a smooth way would already be a great help.

To be specific, assume the player is at position (200, 0), with its movement vector being normalized (-1, 0) (i.e. moving to the left). The enemy would be at position (400, 100), moving normalized at (1, 0) (to the right).

I'm at a complete loss on how I could implement such a steering behavior.

If it matters, I'm using Godot, so I have the built-in _process with a delta time variable.

• what exactly do you want the behaviour to be? Oct 11, 2022 at 11:43
• You may be interested in this previous Q&A about maneuvering pirate ships to intercept the player. I show an example of how you can plot such an intercept course as cubic Bézier curve with a limited maximum acceleration. Oct 11, 2022 at 12:32
• @user253751 In the example above, i would want the jet to turn around and fly a curve either up or down, essentially then homing in on the player. The wideness of the curve would depend on the \$agility of the player entity or something akin.Does that make sense ? Oct 11, 2022 at 13:40
• Perhaps this one helps you: How do I calculate paths for objects with limited acceleration? Oct 11, 2022 at 21:21
• @user431806 one idea is that the fighter jet calculates whether a left or right turn would let it intercept the player's line of movement sooner, then it turns in that direction at its maximum turning rate Oct 12, 2022 at 13:52