My question is what type of libraries and engines should I use when making a C++ game. Or at least what I should learn. I've heard people mention stuff as DarkGDK, Opengl and DirectX.
I'm thinking of a 2d game with skyviewcamera and simple physics.
Are you proficient in C++? If you are still just learning C++ I would recommend you first get a very good grounding in the basics of C++ (a few months of studying) before you move onto any graphics libraries and games.
As for your choices, since you want to make a 2D game and I assume you are new to graphics libraries since you are asking for a good one, I would recommend you start with SFML 2.0. It is one of the most simple graphics libraries out there right now and is very beginners friendly.
It has everything you need to create a nice 2D game in (Graphics, Audio, Networking, ect.), and is very well documented.
I would not recommend trying DirectX or OpenGL until you grasps the basic concepts of graphics. Mainly because they are much lower level graphics libraries then SFML and will be harder to learn.
SDL is a decent choice if you use the updated version, otherwise you are using outdated techniques that are of no use to you, and you will be complaining because you will have to relearn the new modern techniques.