Is it possible to implement the steam controller in a non-steam game?

The new steam controller looks great!

It says on the steam site that it can even work on non-steam games.
However, the details are a little fuzzy…

Are there any assets/sdks available to utilize the steam controller in a regular unity game (that isn’t published on steam)?

I’m surprised there hasn’t been more conversation around this, that I could find at least.

The controller basically acts as a mouse and keyboard if you’re not using it in combination with the SDK. The layout of the controller is like this:

A = Return
B = Space
X = PageUp
Y = PageDown

Left bumper = Left Ctrl
Right bumper = Left Alt
Left trigger = Mouse button 1 (no axis)
Right trigger = Mouse button 0 (no axis)
Left flipper = Mouse button 3
Right flipper = Mouse button 4

pad button left = Mouse button 2
pad button right = Left shift
arrow next to steam button left = Tab
arrow next to steam button right = Escape

Joystick = acts as Horizontal/Vertical by sending (Left, Right, Up, Down arrow keys)
pad left = acts as Mouse ScrollWheel axis
pad right = acts as Mouse X and Mouse Y

I’m also trying to use the controller in Unity Steam, with negative results. For now, what I have achieved is through a simple reading of the event log with this code:


    void OnGUI()


        Event e = Event.current;

        if (e.isKey)

            Debug.Log("Detected a keyboard event!" + e.modifiers +" + " + e.keyCode + " " );

        if (e.isMouse)

            Debug.Log("Detected a Mouse event!" + e.type);



If you try it you will see that some analog events are detected as keys. And there are some events not even detected, as the XY buttons.

Apparently, you can program games with the Steam control if you are part of SteamWorks. Then you can download the SDK STEAM with which you can develop or adapt applications using C ++ but not using Unity