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 thevulkan
branch is merged intomaster
, 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 thevulkan
branch separate, just as it would not be possible to do all those changes in thevulkan
branch itself before merging intomaster
: 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 inmaster
, to ensure that thevulkan
branch can always be rebased on top ofmaster
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 thesalvageable
label.
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.