I've read many articles on this topic but all they tell me is that the game engine is the reusable part of a game. Is it supposed to be a reusable code or is it a reusable executable file that you link DLLs to? Or can it be either? Some articles I've read tells me that the executable i open to start a game is the engine and when i google for open source engines, i get all these "GUI libraries" as I like to call then, like allegro, ogre, etc.
I have a basic idea of what a game engine is supposed to do but I'm not too sure how to go about writing one and what kind of things to include in it.