On Game Input and Response (Mouse, Keyboard, and Controller)

The Importance of Input

One of the large distinctions between video games and other forms of entertainment is the ability for the user to provide input to directly affect the state of the system. In essence, the user is driving the medium and has direct leverage over the future of their character(s) within the rules of the system. This uniqueness places a large burden on the designers to provide a good system of input for the users. Such a system can be the difference between maintaining loyal users and being completed ignored or negatively criticized.

When users play games, not much is worse than delayed/confusing controls or input with very little visual or aural feedback to indicate action occurrence and consequence. Think about that for a second. Try to think about how we manipulate the world in our actual lives. When you lift a book, open a page, or slide something across a table, action and response is immediate. Unfortunately, manipulating in a game system is never 100% immediate because there are levels of abstraction between you and the electrons. However, a designer can certainly work around this annoyance to provide a smooth experience. There are several considerations to maintain in order to achieve good input and feedback, and it is slightly dependent on the control schema available. (mouse, controller, headset, etc…)

Mouse and Keyboard

On the PC, the mouse and keyboard are kings. There are other ways of controlling your computer through touch interfaces, headsets, speech, and USB controllers, but the majority of the time is spent using a mouse and keyboard. In my personal opinion two of the largest sins regarding mouse input is the application of mouse acceleration and the occurrence of “soupy” mouse movement. The former is a large point of debate and the latter is a consequence of bad design and possibly video settings.

Mouse acceleration is the acceleration of the mouse cursor as you move your mouse at variable velocities. Moving the mouse from one corner of your mouse pad to another at a crawl will move the cursor on the screen a smaller distance than if you jerked the mouse across the mouse pad. This is because the mouse acceleration is trying to help with precision pointing at small velocities and reduce physical movement at large velocities. Honestly, I can see where it  might be helpful for some scenarios, but when it comes to games, I hate the inconsistent mouse movement that is a result of the acceleration kicking in. When I play games like Counter-Strike, reliable mouse movement is huge. “Flickshotting” where the user jerks the mouse from one point to another for a quick AWP kill is more difficult to achieve when mouse acceleration is on due to the variable velocity. No one will move from point A to point B on their mouse pad with the exact same velocity every time. Because of that, the actual translation of the mouse on the screen will fluctuate. Maybe this is not as important for slower games, but I still want the translation of my physical mouse to match up with the translation of the cursor regardless of the speed at which I am operating.

The “soupy” feeling that I named earlier is that feeling you get when the mouse is updating on the screen slower than you are moving your hand. In other words, there is a lag between input and visual feedback. I have seen this happen for two reasons. The first and least excusable reason is when lazy developers port console games to PC and haphazardly throw in mouse controls without any form of testing. Usually it involves tweaking some .ini configuration file deep in a hidden folder of the Windows User directory. Fun. The second reason is some game settings such as Vertical Sync or Refresh Rates. Either way, the existence of it makes some games impossible to play. I’m looking at you, PC version of Grand Theft Auto Vice City.

My point is that on a PC, when aiming and controlling through the mouse is required, getting the movement to map properly between physical and screen translations is important. Any inconsistencies introduced in that movement will frustrate the player.


Another popular input device is the infamous controller on many consoles (excluding Wii for this discussion.) There are trade offs between the controller and the mouse and keyboard. With a keyboard, the user has nearly infinite combinations of customization for control schemes. On a controller, there is nearly zero customization, but it provides a standard feeling that translates across various games. Where the player needs to study the basics of a keyboard layout, he or she can usually just pick up a controller and expect certain thumbsticks to move, other thumbsticks to aim, and closest-to-the-thumb buttons to perform primary actions. See, trade offs!

Where controllers have trouble is in the precision market. Precision is difficult to obtain on a controller because of the almost binary nature of thumbsticks. The user is either pressing the thumbstick or not (causing the player to move or not.) A workaround is to introduce various levels of “pressing” between not pressing and fully pressing in order to allow different velocities of movement. While this works, it’s hard to get precision to match the level obtained by a mouse. This is important to note because some game developers treat thumbsticks as 100% binary. That is, I have played games that require precision movement with the cursor or character aiming but only allow for one speed based on whether or not the thumbstick is pressed. Awful, to say the least.

Fun Input Response

Once developers achieve a good level of control for the user, the next step is to make sure the game includes some form of response to let the player know that their actions were successful or unsuccessful. This can take a few forms. Some games make noises based on what the user is touching, some games play different animations when different movements are created, and others adhere to realistic physics to immerse the player.

World of Goo is a good example of fun feedback. When interacting with a goo blob, the blobs will stretch in an elastic fashion along the axis of velocity when dragged by the user. It’s fun to drag them, and the user feels like they are directly affecting the state of the blob. Satisfying, realistic, and fun.