Window Shopping Godot Engine
I think now is a good time to take a quick look at Godot Engine, and I thought I'd start by looking at how Godot measures up against Unity counterparts that have caught my attention in the past.
Platform Support
The most important value proposition of a game engine is cross-platform capability. Godot has that pretty well covered. Godot editor can run on all the desktop platforms I care about: Windows, Linux, and MacOS. There's even a native Apple Silicon build, something Unity only started offering a few months ago.
Godot engine can export to all the target platforms I care about: All the editor platforms I listed above plus iOS, Android, and web. Android and web are actually supported editor platforms as well, but I do not expect to use them. I do not expect support for IE11 (Windows Phone browser) but neither does Unity so that is at parity.
Unlike the commercial offerings, Godot has no official solution for console games because console SDKs are all under NDA protection at odds with an open-source model. It's possible, but not supported, but I don't care about that myself anyway.
VR Support
Godot supports OpenXR, which is the open-source entry point to hardware like Valve SteamVR and Oculus headsets. Godot also has support for Apple's ARKit but I didn't see any mention of Google's ARCore. Fundamentally, XR support in Godot is a function of whatever support they receive for it. Whether in the form of volunteer contributors, donated test hardware, or just straight up cash.
Entity Component System/Data Oriented Design
Based on customer feedback, Unity offers their DOTS "Data Oriented Technology Stack" built on an entity component system. This opens things up for those who want to adopt data-oriented design for their software architecture. (A counterpart of object-oriented programming.)
Godot explains why they're not terribly eager to follow in these footsteps, because data-oriented design requires a different mindset not terribly intuitive for the human mind. Partially because we have to consider nuts and bolts of CPU cache behavior. We usually have the luxury of ignoring those details as an abstraction! All that said, Godot is not forbidding data-oriented development, the document even shares a few links to resources to help. But it's not on the main path and unlikely to be.
Reinforcement Learning
I briefly played with the reinforcement learning subset of modern deep machine learning, using Unity as the learning environment. ("Gym".) I thought the general idea was great, but the field is still quite young. Right now, an absurd amount of computational power is required to learn what a human brain would perceive as simple behavior. I've also learned that Unity ML-Agents was not terribly performant, bottlenecked by communication between Unity engine and machine learning frameworks.
A cursory search found several GitHub repositories of people working to bolt Godot and RL frameworks together, whether they share the same performance issues I do not know.
Educational Resources
Learning guides are where Unity has a huge head start, with their longtime investment into Unity Learn building up a huge library of examples and tutorials for all sorts of different domains for a wide range of audiences.
Godot would not be able to match or exceed that in the short term. But supposedly the current popularity of Unity exodus has led to a spike in number of Godot tutorials being published. A rise in quantity is no guarantee of quality, but I'm optimistic that there will be sufficient resources for Godot beginners to start with whenever I choose to join those ranks.
With this quick survey, I saw no deal-breakers against using Godot. The next time I have a project idea that would benefit from being built on top of a game engine, I'll likely use that as the focus for learning Godot. In the meantime Godot will sit on the "something to learn once I have an appropriate project" list alongside Marko.