Unreal is pretty heavy and it requires lots of work to make it worth using (for example, if you dont have high-poly models, you probably don't need such an engine, simply said).
This is why most indie games here are made in
Unity.
But I want to mention
Godot. It's basically Unity, except it's OpenSource and therefore totally free with all its features. It's lightweight (10 times lighter than Unity), it's modern, and very easy to use.
The downside of Godot is that while Unity (made in C++) uses C# for coding, Godot (also made in C++) uses it's own GDScript, with its own pros and cons (actually you can use C# in Godot too, but from what I've read it's not as performant). This means that if you choose Godot, as a beginner, you will be learning GDScript, which cannot be used anywhere else but in Godot (unlike C#), general programming logic aside of course. GDScript is very similar to Python, however it is not Python (many keywords are different).
(Note: because Godot is OpenSource, you can actually rewrite and recompile the engine/IDE itself in any way you please (=
absolute control), but you need to know C++ for that)
Sidenote on business vs games:If games are just a way for you to learn programming and you are thinking of doing business projects afterwards, you don't want to learn a language thats specific to an engine. Hell, you don't even want to learn the engine with an editor - for maximum understanding, you want to work with classic languages (C#, Java) in classic IDEs (Visual Studio, IntelliJ), using frameworks that take care of either rendering or physics or both (eg. LibGDX framework for OpenGL rendering with Box2D for physics) instead of "full-blown engines".
However if you just want to make (indie) games, I'm pretty sure the future is in the "engines with 2D/3D editors", be it Godot or Unity or something else. You still learn programming logic plus the editor makes level-design and other tedious things a piece of cake. .)