Your cast is the story. The story is your cast. These are not separate entities, and if you fail to deliver a strong, compelling cast, then your grand imaginings will be as flat as day old soda.
A story follows a meaningful flow. The protagonist, our player as avatar, takes an action, and she expects a particular result from her action: she sees a lever, and she expects pulling it will open the door. The world reacts: a trap door opens under her feet! It reacts differently than we expect, and suddenly things are interesting.
This is called the Gap, and it defines the difference between what the protagonist expects and what is created, in reality, by the antagonistic forces of the story. Without this Gap we have no Story, for if everything happens as we expect, then why are we watching/playing it? How boring would it be to have every lever just open the door as we expect, to have every monster die in one hit. We need this Gap, we need conflict.
“Nothing moves forward in a story except through conflict.” – Robert McKee
We create conflict, the Gap, through the environment, though the mechanics, and through the cast. However, being a simple, fleshy, moving barrier to the player’s progress is empty — gapless — for it’s not the kind of enemy that enhances the story. This is why we give our enemies a trick, and why it is such a painfully important question of your cast: “what’s this guy’s trick?”
In short, you need to define the Gap.