After the decision to continue feature development for the `3.x` branch
alongside the `master` branch for Godot 4.0, we released 3.3-stable in
April 2021.
6 months and 2000 commits later, Godot 3.4 is another feature-packed milestone
for Godot 3, with a ton of improvements and fixes to make it a great option
for use in production while we wait for Godot 4.0!
A big thankyou to all contributors who work tirelessly on our two parallel
development branches and made this stable 3.4 release possible.
NodePath properties are designed to be relative to the given node, so
validity checks are failing in the editor for Polygon2D nodes, which are
relative to the Skeleton2D node rather than the Polygon2D node.
Fixed by saving bone paths as String properties instead of NodePath.
Shouldn't cause a difference for performance since NodePath properties
are technically saved as String anyway.
(cherry picked from commit 8d9619ad46)
New contributors added to AUTHORS:
@briansemrau, @Duroxxigar, @williamd67
Thanks to all contributors and donors for making Godot possible!
(cherry picked from commit 300286ea08)
Godot uses Variant parameters for calls to script methods.
Up until now we were boxing such parameters when marshalling
them for invokation, even if they were value types.
Now Godot allocates the marshalled parameters on the stack,
reducing the GC allocations resulted from boxing.
Keep track of MeshInstance and GeometryInstance override materials in the GLTFMesh object.
Ensure all arrays are non-empty to conform with "minItems":1 in glTF spec.
Fleshed out the "Optimize Mesh" options found in the mesh import UI
Gave a checkbox to every vertex attribute that can be compressed
Surfaced option to enable/disable Octahedral compression for
normal/tangent vectors
Also surfaces the vertex position compression option which previously
inaccessible because the defaults did not compress vertex positions
Supports all current importers (obj, fbx, collada, gltf)
Ensures that the `get_property_list` and `get_script_property_list`
methods push the script properties to the end of the given list, this
prevents the script property from appearing after the script variables.
Sets `AlignOperands` to `DontAlign`.
`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.