Recently, I found out about a 3D (and 2D) game creator called Unity.
When using Unity, you will actually be concentrating as much (if not more) on the 3D modeling and level creating as you would on the programming (known as scripting to Unity). When you first open it, it seems a lot like a 3D modeler, minus the modeling. You can import tons of different kinds of 3D files, even .blend (Blender) files! Nearly any device works with it too, without having to change much. So if you developed a game for PC, then you would just have to add touchscreen controls and change the screen size if you wanted it for tablets/smartphones. Normally, you would have to program the whole game over again in a different language that is supported on smartphones!
There are also a ton of different options for models and even animation. For example, you could just check a tick box and you would have collision prevention implemented for that model. And for animation, you could animate in Blender, then in Unity segment off certain parts of the animation that would run when you wanted it to in a script. It is really easy to make custom animations for a player like running and jumping, too! Many games use Unity now, especially on the auto-optimization that comes with it.