Own engine? For beginner in gamedev is very long and hard way.Wrote my own, but for window-handling and gamepad support I use libSDL2.
For the physics, I use OpenDE physics engine.
The only downside of Unity3D was lack of proper GUI tools, but now in 4.6 its perfect, so Unity3D ftw