The Hard ProblemToo Many ButtonsThe Hard Problem - RSS 2.0
Sprint: Let's use auto-sprint: Move forward (including turns) continuously for three seconds and you start sprinting. If you stop or move backward, you don't sprint any more. This will reasonably handle the case where you need to quickly traverse terrain to escape or pursue. We could even require straight-line sprinting only, with any turns slowing you down; there are current-gen games that do this anyway.
Jump: We could cut it entirely, which might not be a huge loss to gameplay even though it's a big loss for player agency. Another option is to do contextual jump. Run up to an edge, for example, and we block you from running off of it. But when pressing against the edge, tapping the button will jump. Likewise, if you are pressed up against an obstacle that you could jump up onto (such as a crate or a loading dock), then as long as you are pushing forward against the obstacle we use the button as jump instead of fire. There will be some cases where you want to shoot and jump instead, but I think we can cope.
Crouch: Cut it, mostly. We'll design our cover to be of human height. You're either behind cover or you're not, and there's nothing with space for you to crawl under. If we must have air vents for you to crawl through, we can special case those such that pushing forward against them for more than a couple seconds triggers a kneel-and-crawl-in animation that pops us inside the vent, where we can move normally even though visually we're crouched or crawling. When we reach an exit, we again push against it for a couple seconds and then we pop out and stand up.
Everything Else: Ladies and gentlemen, let me make my case for the radial menu.
That one button we have needs to do a lot of things. Most obviously and critically, it needs to fire my weapon or throw my grenade. That it can do with a tap. But we have a lot of other needs, too, and only one button to fulfill them with. So let's break those needs down and solve them as best we can.
For starters, let's go modal. At any time, your character is either in combat, in combat behind cover, or out of combat.
When you're in combat, the button fires your current weapon or throws a grenade, depending on which is selected. (More on that in a moment.) In this mode, you cannot change weapons, heal, switch throwables, or access your map/phone/notebook. All you can do is move and attack. If your gun runs empty, pressing the button again reloads. If you're out of ammo for it, we auto-switch your weapon for you. If it jams, the button unjams you. If you run up against a jumpable object or edge, or an interactable object like a door or switch, then pressing the button while pushing forward against that special object triggers the jump or interaction.