The comes a time in every project where you have to switch from a developmental Work In Progress branch to the main branch and that time just occurred for the Godot game engine. The WIP Vulkan (and C++14) port is now the official branch on the Godot Github.
Details from the Godot news page:
The Vulkan port is not ready yet, but we need to get it merged into the
masterbranch as a lot of further development planned for Godot 4.0 depends on it.
We plan to rework a lot of Godot’s internals (
core) to allow fixing long-standing design issues and improving performance (including GDScript performance improvements). Moreover, our long-awaited port to C++14 will also happen now that the
vulkanbranch is merged into
master, and many other codebase-wide changes were waiting for this: code style changes, Display/OS split, renaming of 3D nodes to unify our conventions, etc.
The scope of the planned changes means that it would be impossible to do these changes in the
masterbranch while keeping the
vulkanbranch separate, just as it would not be possible to do all those changes in the
vulkanbranch itself before merging into
master: any rebase/merge would become extremely difficult due to the sheer amount of lines of code that will change.
Up until now, we’ve been very cautious with regard to what changes we allow in the
vulkanbranch, as well as what new PRs we merge in
master, to ensure that the
vulkanbranch can always be rebased on top of
masterfor a later merge. I’ve been rebasing it periodically over the past 8 months, and even though we’ve been very conservative in the scope of the changes, in later months a full rebase could easily take me a full day of work.
So we need everything in the main branch to stop limiting ourselves.
Moving the development branch from 3.2 to 4.0 has some side effects, specifically outstanding Pull Requests. Unfortunately the simplest option seems to be the best in this case, to close those requests and hopefully “port” them to the new master branch.
While closing PRs may seem a bit abrupt, we ask all contributors to understand that this is done to help us cope with the sheer amount of proposals in parallel to having to refactor a lot of the engine’s codebase. This closing does not mean that we reject the PRs, nor that we do not seem them as worthy contributions. But by asking the authors to re-assess their own proposals and make them compatible with Godot 4.0, we will save a lot of precious development time and get ourselves some breathing air in the current overcrowded PRs.
Closed PRs will have the
salvageablelabel, which we use to denote PRs with code that could be salvaged to make a new, updated (and possibly improved) PR, either by the original author or by a new contributor. So we will not lose code in the process, since everything will still be accessible from the closed PRs and easily identifiable thanks to the
If you use a major release version downloaded from Godot’s download page or from Steam, this change doesn’t actually effect you. If you want to check out the new Vulkan master branch but don’t want to build the code yourself, you can get a nightly build here.
Learn more about this change and it’s ramifications in the video below.