I have an idea for a game, but no time to implement it, so I'm going to throw it out in the hope that some interwebby young'un with time on her/his hands will build it for me (and everyone else). The starting point is a basic first person shooter with a science-fiction theme (rayguns, jetpacks, etc.). What makes it different is that each player has the ability to wind time backwards, but only a little bit: at any point, they can press a "rewind" button and reverse the flow of time, but doing so uses up the charge in their temporal battery (which is fairly limited). So, if you just got shot, you rewind a few seconds, then go forward again, but this time you don't stick your head up to look over the parapet. Or suppose you missed a shot: no problem, wind back a second and aim a little lower.
Ah, but wait. If you're winding time backward because you just missed a shot, I'm going to do something different in th replay as well, right? I'm going to jump instead of crouch, or crouch instead of jump. Except you know that, so instead of aiming low where I was crouching, you'll aim high because you know I'm going to jump instead. But I know that you know that et cetera, so it becomes one great big head game:
There are lots of ways to mix this up—power-ups that recharge temporal batteries, for example, or being able to spend temporal energy to force play forward, canceling out someone else's rewind—but the basic mechanic is pretty simple. Implementation will involve more than just recording and undoing events in a standard FPS (if I jump off a cliff, then start running when I land, the game will need to insert an "undo falling" event between the jump and what comes after), but I think that's a simple matter of coding. Bonus points if the characters look like the robot from Chronotron :-)