Upcoming Gamepad Changes



Deadzone: Axial Deadzone: Maximum Input Threshold:
Raw Analog Stick Input
Old Deadzone Re-mapping
New Deadzone Re-mapping


This is a small demonstration of how we map controller hardware inputs to the actual output values that the game uses for controlling your movement and aiming. If you move the analog sticks on a compatible controller that's connected to your computer, you should be able to see a visual representation of both the raw values that the hardware reports as well as how the deadzone parameters are used to improve responsiveness and accuracy. You can try and tweak the values above to see how the mapping behaves with different threshold values as well and determine which ones are best suited for the controller hardware you're playing with.

The Deadzone value is used to overcome a common hardware limitation in which an analog stick will continue to report a small amount of movement even when it is released back to the rest position. You can try this by fully extending one analog stick in a certain direction and then bringing it slowly back to the rest position, noting where the small black dot (the raw value) lands after it is fully released. You might notice that releasing the analog stick from different directions will result in different resting values. You should adjust your Deadzone parameter such that analog stick's raw position lands comfortably inside the inner gray circle regardless of the direction from which it's released.

The Axial Deadzone value is used to make it easier for players to provide exact axial directions (left, up, right, or down) to the game, since aiming or moving directly to a side, forwards, or backwards is often what the player is intending, so we provide an angular threshold within which all inputs are snapped to that exact axial direction. Note how extending the analog stick straight upwards and then moving it side-to-side while keeping it within the gray conical area results in the final positions (the red and green circles) being snapped exactly to the axis. The most recent change to our controller code pertains to how we map values outside of the axial thresholds. You'll note that if you move the analog stick in a smooth circular motion, the old implementation (red circle) tends to jump ahead and change speed while the new code (green circle) is much more smooth and linear, providing a greater range of values and control.

The Maximum Input Threshold value is used to adjust when we consider the analog stick to be fully extended in any direction. Due to a wide variety of hardware implementations (as well as just inaccuracy due to aging hardware), some analog sticks may not report full movement even with the analog stick fully extended into a certain direction, while others might report raw values that are beyond the extents of the circle. Any input that is inside or beyond the outer gray circle will be extended to the maximum value in that direction. Values between the lower Deadzone and the Maximum Input Threshold are mapped linearly to smoothly transition between these two zones.