Unreal Engine 4 from Epic Games, Unity, and the Godot free gameengine. Plus, if there's a programming bug with the engine, that's mean you will have to wait until the next build is out. It is strongly suggested by the gaming industry that you learn how to use several game engines because some of them are more specialized in some areas in game development. For example, some game engines like GameMaker Studio 2, is great to build some 2D and isometric games, but if you wish to build a 3D game, you may want to learn more about Unreal Engine, and Unity. In the case of Unity, the engine allows you to build some superb 3D graphics like the Unreal Engine, but you can also choose the create a 2D project. By the way, both Destiny 2 and Fallout games were designed with Unity.
Generally speaking, a game engine can be great, but it also has several limitations. If you prefer to avoid those limitations, I recommend you use a programming language such as c#, or Java and even better, C++ witch can produce some native machine code which can drastically improve the performance of gameplay by the way. So both programming and game engine are ok for any game development. Both of them offer a wide range of advantages and the speed performance can be optimized as well for gameplay. I would say it's mainly a matter of taste and abilities.