The games I make are 2D games because they are simpler to make. I personally use pygame because of its simplicity.
I have heard unity is one of the most popular game engines. It can make 3d and 2d games and known for being very good. The unreal engine is also good. I have heard things about cryEngine too.