Hi i suggest you should first learn the language properly (inheritance , polymorphism , templates) . Learn the c++ coding styles and standards.(How all pro c++ coders are coding out there.Don't try to reinvent the wheel just use how it is done).
Learn to use standard containers (It is very important ! most of the time you code a game you will use them !) Most of the game engines have their own container types but as many thing in c++ these are designed almost identical.So if you learn the c standard library , you basically learn all the game engine containers too)
After this its very important to learn linear algebra (matrix , vector , quaternion math , common operations like dot product , normalization , cross product etc), Without this its nearly impossible to write a game in c++ you have to know how things work because you can't keep asking for help all the time like "how to rotate object in local coords" or "how to project a point onto a plane".you have to learn the basics so you can do it yourself (it's not easy but it can be done)
After this you can learn general algorithms used by games (it is not necessary to write your own but at least you should learn how things work : Octrees , quadtrees , GJK , Astar , basic intersection test in 2d and 3d line-OBB line-line , sphere-line , etc)
Learn Component based programming (once again if you learn it in c++ you pretty much learned it in all languages.) Most of modern engines are using this approach instead of old style classic polymorphism. Both are as much powerful but in game programming Component based design is more popular and easier.(UDK4 , Unity , are component based engines)
I know all this sounds scary but writing games in c++ is only worth it if you are serious about it , and you like to learn new stuff.
[href=forum.thegamecreators.com/?m=forum_view&t=191567&b=5]Spark Particle engine[/href]
[href=forum.thegamecreators.com/?m=forum_view&t=199163&b=5]Transform gizmo plugin[/href]