I don't get the chance to play many computer games. I still buy and enjoy them, but the combination of me (a) having to make a significant effort to single-task on a game for any length of time (b) being incredibly bad at them, leaves me to keep gaming as an expensive and somewhat wasteful hobby.
Still, this year I had the pleasure of experiencing one of the coolest moments I can recall playing a game, one that actually left me wandering through the house saying "that was so fucking cool", and confusing my girlfriend whose taste in games runs more to beating the crap out of me in Soul Calibur. I'm not going to drop any spoilers here, but suffice to say if you've played at least three quarters of the way through Bioshock, you know exactly the scene I'm talking about.
Bugger it, I'm going to go with the spoilers. At least a little bit. It's hard to make my point any other way.
After long hours of play in this game, you discover that you've been played all along, that you're a puppet with no free will. Perhaps to make the point more emphatically, you discover this in a cut-scene during which you have no control over your character. The big irony, however, comes when your avatar has supposedly regained his free will but you (the player) are still following the pre-ordained plot on a wire right through to the choice of three scripted endings which differ only based on whether you chose to be a full-time, occasional, or abstinent baby-killer.
The grand achievement of the game is that this doesn't matter. The writers have hung a gigantic lampshade on the rigid plots of games that offer only the illusion of free will, but the story is so well told that you don't care, and instead develop a healthy fear of golf clubs and objectivist philosophy.
Telling a compelling story is hard. Telling a compelling interactive story is harder, because for every choice you give the player that's now two compelling stories you have to tell, each of them carefully balanced so neither decision damages the gameplay (having a viable alternative path is called replay value in reviews).