My humble opinions on this topic:
- I like the event based visual programming much better than the node based GameMaker uses. So if you plan on developing with visual programming then I'd go for Construct 2/3, GDevelop or ClickTeam Fusion.
- If you want to learn a programming language then I think you'll be better off with a language that is used elsewhere as well. So learning GML might not be the best choice. I'd go for Unreal Engine 4 (C++) or Unity 3D (C#) for that.
This all depends on your current experience as a developer. If you are a beginner, then take alvarop advice and spend a few weeks developing a small project in each of the engines you are interested in to see which one fits your needs the most.