-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a Godot 3 to Godot 4 upgrade guide #6393
Conversation
dadf1f3
to
cb415a5
Compare
A lot of properties, methods, signals etc. etc. are missing and I'm not sure it's because they are handled by the converter already or is an intentional omission to keep it brief. |
In the interest of brevity, I've only listed properties/methods that are not automatically converted. I've left a link to the converter source code, which lists all properties/methods that were renamed. The converter source code also includes commented out code for properties/methods that are not automatically renamed, with a comment explaining why. |
I was considering reordering that whole list 'cause it very much is... such a mess to read, but in the meantime, let's see... |
|
@Mickeon Thanks! I've pushed a separate commit mentioning your changes so it can be reviewed separately. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I accidentally hit submit review with the first thing I was looking at, sorry. Just a few minor things that should be changed but overall the page the page looks good. As someone not familiar with a lot of the changes made this was easy to understand.
Some miscellaneous compatibility-breaking PRs that I could actually understand the meaning of, that I found while browsing.
|
580a784
to
6a7e918
Compare
Looks good to me, I'll let it stay open another day in case someone notices something else and will merge tomorrow. Thanks! ❤️ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Didn't review everything, but here's some early comments.
The list below refers to the nodes' new names in Godot 4.0. In the transition | ||
between Godot 3.x and 4.0, dozens of nodes were renamed. 3D nodes had a ``3D`` | ||
suffix added to them for consistency with their 2D counterparts. This conversion | ||
is automatic. | ||
|
||
For ease of searching, this table lists all nodes and resources that were | ||
renamed in a way that does not involve only adding a ``3D`` suffix to the old name: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The list below refers to the nodes' new names in Godot 4.0. In the transition | |
between Godot 3.x and 4.0, dozens of nodes were renamed. 3D nodes had a ``3D`` | |
suffix added to them for consistency with their 2D counterparts. This conversion | |
is automatic. | |
For ease of searching, this table lists all nodes and resources that were | |
renamed in a way that does not involve only adding a ``3D`` suffix to the old name: | |
The list below refers to nodes which were simply renamed for consistency or | |
clarity in Godot 4.0. The project upgrade tool renames them automatically in | |
your scripts. | |
One noteworthy set of renames is 3D nodes, which all got a ``3D`` suffix added for | |
consistency with their 2D counterparts. For example, ``Area`` is now ``Area3D``. | |
For ease of searching, this table lists all nodes and resources that were renamed | |
and are automatically converted, excluding the ones which only involved adding | |
a ``3D`` suffix to the old name: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tried to make the language clearer that this is not all renamed nodes. IMO it's still a bit confusing though to have an "exhaustive" list that actually is only a subset.
There would need to be an intro paragraph to explain how the document is structured further (trivial renames handled by the converter, API changes which require manual handling, etc.).
But maybe there should be a table which actually lists everything, and has a third column that clarifies where the rename is handled by the conversion tool or not (and if not, why - different API, risk of false positives, etc.).
So users could always find an old or new name with Ctrl+F.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The table would be very long and could get outdated quickly – I guess we could find a way to generate it automatically and put it on a separate page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But maybe there should be a table which actually lists everything, and has a third column that clarifies where the rename is handled by the conversion tool or not (and if not, why - different API, risk of false positives, etc.).
So users could always find an old or new name with Ctrl+F.
Absolutely. 100%. It's part of the reason as to why I expressed this:
I was considering reordering that whole list 'cause it very much is... such a mess to read,
I updated the list to take the PRs you listed into account (also pushed as a separate commit for easier reviewing). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great as a start 👍
Thanks! |
Good start. A comprehensive list of renames is great, but that's appendix information. The value of a guide like this is to discuss fundamentals, API design shifts, philosophical adjustments, gotchas, and intentional breaks where there is no supported replacement or where reimplementation is required (eg tweens, dropping rotation_degrees, signals, setters/getters), such as:
|
Shaders are supposed to be converted, |
I've likely missed some things, so please review 🙂
See #5121. This closes #4960.