Game Engine Design

Does anybody know of any tutorials/articles which give guidelines to efficient game engine design? i.e. what bits to make into classes(the window code, camera, message handler etc.) and functions etc.?

You will need some type of class to contain the map. You will need some type of class to contain objects on the map. You will need a class to run animations. You will need a class to handle players and player interactions. You will probably need a class for weapons.

That should get you started on knowing what kind of classes you will need...