Godot-proposals: Add a project upgrade tool for Godot 4.0

Created on 17 Jan 2020  路  5Comments  路  Source: godotengine/godot-proposals

Describe the project you are working on:
I mostly make games on the side for fun using Godot 3.x but I follow its development quite closely.

Describe the problem or limitation you are having in your project:
When Godot 4.0 is released I would like to easily be able to switch to the new version with my current 3.x projects.

But being a major release, some parts of the API will change, as outlined in this issue. This can make the transition phase a bit tedious if it has to be done manually.

Describe how this feature / enhancement will help you overcome this problem or limitation:
Since the mapping between the old names and the new ones is known the project imported can probably be modified to upgrade 3.x projects to be 4.0 compatible automatically. If some parts of the project cannot be upgraded automatically (e.g. removed feature) they should be clearly listed along with some guidelines on how to deal with these issues.

Show a mock up screenshots/video or a flow diagram explaining how your proposal will work:
It's a bit early for this, but I can make one once I know if it's theoretically possible to do it and what would be the best solution for it.

Describe implementation detail for your proposal (in code), if possible:
Again, too early

If this enhancement will not be used often, can it be worked around with a few lines of script?:
It probably can't.

Is there a reason why this should be core and not an add-on in the asset library?:
So that current users can migrate to 4.0 as smoothly as possible. If it's separated from the editor, most people probably won't know about it and struggle to upgrade their projects.

editor

All 5 comments

I love this idea but I think it should be a separate tool, not integrated to the editor. The main reason being that once 4.0 is a few months old, this feature would instantly be deprecated.

We could still make the tool easy to find on the website, maybe a subsection of the "Download" page

Well, I would say that it mainly depends on the impact of the feature on the editor. Meaning that if it's small enough and doesn't bother anyone we might just leave it in the editor/project manager. And that's what most software do, including Unity (don't know much about other game engines).

That way, even if people start with 4.0 but want to import some 3.x demo project found online, it can be done seamlessly.

But I'm not in charge of the engine development so it will be what is decided to be.

Also, I'm willing to work on this when the 4.0 branch become a thing.

I just realized that something similar was already (briefly) discussed by @reduz (https://github.com/godotengine/godot/issues/30736, https://github.com/godotengine/godot/issues/30736#issuecomment-513615955).

Considering this, do we need to keep this proposal open ?

I think it can be closed once the "internal compatibility system" is added, no?

Considering this, do we need to keep this proposal open ?

A formal proposal is always good to keep, I think.

As for this system, I thought it could be included in the breaking versions, but removed in the next version. So e.g. to upgrade from 3.2 to 4.0.1, you'd first need to import your project in 4.0. It requires some manual work, but is still less tedious than doing it yourself and we avoid uneccessary bloat.

btw, bringing up Unity here is not very good example. Upgrading from x.0.1 to x.0.1a requires 2GB download and 15 minutes of importing. In Godot you can juggle between versions pretty seamlessly and the lightweightness is a good selling point we'd rather not loose.

Was this page helpful?
0 / 5 - 0 ratings