What I am trying to figure out is what is the best way to integrate the editor(level, effects, model, etc...) in the most effective way?
Now the first thing I thought would be to create the game engine(*) extremely modular. For example I took the example of game states. You could have multiple game states that all have their own update() and draw() methods among others. Each game state class would inherit from a base GameState class. This allows for a more modular approach and a useful one at that.
Now would the most efficient approach be to implement the editor along with the modular engine, or create two different designs for both the game, and editor? I thought to take the game state example and extend it to window states, and well could be used for a lot more systems. Is there a better implementation of this design(game state) for use in other systems used in the engine?
*: Now I know the term game engine is sorta irrelevant, and misused in many situations. What I am referring to as the "game engine" is the combination of the systems that the game must interact with for short.
Also this is more of a theory / design question than an implementation. Even though both mix, I'd rather like to have a more general idea on how the editor is built in an efficient way and still using the same engine code as what the game uses.
P.S If you need more clarification or extra bits just leave a comment.