I was thinking, why learn game programming when I can just jump into an engine like Unreal,Unity or game maker and create games really fast?
What advantage do I get from learning c++ and then using SDL to create a game, over using something like Unreal.
Don't be fooled into thinking that. Most of the games created using those engines, were made by people with programming experience.
Also... using a pre-existing engine, could easily take just as long as building an engine from scratch. Reason? You spend a good chunk of your time learning the engine, and modifying the living mess out of it so it works for your game.
Unreal is more forgiving and flexible. So you will rarely need to touch it's C++. But it's learning curve is intense.
Unity is not as flexible as it claims. In fact, you will be spending MOST of your time trying to program an interphase on top of Unity's, and working with unreadable (usually non-sourced, or just bad design overall if sourced) code from the market place. It took "Wasteland 2" 2.5 Years to create (The game does not look that complicated art wise. But it had a nasty slew of bugs in it's beta days). and THOUSANDS of lines of code. Interstellar Marines is taking longer than it takes to make an assassin creed game. In fact, Interstellar Marines is still in early access.
Building your own engine means it does what you want it to. And when you get a frame work, you will learn that there is less coding involved from that point on. Think about why it's so easy to Mod something like skyrim, or fallout. It's engine was designed specifically for those types of games. In fact, there's very little difference between the game's structure. And the most they actually have to do is script. Less fighting involved.