Current state of cross-platform controller force feedback

This question was created in reference to: [Windows Xbox One [Content removed]

As we investigate the implementation of haptic rumble/force feedback into our game, we’re trying to get a sense as to what the current state of Unreal’s implementation is. Specifically, we’re targeting gamepad support for consoles as well as their respective controllers on Windows 10/11 and, as such, would prefer the Windows implementation to match that of the same gamepad on console. The above question seems to indicate that the rumble motor feature set of Xbox One (and presumably Series X/S) controllers may not be fully supported on Windows due to the reliance on XInput. I just wanted to see if any developments have been made in the few years since that original post was answered (the issue mentioned doesn’t appear in the public issue tracker). Additionally, if you have any recommendations as to best practices for supporting cross-platform/cross-vendor force feedback, I would be interested in hearing that as well.

Hey there!

Unreal Engine supports creating force feedback assets per-platform while you are editing a force feedback effect. This allows for fine tuning of how your vibrations feel across a large variety of different input devices. This is the system that is referenced in the question you linked.

[Image Removed]

Additionally, for Windows specifically, we have an experimental plugin to utilize the newer “Game Input for Windows” library from Microsoft, which you can use instead of XInput. You can enable this plugin here and see its implementation on our GitHub: https://github.com/EpicGames/UnrealEngine/tree/5\.6/Engine/Plugins/Experimental/GameInputWindows. Some more info is also available in our blog post about it.

I hope that helps!

Ben

Thanks, that’s good to know. Two follow-up questions:

  • Is Game Input for Windows intended to work additively to our existing input handling or in place of it (presumably on Windows only)? And does it play nicely with the NDA-platform-specific input plugins?
  • Integrating experimental plugins into a live product is always a bit of a concern for us, do you anticipate it to come out of experimental in a near release due to it being relatively finished or is this in more of a “one day eventually” state of experimental?

In its current state, I would say that it is likely best to stick with XInput and WinDualShock to cover the most devices. The current release of Game Input from microsoft does not yet support platforms like steam deck, or older XInput devices. It also does not yet support advanced things like trigger haptics/resistance.

When it is complete, Game Input would be intended as a replacement for XInput and the WinDualShock plugins, not to be run at the same time.

At the moment though, Game Input is easily the best way to handle “special” devices like racing wheels, flight sims, and fighting sticks. We we made the game input for windows plugin we made it possible to enable/disable what devices you want to run through game input so you can run these features side by side with the existing Xinput/WinDualShock plugins.

Ok, that’s good info about steam deck/older xinput devices. In that case we’ll keep an eye on it but refrain from making the switch for now even if it means the PC/console experience will be slightly different. It sounds like something that would be very nice to have though. Thanks.