I've been re-playing the Metal Gear Solid series. The second and third game are better than the originals because of a control scheme update that was part of a bigger 'HD' update. But they still suck compared to the controls of the fifth iteration of the game, 'The Phantom Pain'.
MGS5 has some of the best controls I've ever used in a (third person) game. For lack of a better description, it made me feel almost like how I felt when I first played Mario64.
And I can't help but wonder why 1) it took three iterations to get here even though 5's controls could be realized even in earlier iterations of the game, 2) why other similar games don't just use the same controls instead of more dated approaches.
I mean, I get why, but it feels strange. I understand how the development of graphics, physics, AI, etc. is limited by technology but as long as you don't need a controller update for your new control scheme, such a limitation shouldn't be there. And yet it is, apparently.
OTOH, there are some old games that control fine. Megaman 2 still feels great to play, as does Quake with +mlook and WASD. But yes, control affordances matter. For the large part, Doom can only be played comfortably by modern audiences because of the work Source Port developers undertook to allow for rebindable keys, and sgtmarkiv's Brutal Doom, which allows for proper mouselook, if you really want to be that guy.
I've been doing Ludum Dare for a while now and it has only deepened my respect for games with good controls. For the last jam, I didn't spend nearly as much time on control feel as I usually do and I got a bunch of negative feedback for it.
For another example, people criticize Unity for games with poor feel, but what's really happening is that Unity has enabled a bunch of new developers to make games with less effort, and that includes spending less effort on getting the controls to work well. All Unity did was lower the bar to entry.
Take a look at Quake III, in bg_pmove.c PM_Accelerate
https://github.com/id-Software/Quake-III-Arena/blob/master/c...
This is the code that translates player input into acceleration for the physics system to handle. Notice the code blocked out with #if which fixes a bug but the fix isn't used because it "feels bad". The bug lets you accelerate to ridiculous speeds with the right pattern of movement.
That's not true, look at the code. It does something else. You can also check out the .plan from Jun 3, 1999:
> When I tried fixing the code so that it just didn't work, I thought it changed the normal running movement in an unfortunate way.