Btw if you add your “epic” games as non-steam games in steam, you can use the steam overlay and change controller bindings like a steam game. It also is a great way to run windows software on Linux without tinkering.
Yep, this is also the #1 reason I have no intention to buy games on Epic going forward. I had to do this for well over a year to use my Series X|S controller over Bluetooth with HITMAN III. They’re paying for exclusivity explicitly so that I can’t buy games on Steam, then I have to launch their launcher through Steam anyway because their platform sucks, so I just end up with an annoying middleman that makes me ask “why?”
Most non-xbox controllers use well-known USB extents that are universally recognized as belonging to a generic controller. Windows will display a controller icon, libraries like pygame and SDL 2 will process them as regular controllers, etc. As such, most controllers need no drivers. The exception is that games written with directX use xinput, which is proprietary and has licensing costs to get your controller into (to prevent low-cost controllers from undercutting Microsoft’s price-gouging official offering).
Converting USB controller to xinput has famously been a really hard problem, requiring a lot of fancy software that is often incompatible with anticheat and copy protection. Steam is able to do it because the steam overlay is whitelisted by everything that could block it, and is otherwise developped by really great devs.
In the process of intercepting inputs to the game and translating them, you can imagine it’s quite easy to swap a button for another, that’s how controller remapping works. Some devs additionnally provide steam with custom things a controller may do that may not have a key assigned but becomes callable from a key through the overlay.
Thanks to Steam Input, he can use any controller
#1 reason I prefer buying games on Steam. The convenience of this is insane.
Btw if you add your “epic” games as non-steam games in steam, you can use the steam overlay and change controller bindings like a steam game. It also is a great way to run windows software on Linux without tinkering.
Yep, this is also the #1 reason I have no intention to buy games on Epic going forward. I had to do this for well over a year to use my Series X|S controller over Bluetooth with HITMAN III. They’re paying for exclusivity explicitly so that I can’t buy games on Steam, then I have to launch their launcher through Steam anyway because their platform sucks, so I just end up with an annoying middleman that makes me ask “why?”
It’s a great tip for all the free games though.
How does Steam Input work? Does it contain drivers for almost any controller, or does it just map inputs for those controllers to Xinput?
It has support for a lot of controllers, including the popular console ones. It’s really a nifty feature of Steam.
Most non-xbox controllers use well-known USB extents that are universally recognized as belonging to a generic controller. Windows will display a controller icon, libraries like pygame and SDL 2 will process them as regular controllers, etc. As such, most controllers need no drivers. The exception is that games written with directX use xinput, which is proprietary and has licensing costs to get your controller into (to prevent low-cost controllers from undercutting Microsoft’s price-gouging official offering).
Converting USB controller to xinput has famously been a really hard problem, requiring a lot of fancy software that is often incompatible with anticheat and copy protection. Steam is able to do it because the steam overlay is whitelisted by everything that could block it, and is otherwise developped by really great devs.
In the process of intercepting inputs to the game and translating them, you can imagine it’s quite easy to swap a button for another, that’s how controller remapping works. Some devs additionnally provide steam with custom things a controller may do that may not have a key assigned but becomes callable from a key through the overlay.