I was messing around it before, but with GDScript. That wasn't the best experience for someone who has some programming knowledge and not in pythonic language. Things being a "scene" was also unnecessarily confusing, had to get used to it.
Now I went with C# and it's better, knowing the language pretty well. There are some issues though that drive me crazy, e.g. not being able to easily create scene-based "entities" in code. Don't remember the specifics, but tried to use different scripts for the same scene and it just kept complaining. So had to Enum my way inside a single script. Being able to just `new` a script and engine wiring it to the scene that's already there due to the `partial` modifier would be waaaay easier.
Then, from the editor, manipulating properties of scene's children is also not a thing. I can only manage direct Export properties. Tried to "hack" it with IL manipulation. managed to add Export property to the assembly post-compile, but the editor couldn't see it. And "Editable Children" is an awful substitute to what should be a normal feature. Just having an Export component property that also has Export properties in it and that would show up as a section in the Inspector.
Other than that it's rather fine. Lightweight and still evolving, so things will hopefully get even better. For starters it's definitely better than Unity or Unreal. For 2D seems the best option. For 3D, it depends. Low fidelity style, sure. High... I think you'd be better just picking Unreal. Unless you are skilled in shaders, but then you probably know what works best for you already.