Godot Crimes
This document contains a list of issues in Godot that I consider code crimes.
Active Crimes
These crimes have not been addressed and are still issues in the Godot codebase.
is_polygon_clockwise
returns the opposite result@tool
script says function does not exist when it doesinverse
is an inferior version ofaffine_inverse
- Godot cannot determine the type of autoloads
- Float values NaN and INF are displayed as 0 in debugger and inspector
get_contact_local_position
returns global position- Cubemaps are not oriented consistently between rendering pipelines
- Godot always runs scripts in deserialized resources
- Godot doesn’t export dependencies
reduce
in Godot returns first value in array when accumulator isnull
Solved Crimes
These crimes have been addressed and are no longer issues in the Godot codebase.
- Exported variables of inherited scenes are aliased, fixed for Godot 4.3
Pardoned Crimes
I no longer consider the following items as crimes.
- Lambdas do not capture local variables; Godot actually passes everything by value to the closure and it just so happens that the value of
Variant
variables is itself a reference. I think this design is less confusing than any alternative I can think of.