When looking to map player input into your game, there's a few things you have to consider. Namely, what kind of inputs your platform can provide. Now, for a large portion of video game history, there's only been about two different kinds if you really think about it. For example, classic video game controller. You've basically got two different types of input. You've got the buttons, you got the triggers, and you've got the sticks. Sticks and the triggers are pretty much the same thing, just one's a little bit more complex. Now, the ones are pretty easy otter off it's going to be a boolean situation, and the triggers and the sticks are going to be an axial sort of input. You have a range from one point to another, so a float value. With the analog sticks, you have two different kind of floats being used. You've got your horizontal and your vertical. Everything is basically derived from these two different types of input even as we're getting into motion controls. Motion controls in modern video games are moving in space. You've got coordinates in a three-dimensional space, you might have rotations. These are all different types of radial inputs. You probably have some buttons on there to help the player control what's going on in the world that's a toggle. It all works out to be these two different types. Now, I don't want to start a debate about controller versus mouse and keyboard, but for the first-person shooter you see both these being used. The controller has the analog sticks for controlling where the player is, where they're looking, and the mouse and keyboard has the exact same thing with the keyboard controlling player movement and the mouse controlling where they look. Now, the mouse may not exactly seem like an axial controller first, but were it moves on screen left and right up and down can be basically converted into x and y coordinates on the screen. You get input on the mouse's movement-based upon these two different types of axial inputs. By thinking of inputs as being either toggle or axial, be it single axial or multi-axial, you'll be able to start to break down what a platform can provide your game and what your game is going to require the platform. Now, there are only a couple other different types of game controllers game input. We've seen the rise of voice input. You're able to control objects using just spoken commands, and these are going to be a bit more complex, and you also have body controls, think of anything that captures the user's body motions and converts those into information for the game to use. That's actually just axial. You're capturing a lot of different axes at the same time. Consider what the platform can provide and what your game is going to require and find the intersection of these. That's going to dictate how your user input is going to control the game.