As this topic has been tackled by a bunch of people on YouTube and various forums, I thought it would be interesting to ask it here—where so many people are active and have landed on Godot for different reasons (such as no fees, lower hardware requirements, and easier scene organization).
I should mention one of the reasons I stepped away from Godot for a bit. While I feel comfortable using it, I find it lacks the built-in tools needed to make a nicer environment by default.
What do I mean by “environment”?
In my view, it’s the terrain, lighting, fog, and horizon. All three major engines (Godot, Unreal, and Unity) have these features. However, Godot and Unity keep them lightweight by default. The latest versions of Unreal have added a lot more weight to their environment tools thanks to advanced light sources, reflections, and light bouncing. While that’s cool, it often ends up making the scene incredibly bright—especially if you use sRGB vertex colors instead of Linear for FBX files. As for GLTF, forget it; it’s way too complicated.
One thing I would highlight is that Godot misses a basic, built-in First/Third-Person template to let users test these environmental aspects right away. I know demo projects and the Asset Library exist, but having a built-in “Gym” style template would be great for getting hands-on experience without having to create everything from scratch.
Collision
In my opinion, Unreal’s default system is amazing because it lets you quickly scatter foliage and easily choose collision presets (Block All, Pawn, Dynamic, etc.). In Unity and Godot, this feels more like building a component from scratch and saving it as a prefab or inherited scene. It’s nothing special and requires a fair amount of work to get right—even when using plugins like Terrain3D.
Animations
For basic use, the workflow is fairly similar across all three engines, though Unreal has slightly better retargeting tools.
Code Complexity
GDScript: Very intuitive with a great built-in documentation reference.
Unreal (Blueprints): Saves a lot of repetition for basic things, but can become incredibly time-consuming for advanced systems.
Unity (C#): It has a bit of a learning curve when it comes to getting used to all the different classes.
Overall, Godot has made the biggest push and gained a massive number of new users over the last year.
What do you think about the current state of these three engines?
Do you exclusively use one, or do you still jump between them for personal or professional development?