Original Post
Is this a good basic design. Game Engine --> Game State Manager --> Graphics Engine -->3D Scene Manager --> Terrain Engine, Sky Engine, Etc Basically I want to decouple as much as possible into it's own distinct units for plugabillity and manageability. But I have trouble figuring out things like, should I write a big state manager that resides in the main game loop or would the state manager also handle initialization and shutdown (non-main game loop functionality). By handle I don't mean perform but handle when it occurrs. Likewise, is it a good idea to separate a terrain engine from a sky engine and character engine? Or should all models be treated the same by an all emcompassing graphics engine? Thanks for any input, Will