Plus it's far harder to code a game engine than it is to write a story. Really, if anything, the game engine should be focused on first, the other elements second. Not to say that the other elements aren't important, quite the contrary, but if your game is a buggy, unplayable mess, it doesn't matter how good the other things are, because the most basic element you're supposed to get right is messed up.
That's not to say that these elements can't be integrated once development is far more underway, and you have a grasp of what your game's engine is capable of. But when starting out, you have to try and focus on your engine first, and work out what it can do separate of the other elements, because that within itself will determine what you are capable of doing with the other elements of the game.
As for a good game designing engine, that depends on what you're looking for. One thing to keep in mind though is that if it's at all possible, coding an engine from scratch may give us the most flexibility in the end, but it will also be the most difficult thing to do by far (...I think. I'm not very knowledgeable about coding, I just know that it's hard ^_^"). Really, it depends on what we want from the game and how much effort we're willing to put into designing the engine.