[This article was originally posted on GyroWiki here]
Thumbsticks are widely used in modern console games. Sometimes games use thumbsticks when they really are the most practical option available on a standard modern controller: movement in any direction and steering a vehicle seem to me to be obvious examples.
But games have also used thumbsticks for moving a cursor or aiming a weapon for close to 20 years now, and while developers and gamers alike have long acknowledged they have severe shortcomings when used for these tasks, an incredible amount of inertia seems to be keeping the industry from embracing a better alternative already available in most modern console controllers: the gyro.
But all I talk about is gyro. Let's, for one post, focus on thumbsticks as aiming devices. Let's remind ourselves how much work goes into making them less awful than they could be, and acknowledge that they're bad enough that if there's a more modern technology that is better suited to the task — both easier to learn and has more room for skillful mastery — then perhaps we should embrace it.
Hard to learn
Let's look briefly back at what is commonly acknowledged as the first game to have dual-analog controls by default, Alien Resurrection (Quake II for PlayStation also had dual-analog controls, but they were optional):
The game's control setup is its most terrifying element. The left analog stick moves you forward, back, and strafes right and left, while the right analog stick turns you and can be used to look up and down. Too often, you'll turn to face a foe and find that your weapon is aimed at the floor or ceiling while the alien gleefully hacks away at your midsection.
— Steven Garrett's review of Alien Resurrection, October 5th, 2000
Dual analog moving and aiming has become part of the common language of playing games. Generally, if you are able to game "fluently", you are able to play these kinds of games in this way with relatively little difficulty. But it's easy to forget what it's like for someone new to gaming or new to these kinds of games in particular.
Anecdotally, I've seen people try PC gaming for the first time and get reasonably comfortable with mouse aim pretty quickly, but later get fed up with their first console shooter as they find themselves aiming straight up or straight down and not sure why.
When we aim with a thumbstick, we almost never point exactly in our intended direction. Much of the time in shooters, most of our aiming is left and right, from one target to another. Even before there's a target to shoot at, players will need to be able to turn left and right to navigate the game world. But what happens when the player intends to turn left, but has the stick slightly below horizontal? The camera drifts down.
Players comfortable with these controls will make slight adjustments and recover without too much difficulty. But what surprises me as someone who has learned to be comfortable with these controls longer ago than I can remember is how often new players fail to adjust their aim direction, but instead are confused as to why this is happening at all. "I said turn left. Why are you going down?" So they counteract it. Start turning right instead. Much of the time, this will also be below or above horizontal, and they keep going down. They find themselves looking at their feet. Left and right no longer turn the camera left and right in an intuitive way — now it's spinning around its centre (a problem with mouse and gyro aiming, too, but confusing to a new player who never meant to look at their feet or at the ceiling in the first place), and for a new player who feels like they only asked the game to turn left or right, it can be perplexing to find themselves in this position.
Sure, we also almost never move the mouse in the exact direction we intend, either. But because continued movement in game requires continued mouse movement in the real world, we are already adjusting. "Steering" the aimer the way we do with thumbsticks is simple in concept, but seems to me to be quite unnatural.
I don't know exactly what it is that makes it so much worse for aiming. One factor might be the directness of mouse (displacement to proportional displacement, velocity to proportional velocity) compared to the indirectness of the thumbstick. Another might be the small size of the thumbstick compared to the wide range of motion required to play with precision. Whatever it is, it sure seems to be the case that thumbsticks introduce serious difficulties to comfortable aiming.
Generous interpretation
Now, let's acknowledge that games have made it easier to avoid these difficulties. Cross-shaped deadzones and aim assist are ways that games try and interpret the player's intentions a little loosely and help them out.
Let's start with aim assist in arguably the first popular dual analog game, Halo. Here's what Halo's developers had to say to Steve Haske in an excellent interview for Waypoint:
There’s a lot of code in Halo that interprets what you’re doing—how fast did you move there, what are you looking at? If it’s an enemy, we can assume that when you slow down, you’re trying to aim. So there are pages and pages that interpret the input that comes in, in a way that isn’t blatant and in your face. We tried to conceal how much help we’re giving the player.
— Jaime Griesemer
It essentially buffers your movements, so that you get the movement you wanted, not necessarily the one you were making. Which gives you a really controlled, precise experience, beyond what your thumb could actually give you, unassisted.
— Stuart Moulder
Not all games do it the same way, or to the same degree, but aim assist goes a long way to making thumbstick aiming not awful. It's also a lot of work on the part of the developer. While we tend not to measure code in "pages", Jaime's making the point intended to be understood by non-programmers: it's a lot of code. It's a lot of work.
In comparison, mouse aiming is really straightforward. There's no need for loose interpretation. A mouse movement becomes a proportionate angle change for the camera:
camera.yaw += mouse.dx * mouseSensitivity;
camera.pitch += mouse.dy * mouseSensitivity;
Where mouse.dx and mouse.dy are the amount the mouse has moved since input was previously sampled. That's it. If you have mouse acceleration (even good, framerate-independent mouse acceleration) it's only a few more lines, depending on how you do it. Good gyro controls look very similar, but that's for another post.
Check out Nick Weihs's GDC talk on his work implementing aim assist in Insomniac Games' Resistance series. It's about half an hour (20 minutes if you watch it at 1.5 times speed like I did), and it is useful here for two reasons:
We get Nick's very educated position on the differences between mouse aim and thumbstick aim, and
We can get a good understanding of what is involved in good aim assist.
Let's start with his assessment of thumbstick aiming as compared to mouse aiming:
Keyboard and mouse controls are very good as far as aiming devices go because they're intuitive, they're accurate, and they give you a good sense of connection to the character you're playing as. The problem with keyboard and mouse is that they're not very good on the couch.
On the other hand, controllers are "very poor as far as aiming devices go."
Let's summarise what's going on with aim assist here: