A game engine is an unseen code which controls pretty much everything within a game. (Such as physics and they way objects ‘behave’)Pre-developed games engines come in varying degrees some require large amounts of programming were as others require very little.
Genesis3D is a ‘ready-to-go’ engine which involves hardly any programming (if any at all) which is fine but restricting, less diversity to what can be created and the style of the game.
Creating a games engine is expensive and takes time but after the bugs have been ironed out the engine will do exactly what is required and if it’s partly good can then be purchased/re-used for a different game. When using an existing games engine generally some alteration would be needed to be made and hence permission from the owner has to be granted before any modifications can be done.
The unreal engine is very popular as it allows for professional results but isn’t impossible to use, also the coding is editable so more diverse than other engines.
So either way some sacrifices have to be made and essentially it depends on funds for the project and time as well as skill of the team.