I agree with iddqd. Here's a website that can teach you openGL, http://nehe.gamedev.net/
It'll help you build from the bottom-up.
To add a little more to the conversation as well...sometimes it's good to have a game engine that's been produced by another guy...but in order for you to know the functionality of that engine, you would have to read someone else's codes and know what it means. It's better to start from the very basic and work things up. That way you can build your own engine and still know and understand the 'insides' of it. OOP is a very difficult concept to grasp. Just take it step by step...what makes the engine work? you'd need mathmatical classes that produce point a to point b...so that objects looks and simulates real life...collision detection classes, so that you can have objects in the world seem real where an object can't pass through walls or floors...physics where a sphere can be simulated to a basketball and have that bounce effect...there's more to an engine...sometimes you need a team to atually get it up and running...ayways, good luck on it