Godot 3 or Godot 4?

(learn about this date format)

In my last post, I talked about wanting to create a game that uses the Ring Fit Adventure accessories. In addition to creating a game, I also want to make it easier for others to make games that use those accessories. I guess that makes this a software project. For now I’ll call it Jason’s Ring-Con Project. Maybe I’ll come up with a better name for it later (probably not). More importantly, I need to figure out which version of the Godot Engine I’m going to use for it.

The best platforms are ones that are improved over time. There is one unfortunate cost of improvement, though: maintenance. Any changes to a platform risk breaking software written for that platform. Even if the platform has a backwards compatibility guarantee, there’s still a chance that unintentional breakages will happen.

According to Godot’s documentation,

Godot loosely follows Semantic Versioning with a major.minor.patch versioning system, albeit with an interpretation of each term adapted to the complexity of a game engine:

  • The major version is incremented when major compatibility breakages happen which imply significant porting work to move projects from one major version to another.

    For example, porting Godot projects from Godot 2.1 to Godot 3.0 required running the project through a conversion tool, and then performing a number of further adjustments manually for what the tool could not do automatically.

The Godot Docs by Juan Linietsky, Ariel Manzur and the Godot community is licensed under CC BY 3.0.

So, if I create something in Godot 3 now, then I’m going to have to do significant porting work in the future. If I create something in Godot 4 now, then it still looks like I’m going to have to do significant extra work. According to the release notes for the latest snapshot of Godot 4,

So here's Godot 4.0 alpha 2 with a great deal of fixes and new features!

Be aware that during the alpha stage the engine is still not feature-complete or stable. There will likely be breaking changes between this release and the first beta release. Only the beta will mark the so-called "feature freeze".

As such, we do not recommend porting existing projects to this and other upcoming alpha releases unless you are prepared to do it again to fix future incompatibilities. However, if you can port some existing projects and demos to the new version, that may provide a lot of useful information about critical issues still left to fix.

Dev snapshot: Godot 4.0 alpha 2 by Rémi Verschelde ()

So, would I rather put in extra work now or later? The answer is: now. At the moment, I’m willing to put significant time and effort into Jason’s Ring-Con Project. That won’t necessarily be true later. Plus, while I can’t know for sure, it also seems like starting with Godot 4 will result in less work overall. Finally, using Godot 4 will allow me to contribute to the future of Godot. Even if this project never comes to fruition, those contributions will still be valuable.

So, while it might be ill-advised, I’m going to use Godot 4.