Game stories should be made with exactly the same principles we use for gameplay. That is: “Easy to learn, hard to master”.
First, you want an instant hook that can be explained in as few words as possible. “Save your girlfriend!” Easy to understand, with no ambiguity. It gives the player motivation while wasting as little time as possible. Anyone who doesn’t give a shit about your story doesn’t have their nose rubbed in it.
Then, behind that simple goal, you want a deep backstory for the guys who hang around and talk to the NPC’s. Ideally, it should be strange, fragmented, mysterious and sad. You do it just by expanding on all the elements of the hook: Who is your girlfriend, and what’s your relationship to her? Who kidnapped her? Why?
Bowser and Peach are having an affair. You killed your rival’s pokemon. The zelda games all fit into a single timeline. Spend a lot of time looking at a ten-pixel sprite, and you start to ask – who the fuck is this guy? Where did he come from? If the game doesn’t give you that deeper meaning, it feels hollow. You have to make something up.
Most games fall too far on one side or the other. The Mario side has the hook, and nothing else. Works fine at first, but if you’re a fan you crave more. The other side cares too much about it’s deep lore, and forces you to read all of it. Because it’s not in the background, the mystery disappears. You need to start simple and make people work for more, so that finding out facts about the world has some meaning.
Silent Hill 2 did this well. “Find your dead wife”. A perfect hook: Simple, with complicated implications. Braid tried to do this, but ended up just force-feeding you backstory in-between levels. Dark Souls did very well at having mysterious lore in the background, but it doesn’t have a solid hook. It worked fine for them, but I think most games need starting motivation.
The best game stories should have the simple resonance of fairy tales. Each element is simple, but hints at strange, deeper meaning.