what about 2D programs like gamemaker or java?
Gamemaker is a great place to start since it keeps everything simple and has inbuilt tutorials, and I'm sure with enough work you could make some pretty awesome games with it.
With that said, bot Unity and Unreal handle 2D games as well as 3D.
Java has a lot of memory-management issues. I'm probably wrong, but I'm under the impression you can't directly interface with memory with Java. It's good for simple games, but after a while it collects a lot of junk.