First of all, you probably mean a VERY
simple game engine, like maybe one that dictates coordinates on a cartesian plane of bounded raster images in memory in a window, and maybe input synchronization.
You can implement a super-simple engine like this, pretty much:
// This is using SDL and C++ as an example.
typedef SDL_Surface * LOAD;
GameEngine() // Put whatever here for the constructor params.
// Here, too, for whatever you want it to initialize.
class Player : public GameEngine
Draw_Image(short xpos, short ypos, short xheight, short yheight, const char *FILE_NAME)
// Render the image here, optimizations, etc.
short x, y;
short height, width;
This is basically a skeleton source code that can be brushed up to draw images by passing arguments to the function Draw_Image in the Player class, which inherits from the main GameEngine class. This way you can reuse, edit, and have an image blitted to the screen of any kind as long as its position and size fits in a 16-bit short(I could have elaborated more, but I think this gives the basic idea of an engine).
This way you can also "ask" the engine for the image's position, change the position, change the image, and I could have (but neglected) to add that you can invoke a separate copy constructor to allocate objects off the heap, deallocate them to free memory, and reuse them to create character class objects that handle data within a larger class that manages all of the logic through smaller sub-systems.