I am just starting out trying to learn to develop games. At first I thought c++ and Opengl were the tools a beginner would start out to make a game, but quickly found out the Opengl was just a API for graphics. Then I thought c++ and SFML were what I needed to learn to make a game, but found out the SFML was a media framework that could be used to make games but wasn't a game engine. I don't want to use a software that does all the work for me, I want to code my own game, the way a game programmer would. I don't understand the difference between a IDE, framework, API, and a engine; What separates them from each other? Do some game programmers use the SFML framework, while other programmers use a game engine?
 I really need someone to just lay it out there. Where do I start!