Steam Controller API?

Are there any plans for the team to support the Steam Controller API? The game already does a good job of allowing the Steam Controller to be used, but the main problem is that it is virtually impossible to actually rebind any controller buttons because of the way the Menu works.

Having the ability to bind buttons to actions would be really fantastic. I hope the team considers this.

Also, keep in mind, even though it's the Steam Controller API, it will benefit all controllers, not just the small amount of users with a Steam Controller

More information about binding to actions can be found here:

Comments

  • sarge945sarge945 Posts: 5Member
    edited July 2017
  • ROCKFISH_AndiROCKFISH_Andi Posts: 914Moderator
    Did not wathch the videos, but - isn't the whole point of the steam controller that you can make your own configs? This should work without a problem right now.

    Also, we're working on button rebinding for any input device at the moment (in order to support joysticks), so there should not be any need for integrating this api.
  • sarge945sarge945 Posts: 5Member
    edited July 2017

    Did not wathch the videos, but - isn't the whole point of the steam conroller that you can make your own configs? This should work without a problem right now.

    This isn't about the SC specifically, as it affects all controllers supported by Steam, and rebinding configs has some limitations which the API addresses.

    Basically, to summarise.

    Basically, without the API, it is up to your game to handle controller input yourselves. You set up your game actions, bind them to buttons. The A button might be "use item", for example. A might also be used to accept your selection when in a menu. The game is expecting certain buttons. The Steam configurator allows us to send certain buttons with other buttons - aka one button can be bound to another. I can make the Left Trigger send the A key, for example. The problem is that it input is effectively being handled twice - once by steam and once by your game. Secondly, because we are literally sending the A button, the prompt "press A to use an item" will be wrong, because we have bound A to the Left Trigger in this example. Worse still, Left Trigger will also be the Accept button in menus, which we may not want. We have no way of changing the menu bindings without making another action set in Steam and then setting up a button combination to manually switch to it.

    With the API, you don't actually support controller input directly. Instead, you expose steam to a list of "actions" that can be performed in the game - ex Use Item, Fly Forwards etc. You also expose steam to certain action sets - Menu controls, Flight controls, etc. Steam handles the rest. This means that instead of us having to send the A button to the game, we can instead bind the Left Trigger to the "Use Item" action, and the API sends that action to the game, which then processes it and reacts accordingly. The game can also tell the API to switch between action sets automatically. What this effectively means is, as a user, I can set up any button combinations on my controller, and bind virtually any action to virtually any button, and the game will work correctly, with the correct button prompts (button images, for example, can be displayed in-game through the API) as well as allowing a smooth transition between different control schemes when opening the menu automatically. Better still, this works across all controllers supported by the Steam API. Even though it is called the "Steam Controller API" it is not exclusive to the steam controller. If it is implemented it handles input across all controllers supported by steam - including the 360 controller and the Dual Shock 3/4, as well as anything they add in the future.

    It's quite difficult to explain, unfortunately, which is why I linked the videos - they do a very good job of explaining the concept and are only a few minutes long.

    Also, we're working on button rebinding for any input device at the moment (in order to support joysticks), so there should not be any need for integrating this api.

    That's a step in the right direction, and I guess you could consider it an alternate soluition. It could be more work, and have less features, but if it accomplishes the same thing I guess I can't really complain.
Sign In or Register to comment.