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
master branch 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
vulkan branch 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
master branch while keeping the
vulkan branch separate, just as it would not be possible to do all those changes in the
vulkan branch 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
vulkan branch, as well as what new PRs we merge in
master, to ensure that the
vulkan branch can always be rebased on top of
master for 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
salvageable label, 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.