Friday, January 8, 2016

A Very Important Message

Hello.  Today, I'd like to talk about a very important issue in nature conservancy: Ancient Crab.  This gentle creature, long thought to bring good luck, is facing an uncertain future.  Due to changing ecological conditions, Ancient Crab is being forced to leave its native habitat and venture into the unknown.

Changing water levels are primarily to blame.  If no action is taken soon, we may never see Ancient Crab in the wild again.  And what kind of world would that be?

Thankfully, there is a way to help.  Raising awareness of Ancient Crab's plight is the first step.  To do so, simply place Ancient Crab in your Magic: The Gathering deck, and then use that deck in the course of regular play.  When you play Ancient Crab from your hand for the first time, take the opportunity to introduce the card and the issues surrounding this persecuted creature to the other players.  Be sure to read the flavor text out loud.

With your help, and the support of others, we can save Ancient Crab from disappearing into the history books as a mere footnote: Ancient Crab, n.  A creature said to have once inhabited the Halimar basin.  Whereabouts unknown.  The time to act is now, before Ancient Crab has faded from the public's consciousness and into the realm of obscurity inhabited by all doomed creatures.

Join us.  Help preserve Ancient Crab for future generations.  Play Ancient Crab today.

  • Cards representing Ancient Crab will be available on January 15th, midnight, at the earliest. See your local card shop for details.
  • Ancient Crab may not be legal in all Magic: The Gathering formats.  See the Wizards of the Coast sanctioned format list for more information.
  • Playing Ancient Crab in a format where it is not legal or in quantities that violate deck construction regulations should be undertaken with full knowledge of the risks involved.  Consult a sanctioned Magic: The Gathering judge for more information.
  • This message is brought to you by the Friends of Halimar Basin.

Tuesday, January 5, 2016

New Toy: Steam Controller

I was given a Steam Controller for Christmas this year, and given my obsession with input devices, I thought it could be helpful to write up a review.  I use gamepads above all other input devices on my computer, both for general desktop navigation and gaming, so I was excited to try one designed with PC in mind.

Steam Controller

Controller Design & Comparison w/ XBox 360 Gamepad

In terms of buttons, the Steam Controller has everything the XBox 360 controller (my default) has, with the exception of the touchpads replacing the D-Pad and right joystick.  The location of the left joystick and buttons is also closer to the center rather than on the edges, and the buttons themselves are pretty small. 

Side by side, Steam Controller vs. XBox 360

It also has two new buttons: the squeeze triggers.  These are built into the battery cover, on the underside of the handles.  They seem to be best suited as modifier keys, which change the function of other inputs temporarily.

The shoulder buttons, triggers, and squeeze buttons (part of the battery cover).

The placement of the X/Y/B/A buttons and joystick, further towards the center, seems to give favor to the touchpads.  This positioning is the most obvious sign that the touchpads are really the focus of this device, a fact is also represented physically in the shape of the controller: it's concave, instead of convex -- which makes more sense for a touchpad.

Convex vs. Concave

As a result, the touchpads are large and easy to reach with each thumb.  You can get to the full range of space without moving your hands much, thanks to the concave shape.  The touchpads can also be "clicked" by depressing them, although this requires so much force that it often interferes with aiming, so I question whether I will ever make use of the touchpad clicking.

One thing I noticed upon plugging in the receiver and booting up the controller are the crazy haptics.  Haptics are a bit of audio and physical feedback, little "beep" sounds and some vibration every time you click, use a touchpad, or press a button.  The haptics are really annoying and don't seem to serve any useful purpose.  Thankfully, they can be disabled, though they default to chirping loudly every time you use the touchpad.

Speaking of changing settings, making this controller work for you involves a LOT of customization, which is what I dove into next.

Functionality and Customization

The Steam Controller configuration interface is pretty extensive.  You can change every button, and the touchpad and joystick inputs can be switched to emulate mouse, keyboard, joystick, scroll wheels -- you name it.  You can tell the joystick to be a mouse, or the mouse to be a joystick. You can set up mode-switching to dynamically turn a touchpad into a mouse, or the joystick into buttons temporarily.

Main Config Screen

The interface is visually intuitive, and I generally found that if something annoyed me, there was a way to change it.  For example, although the shoulder trigger buttons are pretty firm and require a lot of force to click, you can customize them to perform actions on soft pulls as well, and customize the threshold for the soft pull to trigger. 

Touchpad input/output options.
This level of customization is awesome, and very helpful for a controller designed to work with games that have no idea what a controller is.  However, it can require a lot of work to dig through the settings and find the one you want to change.

The rabbit hole goes deep: I doubt I will be able to parse exactly what "Output Anti-Deadzone Buffer" represents without a lot of trial and error, no matter how much descriptive text they include.  In that respect, and in a very PC way, a lot of experimentation will be required to get things working in games with wildly different control setups.

That's a lot of text to tell you what one slider does.

One of the cooler features which may eventually alleviate this issue is the ability to use community created control profiles, and to make your own configurations public for others to use.  I think this could be a tremendous time saver in the future once more people have designed configs for each game. 

Community Configuration Profiles

Every game I played had at least one or two community profiles, although many of them were still incomplete and needed editing.  Still, there's a lot of potential there, and even a way for folks to make a name for themselves by creating good configurations and sharing them widely.

At this point, I also observed a big missing feature: you can't currently copy your OWN configuration from one game to use in another game.  This is pretty crucial, and I imagine this would be easy to fix by adding a "Personal Configuration Library" category to the above screen that shows profiles from all your games.

On the note of configuration swapping, one of the most important pieces of software I use in bending the XBox 360 controller to my will is Joy2Key, which allows me to reprogram my 360 to behave differently in different games, emulate keyboard presses, etc.  It can be set up to switch profiles when certain games are active, and return to a standard profile when in Windows.  It's the only reason I'm able to use a gamepad for so many different types of games.

I was hoping to see similar functionality to Joy2Key with the Steam Controller, and it does this by default with Steam games - each game has its own independent configuration profile, which is saved by Steam.  However, the controller isn't as sophisticated if the game can't run with the Steam overlay.  It has some basic functionality without Steam, but dynamic profile changing only works with the overlay.  This means that for some non-Steam games, such as older games or games that run via a launcher where the overlay doesn't work, you have only one profile: the "Desktop" profile.

In-Game Testing

I tested with several games to try and gauge the controller's adaptability, including games with simple control layouts and games with more complex joystick or mouse-focused controls.

Analog 2D Shooter: Luftrausers

Luftrausers is a very simple accuracy and reflex based 2D shooter.  There are only four controls: Up, Left, Right, and Shoot.  I ran this game entirely from within Steam.

I tried playing this game using the joystick, and using the touchpad.  For the joystick method, I basically reconfigured the joystick to act like a directional D-Pad (arrow keys), and it seemed to work just fine.  I did feel that the position of the joystick, nearer the middle of the controller, made it hard to get correct vertical angle, and I was biased towards turning right.  Increasing the deadzone size and changing it to a "cross" shaped deadzone helped with this.

To test out the left touchpad, I configured it to act like a directional pad (it does, after all, have a D-Pad indentation).  This worked fine, although it takes a lot of getting used to the lack of physical feedback.  I felt like the joystick was more predictable.  The cross hatch pattern deadzone seemed best for touchpad directional movement. 

Overall the controller performed fine with this simple setup, though I can't say the controller really shines with basic analog directional controls.  All that fidelity goes to waste.

On to something more meaty...

Third-person RPG: The Witcher 3

The Witcher 3 is a PC and console RPG with a lot of keybindings, and a traditional third-person movement system: one joystick controls movement, and one joystick controls the camera.  This is a more consoley kind of layout, and the game already supports XBox input by default, so it's designed to work with a gamepad.  I was curious to see how the Steam Controller would fit this role, given it has sacrificed its second joystick. 

I also own The Witcher 3 through GoG, not through Steam, so this was an opportunity to test the non-Steam performance (both with the overlay, and without).

I tried a few different methods of control for this game: XBox emulation with Steam overlay, XBox emulation without Steam overlay, and keyboard emulation.  For the first method, I added The Witcher 3 to Steam as a non-Steam game, and ran it with the Steam overlay (which require a little troubleshooting & deleting a few .dll files that were interfering with the overlay).  This allows the Steam Controller to dynamically load and use a unique custom configuration for the game -- basically, to treat it like a Steam game.

With the overlay, the 360 emulation worked flawlessly, and after a few config changes was treating the controller as an XBox 360 input.  I say flawlessly because it successfully behaved as a 360 controller; my actual play experience was not quite flawless.  That missing joystick really makes a difference.  Movement was still controlled by the left joystick, so that was no problem.  However, the camera was now controlled by a touchpad, and I discovered that touchpads are not so great for steady, constant camera movement.  The touchpad seemed determined to behave either sluggishly or spastically and it was very hard to handle the camera in combat initially.

Finally I discovered an input option called "Joystick Mouse", which, according to the configuration tool, outputs as a joystick but tries to mimic the mouse's accuracy.  This seemed to work the best of all the options for making the touchpad usable where it would normally have been treated as a joystick.  The response was quick and accurate, and slid around much less.  It felt more like mouselook, but the game still treated it as joystick input.

I also wanted to try running the game entirely without the Steam overlay to see how the controller would work.  To accomplish this, I had to tell the controller to behave like an Xbox controller when using the "Desktop" configuration, which meant I couldn't use it to navigate on the desktop (although I had to leave Steam running or the desktop configuration would revert to the factory default). I launched the game from GOG, with no Steam overlay.  Unfortunately, under this method, I wasn't able to get the game to recognize the Steam Controller as a 360 gamepad at all, even though it was emulating the XBox inputs. Without the overlay, it seems some control emulations just don't work.

Finally, I experimented a little with keyboard emulation - trying to fully represent a mouse and keyboard with the controller.  Although this did work without the Steam overlay, the sheer quantity of keybindings made this an imposing task to set up completely, and I ended up abandoning this effort.

The issue is mainly that TW3 treats gamepad controls as contextual and alters the controls for combat, exploration, swimming, etc.   The masochistic keyboard jockey that is the PC gamer, on the other hand, likes to have every single control available at all times -- so there's no contextualizing. You never know when you'll want to jump around like an idiot in the middle of a sword fight, after all.  Hey, I don't judge -- I wish my hands could take KB/Mouse abuse all day.  But, I decided there was probably a better game to devote the time to binding 50+ keys.

Overall, although the configurability of the Steam Controller allowed it to provide all the required inputs, and even come close to the performance of an XBox controller, I really missed that 2nd joystick for camera control in this game.  A joystick has huge advantages when continuous smooth input is required, and touchpads are not very good at emulating this kind of input -- there is just no way to feel secure that the touchpad is going to generate the right amount of movement when you're not using a touch-and-drag system.

Revenge of the Titans
Pointer-focused Strategy: Revenge of the Titans

I figured this would be a stronger test of the controller's touchpad and keyboard emulation.  Can it perform where a mouse and keyboard would normally be a requirement, in a tower defense style strategy game?

Right away, Steam let me that the game definitely did NOT support gamepads.  However, I was assured that I could still play the game thanks to my trusty Steam Controller.  Hooray!

Some assembly required.

The configuration had to be built up from scratch, and this is where I missed that I couldn't import configurations from similar games; annoying, as all the work I put into customizing one can't be copied to another game easily.  The community configurations for the game were also quite limited, and all of the ones I tested were incomplete.  Though, to be fair, the game has a lot of keybindings (one for every buildable object, plus commands, 50+ total).

However, as I was browsing the community configs, I did discover a promising input function called "touch menu", which turned out to be very useful.  This allows you to create menus full of commands which can be activated via moving your finger across the touchpad and clicking it.

Touch menu in-game, lower left, overlaid via Steam interface (note: this screenshot is not from ROTT)

The touch menu really adds a lot of potential keypresses to the gamepad - the menu can support anywhere from two to two dozen entries.  A great option for a lot of games, I imagine.  It definitely allowed me to start adding keys for commands and buildings in ROTT and have an easier time than clicking on every single object I wanted to build.  And the touchpad pointer was definitely much more responsive and accurate than using a gamepad joystick to steer the mouse around.  It's not the same as a mouse, but it's pretty close.

At this point I started to realize just how much work it is to build things up from scratch, and just how many keyboard commands a simple game like Revenge of the Titans has.  Not something you think about until you try and map every single one of them out, one at a time.

First-Person Puzzle/Shooter: Anti-chamber

I actually don't play many FPS games.  However, given the controller was feeling more and more like it was built for mouselook (move mouse = aim gun), I decided I had to test at least one.  So I chose a puzzle FPS I had yet to play in my Steam library: Anti-chamber.

Again, I was prompted to configure the controller on first bootup, as it did not have default gamepad support.  Again, community configurations were limited.  However, the controls for this game were much simpler than TW3 or ROTT's massive libraries of actions, so it didn't take long to build something that worked.

After a few short play sessions, it was clear to me that the first-person shooter is probably what the controller was made for. The sensitivity of the touchpad makes for much greater accuracy than a joystick, which is important when the camera aims your weapon. Additionally, in a first-person shooter, you are usually more concerned about aiming within a narrow corridor directly ahead of you. You don't need to be smooth when turning quickly -- all that matters is accuracy.  You also don't spin the camera in slow arcs very often (unlike a 3rd person game), which reduces some of the downside of reaching the edge of the touchpad with your finger and having to re-position in the middle.

Desktop Control

The last thing I wanted to look at was using the controller just to navigate around on the desktop.  One of the main draws to a controller with mouse emulation is being able to use it to surf the web and use basic programs, especially if you find as I do that controllers are much more ergonomic than keyboard/mouse. 

My impression from general use over a week has been that this is another of the controller's stronger selling points.  The touchpads give much finer control over mouse functions than a joystick would, and with much less movement of your arms and hands than a mouse and keyboard would.  The touchpad configurations also allow for both mouse movement and "mouse region" style control (mouse region maps the touchpad to the entire screen, so you can jump far distances easily).

Radial Keyboard, Joystick plus XYBA Buttons
Right now, the main issue I'd like to see fixed is that there's no way to use the cool "radial keyboard" that allows you to type within Steam outside of Steam.  I think enabling this for non-Steam use somehow would add a lot of value to the controller.  It's a cool system and one I wouldn't mind mastering to avoid the need to switch from gamepad to keyboard constantly, for example when searching for short keywords.

Another improvement would be for the controller to be less tethered to Steam.  Yes, I realize it's a "Steam Controller", but It's very usable for general mouse based tasks in Windows, and I'd really like to see dynamic profiles for the active window, not just Steam overlay enabled games.


Overall Impressions

There is a lot that I like about the controller.  I really like how customizable it is, especially with respect to the touchpads. I like the touchpads for mouse based tasks and games, thanks to the accuracy and customization options.  I like the squeeze triggers as extra buttons.  I like the Steam-based dynamic profile saving/loading and community profile sharing (which will hopefully improve in the future as more people are using the controller),

Still, I am torn about recommending it wholeheartedly.  The philosophy here is definitely not simplicity, as the "Play any Steam game from the comfort of your couch" slogan seems to imply.  The philosophy is flexibility.  

Many of the issues I saw, such as the inability to copy your own configurations, can be solved easily through patching, but the device's complexity is tied to something that can't be changed: the sheer volume of Steam games out there with vastly diverse control systems.  Games which are designed to have a library of potential actions available to the player, sub-menus and item hotkeys and all kinds of movements and reactions, will require a real time investment to get working.  Some of the settings can be hard to parse as well, though perhaps more infographics would help with this.

That said, it's true that it's much easier to configure the controller in the middle of a play session when compared to what I'm used to; alt-tabbing, picking up a keyboard, changing settings in another program, then alt-tabbing back in.  Here, there is some simplicity.  It's really awesome to be able to press the Steam button on the controller and be changing the configuration in a few seconds, without ever leaving the game or putting down the controller.

In the end, I think whether the device will work for you depends both on how patient you are, and on the types of games you play.  The touchpad's accuracy with quick movements over a joystick make it ideal in mouselook or pointer focused games, and the configuration challenge is mitigated if the game has only a small number of keybindings.  It struggles in the area of steady input, such as 3rd person camera controls, and in games with many keybindings, as it will require a great deal of fiddling to set up each one up correctly.

I can imagine someone who really likes to dig into a game, set everything up just right, and then spend many at least several hours playing will get along well with this device.  People who spend less time in a wider variety of games and want things to just work immediately are probably not going to be as well served by the Steam Controller, unless the games have extremely simple controls or the community configurations really start to come through.

From my perspective, this is a highly customizable input device which is unlike most other gamepads available on the market, and it does outperform my previous gamepad solutions in a few critical areas.  It also faces some challenges, but, for its flexibility and unique design, I think it's capable of serving a valuable role in the Steam-junkie's input arsenal.