Tuesday, October 17, 2006

Levelling the Playing Field: Mice And Analog Sticks in First-Person Shooters

During a game of SOCOM 2, player Red One catches sight of Blue One. Blue has his back to Red, so Red decides to try for a headshot. Red aims at Blue, but the crosshair stops to the left of him. So he tugs the analog stick up and right. But he overshoots, so he tugs left. Overshoots again, and tugs right. Tugs left. Right. Left. Down and right. While all of this is going on, Blue notices Red's presence, turns, and tosses a grenade. The grenade goes off, and Red is dead.

Before the next match, Red reduces his control sensitivity so he can aim precisely and get a headshot next time on Blue.

Red creeps along a wall, past a closed door, peeks around the corner, and there's Blue. Red aims and gets a headshot on Blue. But then he hears the door open behind him. He tries to turn but with the decreased control sensitivity it takes a long time. Long enough for Blue One's teammate Blue Two to kill Red.

Frustrating, isn't it?

Had it been a PC shooter such as Counter-Strike, the mouse would have given Red the precision control to get the headshot as well as the turning speed to deal with a threat from behind.

This is why people who have played PC shooters tend to prefer them to shooters on the consoles.

Console shooter designers are faced with a dilemma: if they make the input ramp steep enough to provide quick turning when the stick is pushed over all the way, then the turning speed rises too quickly near the stick's dead zone for precision aiming. But if they make the ramp shallow enough to provide slow turning in the area near the dead zone, then it is still too slow when the stick is pushed over all the way.

A number of solutions to the problem have been tried, with varying degrees of success. Many involve eliminating to one degree or another the need for precision aiming. These include:

  • Aiming assistance - either the crosshair or the shots will drift towards the target when the player's aim is close enough
  • Target lock
  • Target lock with fine tuning
  • Large hitboxes around targets
  • Inaccurate automatic weapons with high rates of fire
  • Large blast radius for explosive weapons
  • Enemies who aim or react slowly and aim inaccurately
  • Translating the position of the analog stick, within a certain range, into the position of the aiming crosshair. Outside that range, stick position is translated into turning speed.
  • Accelerating turning speed with time - the longer the stick is held in one position, the faster the turning speed becomes.
In addition to these solutions, many shooters pass the dilemma on to the player by giving him an input sensitivity control. Not that I think having such a control is bad; it's just not a way to fix the problem at hand.

The above, by the way, is one reason that console and PC versions of the same shooter cannot play on the same server; every solution above, if applied equally to both PC and console, continues to leave the advantage in the hands of the PC user. If applied to one but not the other, it results in battlefields that are incompatible and can't run on the same server.

There is a solution, however, that I believe can level the playing field and even give console players a slight edge over the keyboard-and-mouse crowd:

Input Acceleration

I first encountered this when playing Half-Life on a laptop PC. It wasn't always practical to use a mouse when I wanted to play, so I began experimenting with the TrackPoint device. For those of you not familiar with it, the TrackPoint is a tiny pressure-sensitive joystick that sits between G and H on a laptop keyboard and is meant to substitute for the mouse. The harder you push it, the faster it moves the pointer across the screen.

Most people don't like TrackPoint devices because of the difficulty in controlling them: on low sensitivity they can get accuracy but not speed, and on high sensitivity they can get speed but not accuracy. Sound familiar?

This is where input acceleration comes in. With input acceleration turned on, a gentle to moderate push results in slow pointer movement for pixel-perfect accuracy, while a medium to hard push sends the pointer zipping across the screen. When applied to Half-Life, this permitted precision aiming with a gentle push and quick turning with a hard push.

Without input acceleration, doubling the pressure doublea the speed, tripling the pressure triples the speed, and so on. With input acceleration, doubling the pressure might give four times the speed, tripling it might give nine times, and so on.

If input acceleration were applied to an analog stick as to the TrackPoint in my laptop, this would give console gamers the speed and accuracy they need in order to compete with mouse-and-keyboard users.

In fact, it should give them a slight edge. Using the left stick for running and strafing is superior to using the keyboard, because it allows the player to more precisely control movement speed. And having all the buttons within finger's reach means a quicker response than when they're scattered over a keyboard.

So if input acceleration is so good, why isn't it in use? Well, it could be that some console shooters do use this method to make aiming easier, and I either haven't played them or I haven't noticed. That would then make the question why it's not used more.

I suspect the three major factors are ignorance, inertia, and haste. Some developers are ignorant of the possibility of using the technique, so it isn't even considered. For others, there's inertia; it's easier to do what's already been done than to invent something new. For many of the existing solutions, there may even be code available that can be lifted and reused. Finally, there's haste. Software development tends to be on tight schedules, never more so than when the project is a port from a PC shooter. When deadlines are tight, the risk to the ship date from using a known solution is far less than using something new.

On the other hand, analog sticks have a travel and are operated by the thumb, while TrackPoint sticks don't move and are operated by the more dexterous index finger. It could be that developers have tried it, and the differences between analog sticks and pressure sticks mean that input acceleration doesn't work nearly as well for consoles as for notebooks. In which case I, and this entire article, are full of it. Wouldn't be the first time.