Skip to content

Commit 19f5643

Browse files
authored
Merge pull request #10404 from dsnopek/gdextension-version-compatibility
Improve "Version Compatibility" section in "What is GDExtension"
2 parents 3fe93df + 6582877 commit 19f5643

File tree

1 file changed

+21
-15
lines changed

1 file changed

+21
-15
lines changed

tutorials/scripting/gdextension/what_is_gdextension.rst

+21-15
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,8 @@ you should choose depends on your needs.
2424

2525
.. warning::
2626

27-
Our long-term goal is that GDExtensions targeting an earlier version of
28-
Godot will work in later minor versions, but not vice-versa. For example, a
29-
GDExtension targeting Godot 4.2 should work just fine in Godot 4.3, but one
30-
targeting Godot 4.3 won't work in Godot 4.2.
31-
32-
However, GDExtension is currently *experimental*, which means that we may
27+
GDExtension is currently *experimental*, which means that we may
3328
break compatibility in order to fix major bugs or include critical features.
34-
For example, GDExtensions created for Godot 4.0 aren't compatible with Godot
35-
4.1 (see :ref:`updating_your_gdextension_for_godot_4_1`).
3629

3730
Advantages of GDExtension
3831
^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -111,13 +104,26 @@ The bindings below are developed and maintained by the community:
111104
Version compatibility
112105
---------------------
113106

114-
GDExtension add-ons compiled for a given Godot version are only guaranteed to work
115-
with the same minor release series. For example, a GDExtension add-on compiled for
116-
Godot 4.0 will only work with Godot 4.0, 4.0.1, 4.0.2. In addition, GDExtension is
117-
not compatible with Godot 3.x.
107+
Usually, GDExtensions targeting an earlier version of Godot will work in later
108+
minor versions, but not vice-versa. For example, a GDExtension targeting Godot 4.2
109+
should work just fine in Godot 4.3, but one targeting Godot 4.3 won't work in Godot 4.2.
110+
111+
For this reason, when creating GDExtensions, you may want to target the lowest version of
112+
Godot that has the features you need, *not* the most recent version of Godot. This can
113+
save you from needing to create multiple builds for different versions of Godot.
118114

119-
GDExtension add-ons are also only compatible with engine builds that use the
115+
However, GDExtension is currently *experimental*, which means that we may
116+
break compatibility in order to fix major bugs or include critical features.
117+
For example, GDExtensions created for Godot 4.0 aren't compatible with Godot
118+
4.1 (see :ref:`updating_your_gdextension_for_godot_4_1`).
119+
120+
GDExtensions are also only compatible with engine builds that use the same
120121
level of floating-point precision the extension was compiled for. This means
121122
that if you use an engine build with double-precision floats, the extension must
122-
also be compiled for double-precision floats. See
123-
:ref:`doc_large_world_coordinates` for details.
123+
also be compiled for double-precision floats and use an ``extension_api.json``
124+
file generated by your custom engine build. See :ref:`doc_large_world_coordinates`
125+
for details.
126+
127+
Generally speaking, if you build a custom version of Godot, you should generate an
128+
``extension_api.json`` from it for your GDExtensions, because it may have some differences
129+
from official Godot builds.

0 commit comments

Comments
 (0)