Godot Steering AI Framework

Project banner, displaying arrows following a dotted path

This toolkit is a framework for the Godot engine. It takes a lot of inspiration from the excellent GDX-AI framework for the LibGDX java-based framework.

Every class in the toolkit is based on Godot’s Reference type. There is no need to have a complex scene tree; everything that has to do with the AI’s movement can be contained inside movement oriented classes.

As a short overview, a character is represented by a steering agent; it stores its position, orientation, maximum speeds and current velocity.

A steering behavior is associated with a steering agent and calculates a linear or an angular change in velocity based on its information. The coder then applies that acceleration in whatever ways is appropriate to the character to change its velocity, like RigidBody’s apply_impulse, or a KinematicBody’s move_and_slide.

More information and resources

  • Understanding Steering Behaviors: Breakdowns of various behaviors by Fernando Bevilacqua with graphics and in-depth explanations.
  • GDX-AI Wiki: Descriptions of how LibGDX’s AI submodule uses steering behaviors with a few graphics. Since this toolkit uses it for inspiration, there will be some similarities.
  • RedBlobGames - An excellent resources for complex pathfinding like A*, graph theory, and other algorithms that are game-development related. Steering behaviors are not covered, but for anyone looking to study and bulk up on their algorithms, this is a great place.