Although youYou really shouldn't post a question like this as it is clearly stated in the FAQ that you shouldn't...
Knowing some C++ is a great start and you should really focus on getting better at that. Learning some of the STL is a must if you plan on game programming with C++ IMO (e.g. vectors for automatic management of multiple sets of data).
It depends what you want to do as to where you should go from there
For engine development and building a game atop that:
Become fluent at your language of choice. C++ is really good for speed and usability but will take longer to become fluent in than something like C#.
Learn a windowing API. Could be native, like X11 or GDI; or an abstraction, like SDL or SFML.
Learn a graphics API. OpenGL is the best choice in most cases (for it's cross-platform and open nature).
Learn the shading language appropriate to your API. GLSL for OpenGL, HLSL for Direct3D.
Learn an audio API. OpenAL and EFX is my recommendation, but you could use something like FMOD if you don't mind paying a licence when your game becomes commercial. One isn't better than the other; it is opinion to say so as anything built into FMOD can be put together with AL. If you learn OpenGL then OpenAL will be a lot easier as the API's are quite similar.
Possibly learn or create a scripting language for your engine/game. Learning one would be easier in the long run but creating one isn't the most difficult of things and would reduce dependencies while giving you full control over features.
Put all your skills to use and create a game!
You will need to learn a few other things like model, audio and texture file parsing but libraries can be used for things like that to make your life a whole lot easier.
AND atop all of that, you will need to be able to get or create models and audio for your game.
Try and keep it cross-platform; more money that way >:D haha and it makes everyone happy when they can play your game on their OS of choice.
##For game design and creating a game with a pre-existing engine:##
Learn the scripting language the engine gives you. e.g. Unity uses a JavaScript based language called UnityScript.
Learn how to create models, buy models online or find free ones(free as in can use it commercially). Blender is a great piece of software for model creation and is quite easy once you know how to use it. Make sure you convert or create your models in a format the engine can load!
Record some sounds, buy some online or find free ones. Make sure you convert or record all your files in a format the engine can load!
Put it all together!
This approach is less satisfying in the end but you will get your game out a LOT quicker than had you written your own.
You could use a pre-existing engine then move on to writing your own. That would help you familiarize yourself with game design before moving on to engine design.
I have been writing my own engine for a couple of months. So far I have got my own model format, basic scripting language, parser for both, OpenGL rendering, OpenAL audio and SDL for windowing. I am only 16 so it is definitely not too early to start.
Here's a picture of my engine after 2 months with about 6 years of C/C++ experience under my belt: