A game engine is basically a C++ (or C, but OOP programming is generally used) wrapper to your graphics API. So you're going to first need to learn the API you're planning to base your game engine on. Examples include OpenGL, DirectX, SDL, etc.
Once you've learned that, creating the actual game engine becomes a bit easier. For one thing, many game programming books you buy actually include tips and tricks on creation. And since you already know the API, all that's really left is incorperating these features into functions. Here are some links and books to help you:
But digging in directX or OpenGL is maybe far from "game programming", I'm pretty sure there are some high level libraries that will simplify your task and permit you to focus on the game mechanics and assets :-)
A quick google gave me http://irrlicht.sourceforge.net/ and http://www.ogre3d.org/ ; and i'm pretty sure those are still a bit low-level.
Another path is to modify an existing game (for example: half life is moddable)