
The Steam Controller Configurator's Untapped Power - larsiusprime
http://www.gamasutra.com/blogs/LarsDoucet/20170125/289904/The_Steam_Controller_Configurators_Untapped_Power.php
======
jc4p
I'm still working my way through this article (after watching the video at the
beginning) but one random comment about the Steam Controller I want to drop
in:

I use the Steam Link + Steam Controller to play games from my PC in my home
office on my TV in my living room, a lot. I would say in the last year I've
spent at least 80-100 hours using my Steam Controller in different situations
and games.

It's hit or miss in many games, the best experience I've had with it is in
Civilization. In some games it's _so_ close to perfect but the game disables
mouse-input if you are using a controller, which means you can't use the Steam
Controller to its full capability.

All in all, I mostly use my Xbox controllers (connected to my PC via the
Microsoft adapter) to play on my Steam Link, mainly because the Steam
Controller just feels cheap.

When they first talked about open sourcing all the designs for it I was hoping
someone would take the specs and make a all-metal version of the controller,
with some more heft.

I love the Steam controller, but it just feels so cheap so that when any
growing-pains pains get in my way, it's one more negative against it compared
to just using my other controllers.

I may be part of a small niche market but I would gladly pay $150-$250 for a
good feeling controller that does exactly what the Steam Controller does. I
think if I paid a bit more for it and it felt more premium, I'd be more
invested in taking the time to configure it just right.

~~~
larsiusprime
> but the game disables mouse-input if you are using a controller, which means
> you can't use the Steam Controller to its full capability.

Yeah, the Valve team (and me, I'm the OP) are specifically pushing hard on
this -- an emerging best practice is to always allow simultaneous mouse &
gamepad input.

~~~
paulmd
This can have some hilarious outcomes though.

Specifically, I'm thinking of how Call of Duty Black Ops III gives controllers
a whole bunch of aim assist so they don't get dunked on by people using
mouse+keyboard. Guess what used to happen if you plugged in a controller and
played with the mouse?

In an ideal world, the fix would be to not give half your players an aimbot,
but you just know the product manager wouldn't go for that. Looks like they
ended up adding a patch that tries to figure out whether you're actually
_using_ the controller.

[https://www.reddit.com/r/blackops3/comments/44yfri/pc_aim_as...](https://www.reddit.com/r/blackops3/comments/44yfri/pc_aim_assist_removed_for_controllers/)

~~~
tornadoboy55
> In an ideal world, the fix would be to not give half your players an aimbot,
> but you just know the product manager wouldn't go for that. Looks like they
> ended up adding a patch that tries to figure out whether you're actually
> using the controller.

No, this is the ideal world. Mouse users have more manual accuracy, couch
gamers can still have fun vs. mouse users. Combating fringe cases (how many
people actually plug in a controller and a mouse at the same time..?) makes no
sense. This 'divide' worked like a charm on Titanfall.

~~~
clarry
> how many people actually plug in a controller and a mouse at the same time?

How many people actually unplug things when they, uh, don't need them for a
second or two?

I leave my monitor plugged. I leave my power cord plugged. I leave my keyboard
and mouse plugged. I leave my headphones plugged. I leave my hard drive
plugged. I leave my ethernet cable plugged. Why should I not leave my
controller plugged?

~~~
izacus
Your controller will turn on and off to save battery and when batteries run
dry and need to replace them.

There's nothing more frustrating than running out of batteries in a controller
and the game just locks you into mouse input... on a living room PC.

~~~
throwaway7767
Not all controllers run on batteries. You can get wired Xbox controllers for
example.

------
shmerl
The main concern raised, how can you use it without Steam?

This isn't very promising:

 _> Aside: my (personal!) hope is that the Steam Controller initiative will
eventually become a new universal -- and open -- standard for PC gaming input.
I'm definitely not speaking for Valve on this particular point as I have no
idea what their long term plans are._

Tying hardware to a distributor is a nasty practice. While there is now a
Steam-less driver for the controller[1], if developers will start using these
new APIs, how is it supposed to work for games released through GOG for
instance? Are Valve planning to release these APIs as FOSS and without tying
them to Steam? I'd say developers should not fall for this lock-in, until it
becomes truly open.

1\. [https://github.com/kozec/sc-controller](https://github.com/kozec/sc-
controller)

------
justinclift
Interesting. Wonder if the PS3 controller will be supported at some point?

I have an old PS3 I've not used in years (stopped using anything Sony when
they sued GeoHot). If the controllers for that work with Steam, it might be
worth digging them out and putting them to use. :)

 __* Update: Doing some basic DDG searching shows that it should work. I might
as well see if they still hold a charge. ;)

~~~
aaron-lebo
If you have the money to spare, the PS4 controller is better in almost every
way - triggers, concave sticks, etc.

~~~
callalex
The battery life of the DS3 was excellent, the ds4 is atrocious

~~~
karlgrz
Agreed.

------
Eridrus
With the not mentioned massive downside: it only works when you distribute
your game through Steam.

~~~
vollmond
I don't think that's accurate anymore. Here's a 4-month-old reddit thread
helping someone get an Origin game working with the SC.

You may have to _launch_ the game through Steam on your PC, but not
necessarily acquire it through the Steam distribution system.

edit: forgot the link:
[https://www.reddit.com/r/SteamController/comments/53ftxp/sup...](https://www.reddit.com/r/SteamController/comments/53ftxp/support_steam_and_nonsteam_games/)

~~~
paulmd
Another fun fact: you can set pretty much anything up as a non-steam game if
you want, which is good for doing things that the Steam Link doesn't normally
support. For example, you can set up VLC and use it to stream movies over to
your TV. Or a web browser would probably work too.

I would think the only exception would be things that use HDCP protection,
like maybe Netflix.

~~~
Crespyl
It's certainly not perfect, but I discovered just the other day that the "Big
Picture" web browser (embedded chromium, IIRC) does work with Netflix. I think
maybe you can't get 4k or 5.1 sound unless you're using Edge or the windows
store app though.

~~~
timdorr
You can test the video resolution you're getting from Netflix with this video:
[http://www.netflix.com/WiMovie/70136810](http://www.netflix.com/WiMovie/70136810)

The resolution and bitrate is burned in for each quality level they stream.
I'm topping out at 3000kbps/720p in Chrome. I don't have a Windows machine to
test on, though.

~~~
chickenfries
This is neat. How did you find out about this video?

~~~
timdorr
It's been around for a while. They actually have a whole slew of them, but
most don't have burned-in bitrate info:
[https://www.reddit.com/r/NetflixBestOf/comments/23m338/examp...](https://www.reddit.com/r/NetflixBestOf/comments/23m338/example_short_23976_2010_11m_test_your_netflix/cgyj6bx/)

~~~
chickenfries
Cool. Thanks for the link!

------
lewisl9029
> Aside: my (personal!) hope is that the Steam Controller initiative will
> eventually become a new universal -- and open -- standard for PC gaming
> input. I'm definitely not speaking for Valve on this particular point as I
> have no idea what their long term plans are.

That is my hope as well, but for that to happen the configurator probably
needs to become an independent application that's not tied to the Steam
client.

------
petetnt
The article is excellent and I recommend it to anyone playing games on a PC.

I also love my Steam Controller. The software was a little and miss but less
and less by the day. For example I had sometimes problems autoloading my
configs, now I don't even have to play attention to it. It just works. My mind
was blown when I configured the Steam controller to work as a Dolphin (Wii
Emulator) controller: super accurate pointer controls through the trackpad. I
mapped the motion controls to only work while holding the left hand pad; no
more missed motions. I didn't like certain button mappings, so I switched them
around: perfect. I wanted to use my PS3 controller instead and it worked out
of the box with nearly the same config.

Endless possibilities for tinkering, but also (almost every time) works out of
the box: just like good PC experience should be.

------
wincy
I like the idea of the steam controller. However, I have a 21 month old and
the Steam Controller survived for precisely two days before being broken. My
Xbox one controller and PS4 controllers have endured months of baby
shenanigans and are fine. It'll take them a few iterations before the can
match the quality and durability of the big players in the controller field.

~~~
chc
I have two Xbox One controllers that have developed such bad analog stick
drift that they're unusable, and I know other people (IRL, not random folks I
Googled) who have the same problem.

I also have a PS4 controller that completely stopped working because it fell
four feet onto a carpet.

Given how many dead controllers I've seen without even any baby to blame, I'm
not sure the Steam Controller necessarily that much worse.

~~~
maccard
That's incredibly bad luck. I've currently got 2 dualshock 4 controllers (the
launch ones with the known fault of the dodgy analog grip), anxbox 360
controller and an Xbox one controller that are used regularly. (Xbox one
controller used in work for ~4 hours a day maybe?) and the only issue aside
from the known DS4 fault is that my Xbox 360 cable needed the removable
connector replaced.

Mind you, I don't regularly drop my controllers from 4ft (1.3m) either, so I
can't comment on that.

------
digi_owl
While i like the idea of the controller, i dislike how everything gaming has
to be hogtied to the Steam client.

------
shanselman
I feel like the Steam Controller is destined to be the BetaMax of controllers.
It may be magic. You may love it and hold on to the idea that it's going to
win and take over the world.

I WANT to love my Steam Controller. I take it out weekly, try to configure
stuff for Skyrim, or Civ, or even just Doom, and I fail.

It feels cheap. It's plasticy and cheap. Until there's a Steam "Elite" that
doesn't feel like $10 of plastic, it's always gonna be Betamax - technically
superior, but losing the core market.

------
Neliquat
Wow, all these issues and I have been loving my steam controller with no
issues for a while now. I think expecting it to be a mouse or traditional
gamepad is the problem. It is its own interface, and a good one at that. It is
good enough to roughly approximate both, but isnt really either. Everyone
looking for a familiar experince is obviously going to complain.

------
clarry
Our input APIs are full of poor assumptions, lackluster abstractions and
arbitrary boundaries. It could've been fixed decades ago, but nobody seems to
have cared. Instead, we're retrofitting on top of retrofitting and it's not
clear that we'll ever replace the lower layers with a sane API instead of just
hiding the shit under yet another layer.

I should be able to bind any button that sends a signal my computer can
understand -- to any application, any action. It should not matter whether
it's a keyboard button, a mose button, a mose thumb button, a joystick button,
or my belly button... as long as a driver can detect the signal, the code to
make arbitrary buttons bindable is _trivial_ , yet people have just looked at
the physical objects the buttons are placed on, and then draw an API for each
object, with built in assumptions.

This is how we get mice that also report themselves as an USB keyboard, and
half the thumb buttons do not work in most applications (becaues they're
reported as mouse buttons by default and handling more than 3 or 5 mouse
buttons seems to require higher intelligence) and, well, the other half
overlap with keyboard keys I'd prefer to use for different functions.

It's nice that someone's working on this but I feel like this steam
configurator is yet another proprietary layer, a hack on top of hacks, and so
people just lazily depend on it.

~~~
dtech
I think you're oversimplifying things a bit. Yes, a lot of HID have a concept
of a simple button press/click/action which you can abstract away, but there
are many actions that don't directly map to that: function keys, lights,
analog inputs (i.e. thumbstick), rumble. And then you have the devices which
don't really map to buttons like trackpads, draw tablets, face/eye tracking
and Wii Mote-like devices.

Your argument is a bit like saying it's stupid we have all these Graphics
API's, it should be unified a long time ago since all they do is set pixels on
a monitor to a certain color.

~~~
clarry
Function keys are still just keys, there is nothing special about them. If
anything, the problems are caused precisely because of people thinking like
you, thinking that some input is somehow very special when it really isn't.
That's how we got where we are.

Yes, I focused on buttons only, because that is the lowest bar (and we've yet
to cross that).

Yes, I am fully aware that there are other kinds of inputs. We've had "analog"
inputs for decades. Sliders, joysticks, sensors, etcetra. There is nothing
difficult about them. All we need is a driver to understand the inputs,
optionally identify them with a name, symbol, intended purpose or default
function and other metadata, and export through an API that allows
applications to easily map things to arbitrary inputs. And allow the user to
filter inputs at a lower level; for example, if he finds that input device 6
has a nice input 17 that takes values in the range [0 to 255] that he'd like
to treat as a binary input that reads high in [0 to 126] range and otherwise
low, that should again be possible and very easy to do as long as the
underlying API is sane.

Rumble and force feedback, keyboard leds, gpios in output mode, etc. are
outputs, which could be exposed through a similar, arbitrarily mappable
mechanism.

We've had all these for decades, and we've yet to cross the lowest bar of
making all _simple_ buttons bindable everywhere through a uniform API.

It is not hard, nobody just wants to do it (at a low level, USB HID comes
surprisingly close! But then it has its struggles, what with the default
keyboard mode that requires a bitfield for modifiers and bytes for other
scancodes), and in the name of compatibility, we just keep piling hacks on top
of legacy. And my mouse's thumb buttons are still useless most of the time.

~~~
buzzybee
The standard already exists in the pro audio world, and it's called MIDI. It
supports on and off events with velocity, controllers with ranges, multiple
channels, real-time synchronization, sequencing, daisy-chaining, full-duplex
bidirectional behavior. And every once in a long while a game appears that
supports MIDI input for whatever reason. I once made a Pong paddle prototype
with my phone running a MIDI controller app, sending modulation wheel data to
the computer to move the paddle around. As well, drivers can turn game
controllers into MIDI devices.

The thing that's missing is that manufacturers and developers just aren't on
the same page here - the protocols exist, and with pretty good software
support, even(there's a Web MIDI, and MIDI for phones in various forms). The
major modes of incompatibility - e.g. velocity ranges that are biased and need
remapping, unconventional behaviors around SysEx messages - are well-known.
It's just a little bit unaesthetic that a game controller would send a "Note
On" to press a button when it isn't doing anything with notes, really. And it
doesn't map to the tradition of arcade hardware being a simple memory-mapping
of button state, but I doubt most game controllers now are doing that
internally.

Regardless, game controllers don't send MIDI messages by default. And yeah,
MIDI is old, and has a few hard design limits, and one could make a case for
looking at another standard like Open Sound Control. But the basic problem of
button mapping has been more than solved for a long time, so count me as one
who is irritated at the idea that games are special here.

~~~
clarry
> And yeah, MIDI is old, and has a few hard design limits, and one could make
> a case for looking at another standard like Open Sound Control.

Yeah, I was actually thinking of MIDI (and USB) when I wrote the above (I have
a full size midi master keyboard next to my deskop). At a certain level, we
have pretty much all we need, and if the limitations of MIDI were a problem
for some input devices (and they arguably are), it'd still be quite easy to
spec a system that allows just about any device imaginable. Again, USB HID
spec comes really close.

The real problem is just the lack of good, widespread, cross-platform APIs
that steer applications into doing the right thing. Now we have APIs that
encourage the application to look for keyboard events, then mouse events, then
joystick events, and what else (and they implementations may lack support for
other devices even if the underlying OS-level API made support a no-brainer).

Instead, they should just look for events, any events that have an applicable
type. (Whether implemented through callbacks or polling the state of
interesting inputs is merely an implementation detail) Then the (optional)
metadata can be used for establishing a default mapping. When the API is
designed right, the user can always override any mapping with whatever he
wants, or filter inputs to change the response of an analogue device, perhaps
nonlinearizing it or coercing it to a binary input. And if the application
provides its built-in input configurator, again using the well-designed API,
the ability to bind anything to anything on anything just comes automatically.
The application developer should never need to know that device 7 input 2 is
actually wired to my belly button. :) And that the axes I use for aiming are
actually sliders on my MIDI keyboard.

------
michaelbuddy
man, the steam controllers shape, I just don't get it. I don't see how they
landed on the shape of the handholds and all the angles in it. It's operation
I'm happy with, though the dongle has proved to be easy to break.

I was bummed on the controller, till I saw you could aim by moving the entire
controller around like an air mouse. That ended up being a fresh control
scheme for me, though I know the PS4 controller can do it for on-screen
keyboard use.

Would love to see some revised shapes to it. I really dig how it can move the
mouse when the software is on even on the desktop. If you don't midn keeping
steam running it's a fairly capable to surf with. Though admittedly I haven't
done everything.

It took a long time for it to come out. I wonder if they are working on a new
generation in secret because they know they might not sell as many right now.

I think it feels premium, but the shape is not ergonomic to me whatsoever.

------
okreallywtf
I'm typically a keyboard and mouse gamer but I do really like the steam
controller. I played psychonauts with it all the way through (having used
keyboard and mouse the first time I played it) and I loved it. I didn't do
massive customization but I did play with it and I have so far been impressed
how good a lot of the default configurations have been.

------
ezconnect
I bought this controller but I haven't used it much because everything feels
different. The buttons are small and the depth of travel is so deep compared
to other common controllers.

------
llukas
I feel like I need PhD for steam controller configuration.

There should be some companion AI app to speed out process of setting this up.
;)

~~~
nerflad
> I feel like I need a PhD for steam controller configuration.

If you think that's bad, try using their map editor[0].

[0][https://developer.valvesoftware.com/wiki/Valve_Hammer_Editor](https://developer.valvesoftware.com/wiki/Valve_Hammer_Editor)

------
ChrisClark
That is a very in depth article. Seems like everything you'd ever need to know
is there.

------
randomdrake
I was extremely excited to try out the Steam Controller. I've been a fan of
Valve and Steam for a very, very long time. It was a hugely fantastic letdown
on every single front.

I was hoping that purchasing a Steam Controller would let me play some of the
games that were clearly controller-based like Rocket League, or other action-
type games not particularly well-suited for keyboard and mouse.

The controller feels plasticky, poorly balanced, and fragile. Give it a gentle
shake and you can actually hear the buttons moving around.

Every single game I wanted to play required configuration of some sort or
simply didn't work. I even bought games like Rocket League specifically to
make use of the controller.

Instead of just working. I had to unplug the USB dongle a couple of times,
setup some manual configuration, only to have it still not work, have to be
blown all away and reset back to default. It eventually worked... until the
next time I went to play and sure as hell: I had to restart Steam a couple
times, re-plug in the USB dongle a few times, and eventually the controller
was properly identified and working.

The sheer number of _incorrect_ options available for this thing make it
useless. Should it emulate keyboard? Is it a gamepad? Joystick? Mouse and
gamepad? Mouse and joystick?

I lamented my purchase and wished I would've bought a more standard controller
like an Xbox controller or a PlayStation controller as this was a nightmare.

The article appears to be heading down the right track, with trying to get
developers on board with mapping actions instead of buttons, but I simply
don't have the time to tinker with something like a controller. When I want to
play a video game, I want to sit and play a video game.

I spoked to some of my game development friends about it and every one of them
said that controller and device support was among one of the most mind-
numbingly frustrating and difficult parts of cross-platform development.

The last time I tried the Steam Controller, I fired it up and none of it
worked. I could see the controller was detected, but nothing worked. The mouse
pad, buttons, controls, nothing. This had happened so many times before. I
installed the beta version of Steam, browsed forums for fixes, and everything.

I tried very hard to like this peripheral but it was a complete failure. I'm
very hesitant to try _even more_ configuration options considering how much
time I sunk into it last time. I literally gave up on having a controller-
based gaming experience with my computer, got a PS4 for the holidays, and
haven't looked back.

I still play games on my computer, but I gave up on the dream of having a nice
controller-based gaming experience on my computer.

~~~
xanderstrike
I've had no such troubles. I play Rocket League with my steam controller
regularly. Sounds like you might have gotten a bad one, did you contact
support?

~~~
randomdrake
As I mentioned, once things were configured in _a_ game, it worked mostly. But
for no good reason, would fail sometimes either at detection, or if I turned
the controller on _before_ opening Steam in big picture mode, it would also
often cause conflicts with it not knowing if it was a mouse, or a game pad, or
a controller, or what it was supposed to be.

There were enough forum posts around with folks having similar issues, that I
guess I just assumed you had to be willing to spend time tinkering a lot if
you wanted it to work, and thought contacting support would end up being an
even larger time sink.

Those are just a couple of examples. Attempting other games would end up with
incorrect mappings, incorrect button listings, not working, and more.

Very inconsistent and unreliable.

