Skip to content

Commit 8249ca5

Browse files
committed
Add "Upgrading from Godot 4.3 to Godot 4.4" page
1 parent e8c441e commit 8249ca5

File tree

2 files changed

+184
-0
lines changed

2 files changed

+184
-0
lines changed

tutorials/migrating/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,4 @@ path.
2323
upgrading_to_godot_4.1
2424
upgrading_to_godot_4.2
2525
upgrading_to_godot_4.3
26+
upgrading_to_godot_4.4
Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
.. _doc_upgrading_to_godot_4.4:
2+
3+
Upgrading from Godot 4.3 to Godot 4.4
4+
=====================================
5+
6+
For most games and apps made with 4.3 it should be relatively safe to migrate to 4.4.
7+
This page intends to cover everything you need to pay attention to when migrating
8+
your project.
9+
10+
Breaking changes
11+
----------------
12+
13+
If you are migrating from 4.3 to 4.4, the breaking changes listed here might
14+
affect you. Changes are grouped by areas/systems.
15+
16+
This article indicates whether each breaking change affects GDScript and whether
17+
the C# breaking change is *binary compatible* or *source compatible*:
18+
19+
- **Binary compatible** - Existing binaries will load and execute successfully without
20+
recompilation, and the run-time behavior won't change.
21+
- **Source compatible** - Source code will compile successfully without changes when
22+
upgrading Godot.
23+
24+
Core
25+
~~~~
26+
27+
======================================================================================================================== =================== ==================== ==================== ============
28+
Change GDScript Compatible C# Binary Compatible C# Source Compatible Introduced
29+
======================================================================================================================== =================== ==================== ==================== ============
30+
**FileAccess**
31+
Method ``open_encrypted`` adds a new ``iv`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-98918`_
32+
Method ``store_8`` changes return type from ``void`` to ``bool`` |✔️| || |✔️| `GH-78289`_
33+
Method ``store_16`` changes return type from ``void`` to ``bool`` |✔️| || |✔️| `GH-78289`_
34+
Method ``store_32`` changes return type from ``void`` to ``bool`` |✔️| || |✔️| `GH-78289`_
35+
Method ``store_64`` changes return type from ``void`` to ``bool`` |✔️| || |✔️| `GH-78289`_
36+
Method ``store_buffer`` changes return type from ``void`` to ``bool`` |✔️| || |✔️| `GH-78289`_
37+
Method ``store_csv_line`` changes return type from ``void`` to ``bool`` |✔️| || |✔️| `GH-78289`_
38+
Method ``store_double`` changes return type from ``void`` to ``bool`` |✔️| || |✔️| `GH-78289`_
39+
Method ``store_float`` changes return type from ``void`` to ``bool`` |✔️| || |✔️| `GH-78289`_
40+
Method ``store_half`` changes return type from ``void`` to ``bool`` |✔️| || |✔️| `GH-78289`_
41+
Method ``store_line`` changes return type from ``void`` to ``bool`` |✔️| || |✔️| `GH-78289`_
42+
Method ``store_pascal_string`` changes return type from ``void`` to ``bool`` |✔️| || |✔️| `GH-78289`_
43+
Method ``store_real`` changes return type from ``void`` to ``bool`` |✔️| || |✔️| `GH-78289`_
44+
Method ``store_string`` changes return type from ``void`` to ``bool`` |✔️| || |✔️| `GH-78289`_
45+
Method ``store_var`` changes return type from ``void`` to ``bool`` |✔️| || |✔️| `GH-78289`_
46+
**OS**
47+
Method ``execute_with_pipe`` adds a new ``blocking`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-94434`_
48+
Method ``read_string_from_stdin`` adds a new ``buffer_size`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-91201`_
49+
**RegEx**
50+
Method ``compile`` adds a new ``show_error`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-95212`_
51+
Method ``create_from_string`` adds a new ``show_error`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-95212`_
52+
**Semaphore**
53+
Method ``post`` adds a new ``count`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-93605`_
54+
**TranslationServer**
55+
Method ``standardize_locale`` adds a new ``add_defaults`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-98972`_
56+
======================================================================================================================== =================== ==================== ==================== ============
57+
58+
GUI nodes
59+
~~~~~~~~~
60+
61+
======================================================================================================================== =================== ==================== ==================== ============
62+
Change GDScript Compatible C# Binary Compatible C# Source Compatible Introduced
63+
======================================================================================================================== =================== ==================== ==================== ============
64+
**RichTextLabel**
65+
Method ``push_meta`` adds a new ``tooltip`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-99481`_
66+
Method ``set_table_column_expand`` adds a new ``shrink`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-101482`_
67+
**GraphEdit**
68+
Method ``connect_node`` adds a new ``keep_alive`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-97449`_
69+
======================================================================================================================== =================== ==================== ==================== ============
70+
71+
Physics
72+
~~~~~~~
73+
74+
======================================================================================================================== =================== ==================== ==================== ============
75+
Change GDScript Compatible C# Binary Compatible C# Source Compatible Introduced
76+
======================================================================================================================== =================== ==================== ==================== ============
77+
**SoftBody3D**
78+
Method ``set_point_pinned`` adds a new ``insert_at`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-94684`_
79+
======================================================================================================================== =================== ==================== ==================== ============
80+
81+
Rendering
82+
~~~~~~~~~
83+
84+
======================================================================================================================== =================== ==================== ==================== ============
85+
Change GDScript Compatible C# Binary Compatible C# Source Compatible Introduced
86+
======================================================================================================================== =================== ==================== ==================== ============
87+
**CPUParticles2D**
88+
Method ``restart`` adds a new ``keep_seed`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-92089`_
89+
**CPUParticles3D**
90+
Method ``restart`` adds a new ``keep_seed`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-92089`_
91+
**GPUParticles2D**
92+
Method ``restart`` adds a new ``keep_seed`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-92089`_
93+
**GPUParticles3D**
94+
Method ``restart`` adds a new ``keep_seed`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-92089`_
95+
**RenderingDevice**
96+
Method ``draw_list_begin`` adds a new ``breadcrumb`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-90993`_
97+
Method ``draw_list_begin`` removes many parameters || |✔️ with compat| |✔️ with compat| `GH-98670`_
98+
Method ``index_buffer_create`` adds a new ``enable_device_address`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-100062`_
99+
Method ``uniform_buffer_create`` adds a new ``enable_device_address`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-100062`_
100+
Method ``vertex_buffer_create`` adds a new ``enable_device_address`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-100062`_
101+
**RenderingServer**
102+
Method ``multimesh_allocate_data`` adds a new ``use_indirect`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-99455`_
103+
**Shader**
104+
Method ``get_default_texture_parameter`` changes return type from ``Texture2D`` to ``Texture`` |✔️| || || `GH-95126`_
105+
Method ``set_default_texture_parameter`` changes ``texture`` parameter type from ``Texture2D`` to ``Texture`` |✔️| || |✔️| `GH-95126`_
106+
**VisualShaderNodeCubemap**
107+
Property ``cube_map`` changes type from ``Cubemap`` to ``TextureLayered`` |✔️| || || `GH-95126`_
108+
**VisualShaderNodeTexture2DArray**
109+
Property ``texture_array`` changes type from ``Texture2DArray`` to ``TextureLayered`` |✔️| || || `GH-95126`_
110+
======================================================================================================================== =================== ==================== ==================== ============
111+
112+
.. note::
113+
114+
In C#, the enum ``RenderingDevice.StorageBufferUsage`` breaks compatibility because of the way the bindings generator
115+
detects the enum prefix. New members where added in `GH-100062`_ to the enum that caused the enum members to be renamed.
116+
117+
Navigation
118+
~~~~~~~~~~
119+
120+
======================================================================================================================== =================== ==================== ==================== ============
121+
Change GDScript Compatible C# Binary Compatible C# Source Compatible Introduced
122+
======================================================================================================================== =================== ==================== ==================== ============
123+
**NavigationServer2D**
124+
Method ``query_path`` adds a new ``callback`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-100129`_
125+
**NavigationServer3D**
126+
Method ``query_path`` adds a new ``callback`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-100129`_
127+
======================================================================================================================== =================== ==================== ==================== ============
128+
129+
Editor plugins
130+
~~~~~~~~~~~~~~
131+
132+
======================================================================================================================== =================== ==================== ==================== ============
133+
Change GDScript Compatible C# Binary Compatible C# Source Compatible Introduced
134+
======================================================================================================================== =================== ==================== ==================== ============
135+
**EditorInterface**
136+
Method ``open_scene_from_path`` adds a new ``set_inherited`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-90057`_
137+
Method ``popup_node_selector`` adds a new ``current_value`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-94323`_
138+
Method ``popup_property_selector`` adds a new ``current_value`` optional parameter |✔️| |✔️ with compat| |✔️ with compat| `GH-94323`_
139+
**EditorSceneFormatImporter**
140+
Method ``_get_import_flags`` removed || || || `GH-101531`_
141+
======================================================================================================================== =================== ==================== ==================== ============
142+
143+
.. note::
144+
145+
The method ``_get_import_flags`` was never used by the engine, since it was open source. So it was removed
146+
despite the compat breakage as there's no way for users to rely on this affecting engine behavior.
147+
148+
Behavior changes
149+
----------------
150+
151+
Rendering
152+
~~~~~~~~~
153+
154+
.. note::
155+
156+
The ``VisualShaderNodeVec4Constant`` shader node had its type changed to ``Vector4``. Users need to recreate
157+
the values in their constants.
158+
159+
.. || replace:: :abbr:` (This API breaks compatibility.)`
160+
.. |✔️| replace:: :abbr:`✔️ (This API does not break compatibility.)`
161+
.. |✔️ with compat| replace:: :abbr:`✔️ (This API does not break compatibility. A compatibility method was added.)`
162+
163+
.. _GH-78289: https://github.com/godotengine/godot/pull/78289
164+
.. _GH-90057: https://github.com/godotengine/godot/pull/90057
165+
.. _GH-90993: https://github.com/godotengine/godot/pull/90993
166+
.. _GH-91201: https://github.com/godotengine/godot/pull/91201
167+
.. _GH-92089: https://github.com/godotengine/godot/pull/92089
168+
.. _GH-93605: https://github.com/godotengine/godot/pull/93605
169+
.. _GH-94323: https://github.com/godotengine/godot/pull/94323
170+
.. _GH-94434: https://github.com/godotengine/godot/pull/94434
171+
.. _GH-99455: https://github.com/godotengine/godot/pull/99455
172+
.. _GH-94684: https://github.com/godotengine/godot/pull/94684
173+
.. _GH-95212: https://github.com/godotengine/godot/pull/95212
174+
.. _GH-95126: https://github.com/godotengine/godot/pull/95126
175+
.. _GH-97449: https://github.com/godotengine/godot/pull/97449
176+
.. _GH-98670: https://github.com/godotengine/godot/pull/98670
177+
.. _GH-98918: https://github.com/godotengine/godot/pull/98918
178+
.. _GH-98972: https://github.com/godotengine/godot/pull/98972
179+
.. _GH-99481: https://github.com/godotengine/godot/pull/99481
180+
.. _GH-100062: https://github.com/godotengine/godot/pull/100062
181+
.. _GH-100129: https://github.com/godotengine/godot/pull/100129
182+
.. _GH-101482: https://github.com/godotengine/godot/pull/101482
183+
.. _GH-101531: https://github.com/godotengine/godot/pull/101531

0 commit comments

Comments
 (0)