GDScript es el lenguaje de scripting de alto nivel diseñado específicamente para la lógica de juegos en el motor Godot. A diferencia de otros lenguajes de programación, GDScript ofrece características nativas optimizadas para el desarrollo de videojuegos, como tipos Vector2 y Vector3, una librería estándar con funciones útiles para la lógica de juego (lerp, smoothstep) y un sistema de señales de primer nivel. Su integración estrecha con el motor permite la creación de nodos con paneles de editor y simplifica la carga de recursos mediante la función preload().
Un aspecto distintivo de GDScript es la ausencia de un recolector de basura (GC) automático. En su lugar, utiliza una combinación de gestión de memoria manual y conteo de referencias. La gestión manual es predominante para nodos del árbol de escena, que se liberan automáticamente al salir de la escena, mientras que el conteo de referencias gestiona objetos independientes. Esta aproximación evita el estancamiento de rendimiento asociado a los GC, aunque requiere una comprensión más profunda de la memoria por parte del desarrollador.
Sin embargo, el sistema de tipado estático de GDScript presenta limitaciones significativas. Aunque permite hints de tipo para verificación en tiempo de compilación, el sistema es incompleto y poco sofisticado. No soporta tipos uniones ni tipos discriminados, lo que limita su uso en código estáticamente tipado. Además, la gestión de tipos de funciones y estructuras de datos complejas es limitada, ya que el lenguaje trata a las funciones como objetos genéricos. Por ello, se recomienda evitar las colecciones tipadas en la mayoría de los contextos, ya que la naturaleza dinámica del lenguaje y las limitaciones del sistema de tipos hacen que el uso de tipado estático sea ineficaz en la mayoría de los casos.
