This is a somewhat technical question, but I’m sure there are people here who can help steer me in the right direction.
I’m working on a game engine currently that doesn’t use SDL2 for it’s input – but does a lot of it’s own processing of devices by parsing udev / insert your low end USB device system here.
Anyway, I’ve been having an issue with users launching games via Steam where they’re getting double inputs on certain controllers. For example, an Xbox Series X Controller launched through steam would sometimes result in the A button being registered twice – a less than ideal situation!
When trying to find a solution on Valve’s documentation, I found the following tidbit here.
3. Use SDL version 2.0.8 or above, if possible
If you’re using SDL (Simple DirectMedia Layer), one of the most popular cross-platform game libraries for handling things like input, make sure you’re using the latest version, or at least version 2.0.8 or above. This version allows Steam to tell SDL to ignore input for controllers configured by Steam Input, which avoids double-input bugs.
That’s what brought me here. This sounds basically like what I need to have happen on my program, but I simply cannot find an example of this communication. Does this require deep integration with the SteamWorks library? Or is there a way to fetch whether a gamepad is currently in use as a SteamInput device some other way? I imagine if SDL is doing it, there’s probably some way to fetch the information necessary from udev or equivalent.
If anyone has any knowledge of this and can help direct me to a section of code or just give a general overview on how this type of communication is achieved, I would greatly appreciate it!