v0.5.74 — human controller deadzones (source milestone)¶
Scope and rationale¶
The native UE player pawn shares keyboard A/D and gamepad left-X
steering, and W/S with signed right/left trigger throttle/reverse. Real
gamepads often report small fluctuations near their rest position.
DriveAxisDeadzone.h adds stateless, bounded human-only input
gating with smooth remapping of remaining analog travel.
- Steering axis uses a symmetric 12% center deadzone.
- Throttle/reverse axis uses a symmetric 5.5% center deadzone.
+1.0and-1.0(full input including keyboard) remain exactly full input; no steering or throttle power is permanently lost.- An input at or inside its deadzone becomes exactly zero, both for forward and reverse.
- Outside the deadzone the remaining travel maps continuously back to the full 0…1 range without sudden jump at the threshold.
- NaN, infinity and malformed threshold settings fail closed to zero.
- The new filters appear only inside actual player
ThrottleInputandSteerInputcallbacks; AISetAutonomousControlsand touch's independently validated screen geometry do not pass through this added deadzone.
This milestone makes no changes to car forces, suspension/tire simulation, recovery, opponent route policy, credits, checkpoint scoring, save schema or persistent user options.
Build/test¶
cmake -S Tests/Standalone -B Tests/Standalone/build -DCMAKE_BUILD_TYPE=Release
cmake --build Tests/Standalone/build --config Release
ctest --test-dir Tests/Standalone/build -C Release \
-R '^DriveAxisDeadzone$' --output-on-failure
python3 -m unittest discover -s Tests/Editor -p '*Tests.py' -v
The strict C++20 tests cover signed endpoints, both center deadzones,
intermediate steering/throttle remapping, invalid numbers/thresholds,
symmetric dense input sweep, monotonic controls, independent touch/AI
sanitizer and deterministic outcomes. Python source contracts verify
the exact runtime callbacks and DefaultInput.ini mappings.
Real-world Unreal/device verification still mandatory¶
- Build with licensed UE 5.8 Editor/UHT and game targets and cook the authentic original map.
- Use a keyboard, Xbox-style and PlayStation-style gamepads on an installed Windows build. Inspect resting analog readings and ensure unattended car motion is neutral across USB/BT reconnects.
- Verify full-throttle/reverse travel and low-speed left/right turning, split triggers, combined keyboard+gamepad interactions, focus loss and pause/restore across unusual frame times. Check default thresholds are acceptable and make them configurable only when real playtest evidence supports this.
- On Android verify the existing steering and GAS/BRAKE touch pads do not change sensitivity or finger ownership and menu inputs still suppress vehicle drive.
- Record device models, controller firmware/driver, source SHA, screenshots/logs and actual build/package receipt for playable qualification #148.
v0.5.74 is a published SOURCE-ONLY pre-release with zero game executable assets, not a playable or stable game. Genuine UE 5.8 and installed controller/Android validation remain unverified.