Switching from Unity to Unreal or vice versa is a wash imo as both those engines have proven themselves. Godot hasn't and still has a much longer way to go than the fanboys will have you believe. Maybe someday for some types of projects but I just don't see it ever having all the conveniences of Unity or Unreal.
Lots of random Physics launches where out of nowhere my character is launching up into the air.
Random screen stuttering on a scene with no geometry and just basic movement code in the physics update on a gtx 1080 system.
Those are the bigger annoying ones but the more you hang out in the community you come to see there are tons of bugs in just about every system. You have to fix them yourself, work around them, or hope someone smarter than you fixes them. Most big bugs are stuck in the "hope someone fixes them" stage.
With all that negativity aside, Godot does a lot of things well and seems to be picking up steam. I really like the scene tree system (although I’m much more interested in Unity’s brand new ECS and job system than Godots OOP approach, personally, but I’m a functional programmer at heart) and I learned a lot I out physically based rendering thanks to Godot <3
But the developer experience is very sub-par compared to Unity (which has a very smooth onboarding experience) or Unreal. I hope the devs dedicate some time to UX, because Godot would benefit greatly from it and now while it’s gaining traction is a good time to address those issues. Godot has a lot of potential and is a fantastic project.
It's a bit like someone being amazed that AI research solved chess before they solved object recognition or even walking.
Casting shadows with minimal artifacting in most non-raytraced pipelines is actually very, very hard. Different engines have different solutions to how they hide these issues, but they all have their edge cases (though some are better than others at this).
Likewise, the light leaking you describe sounds like an artifact of Unity's global illumination techniques. Again, this is a very hard problem. Unreal just happens to solve it in a way that works well for your use case.
If Unreal happens to be the right solution for you, then that's great, but it's important to realize that these issues aren't "no brainers".
That one is particularly funny now, as it was made before deep convolutional neural networks beat the ImageNet competition.
I guess my categorising them as no brainers is just that the use case seems so obvious that it not working is surprising. It was just a door casting a shadow onto a floor plane, I may have done something wrong but, that it was even slightly problematic was a red flag to me.
The asset workflow from Blender to substance painter to Unreal also had no hidden demons. It all just worked as expected.
Just to be clear as well, my concerns weren't about the post processing stack which I got working to good effect in Unity. But the lightmapping and material workflow is just a bit clunky in unity. To say nothing of the confusion that having more than one lighting engine causes in docs and online support.
There is just a lot of different concepts flying around so it's easy to get flustered at first. UE4 also has a lot of boilerplate around game modes and default world functionality. It's not hard to learn it's just arbitrary learning so not all that fun.
After the first week I found it surprising how quickly everything started coming together, it was more up front but once I was sped up I was good to go. Unity was a bit more of a constant grind of learning little bits here and there.
What I have found difficult and continue to find difficult is support for UE4. Someone has almost always asked the same question as you, it's just that no one has answered. I found there was always some level of discussion for Unity if not a solution. But for UE4 it just feels a bit baron, at least for the results Google offers me.
When reading about university projects on Making Games (http://www.makinggames.biz/), a German publication about game development, the vast majority of them were done in Unity.
I noticed the same trend in open source ecommerce software. More complicated issues are solved by companies internally but the myriad of smaller issues are still solved in public forums. My bet is that Unreal is a bit easier to figure out the smaller issues yourself, and more complex issues are solved internally at bigger companies, leading to it being a bit quiet for support online.