godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
91.3k stars 21.24k forks source link

The triggers on the Xbox Series X controller have too much dead zone. #99477

Closed Torguen closed 1 day ago

Torguen commented 1 day ago

Tested versions

v4.4.dev4.official [36e6207bb]

System information

win10 64

Issue description

The analog trigger travel on the Xbox Series X controller is reduced by a quarter due to the dead zone assigned by Godot. There's too much dead zone at the beginning of the trigger press and too much at the end.

If you open the Windows configuration for the controller, the dead zone is not as noticeable, especially at the start of the press.

With this tool, you can notice that the entire trigger travel is usable, even more so than what is shown in the Windows driver: https://hardwaretester.com/gamepad

In these images, I illustrate the issue.

The red area represents what Godot utilizes from the trigger's total travel:

Image

The Windows configuration seems to utilize more:

Image

Gamepad Tester takes advantage of the entire trigger, which seems ideal to me:

Image

Steps to reproduce

Simply run the project and start pressing the left analog trigger slowly. You'll notice that you have to press it too far for Godot to detect the input, and you'll also see that long before reaching the end, Godot already assigns it a pressure value of 1. This leaves a significant portion of the trigger's travel unused.

Minimal reproduction project (MRP)

Test.zip