Controllers should be for controlling, so why aren't they? Lately I have become more and more annoyed by the controls of modern games, as they seam to "evolve" away form me actually controlling the game. I have to wait while animation plays out,I cant run and shoot at the same time (Gears), or the game just does the job for me (assassins creed), and that's if I'm lucky enough to not have been completely replaced by some canned quick timing event. Every time I have to wait for a bar to build up, every time I have to wait to switch weapons, and every time the bullets don hit where I aim, you are taking something away from me. I know that you want to make games where we can do really cool stuff, but I want to actually DO them, if the game does them for me they aren't cool.
The Wii represents both the best and the worst of controls. As Wii tennis beautifully tactile and direct controls demonstrate the Wiimote is perhaps the best game controller ever made. What you do corresponds directly to what happens on the screen. However many Wii games forces you to do random hand waving that in no way corresponds to the actions on the screen, and usually only lets you do them at specific points. The game becomes about the controls, when the point of the Wii is that the controls should be so natural that we forget about them and just interact directly with the games world.
the directness of the control is often a product of the level of derivative on the controls. Are you placing your character, controlling its movement, acceleration or rate of acceleration? In Mouse a controlled FPS you control where you want to look, where as in a stick based FPS you control which way you want to turn. With a mouse to make a 90 degree turn you make one motion, with a stick, you first move it to start turning, then you wait, and then you move the stick back, to stop turning. This is an issue that comes back again and again. do your need to accelerate in order to move? Do you need to switch to an item to use it? do you need to cycle trough items to select them? Do you hold or toggle buttons?
A fast feedback loop between what you do and what you see, creates control. If you are forced to enter a series in inputs before you get feedback the slower the game becomes. If you are forced to look at the screen to know what the controls do the game slows down (just one of the reasons, context sensitive input is tricky). All games have at least 1.5 frames latency built in. When the user presses a button the game is working on drawing a frame. In order to incorporate the input the game has to finish the frame its working on (that takes between zero and one frame depending on when in the frame drawing process the player pressed the button, on average a half frame), then the game needs to draw a new frame that incorporates the input, that takes another frame, and not until that frame is done can the change be displayed. This makes it quite obvious that high frame rate is very important for good controls. Some games, fail miserably at this, either by read in input at the wrong time resulting in an other frame of latency, or as in some games where the button press means that something starts accelerating, where in the first few frames that change is so small that the player doesn't notice.
Quake has what is referred to as the "50 Milli Second rocket prediction". When implementing weapons bullets usually starts inside the firing characters hit box, to prevent the the bullet from killing the shooter, you usually tag the bullet with its "owner" so that when you collision test the bullet, the shooter will be skipped. In some cases however you may want a bullet to hurt the shooter, for instance rocket splash damage, or if your game has teleporters (Like Quake) or other means of fast transport, where the player theoretically could catch up with the projectile. So Quakes simple solution was to create rockets in front of the player, to be exact the distance a rocket travels in 50 ms. What this meant was that when the player pressed fire, the rocket quickly appeared in front of the player as if it had been fired 50ms before it was rendered on screen, giving the player more responsive controls. This technique can be used for all types of controls to make them "snappier".
Take a look at videos of the best Doom, Quake, Tetris, or Mario64 players in the world, its like they are playing a different game. The games have given them room to express them self's in ways you couldn't imagine. Most modern games don't give you room to grow. Its not just for the crazy good players, its a matter of the game letting you being in control. For all the evolution in controls I never feel as in control as when I play thous old games. Funny that many of the greatest control tricks like rocket jumping, Strafe jumping, fast reloads by switching weapons and tribes skiing are all unintentional features. My controls are very simple, WASD for moving, jump, mouse look, fire/action, and direct weapon/tool switch, that's it. No prone, reload, lean, duck or aim. But I'm trying to build in complexity in to simplicity, With some tricks you will be able to do loops when jumping, land safely from high jumps, kick and wall jump. I don't know if is possible to "manufacture" great control bugs, but its worth a try, maybe I already have. Next week when i get back home from LA, my first alpha will go out so I guess I will find out.