(This is going to be a bit Unity3D heavy, but should point at how polling rates are a technological constraint which can affect gameplay design – these are real considerations when trying to get the best feeling game possible, and it’s even worth avoiding certain kinds of games if you can’t be sure of the frequency of your interface’s data).
I’m working on some home-brew which centers around mouse movement for both camera, and gameplay. I use the physics system to determine game objects’ proximity in a lot of cases (i.e. bullets hitting volumes), so I have to use FixedUpdate to push gameplay forward. But I also want smooth mouse based camera movement – ideally as fast as the game can render. My camera also follows around the physics object. But physics and rendering update at different rates. Continue reading
We’re now making the most of the useful range of inputs from the controller, cutting off the noisey extremities of input. At this point, I feel like we’re at the “good enough” point for most games which need analogue input. Depending on the design, you might want to go a step further to improve the feel, though.
Currently we have a deflection magnitude vs. output magnitude which looks like this (in red. Old, scribbled out offensive crap in black):
- The deadzone defines the beginning of “zero” output, and the gradient increases such that max deflection is max output.
In the last section, we’d been forced to make the least-worst decision in terms of getting the most out of our input ranges by capping off the maximum throw of the stick. It looks and (mostly) feels like it’s used to define a direction and and a magnitude, as opposed to two separate axes clamped off by a circle (which is closer to the truth).
The hardware represents neither of these paradigms perfectly, so we’ve made the choice to go with what a user perceives that the input allows. The X & Y axis information available can absolutely give us an approximation of this mental model of the stick’s input, but in cleaning up the maximum and minimum siginals (the upper and lower DeadZones), we’ve created another problem: one of continuity.
Oh look! There's a a huge jump up in output around the DeadZone. Who knew?
This part of the deadzones review is a little bit of a sojourn into a mistake I made. Apart from anything else, I feel like developers don’t air their failures enough, even though, for other developers, they must surely be more useful knowledge than the self evident successes: it seems somewhat immoral to try to simply copy successes without working through the hidden problems yourself, but equally immoral to not pass on warnings of danger ahead.
So, indulge me here as I try to see, with a more analytic hat on, what exactly was going on.
Last time we found that although we could stop the wavering of our character when we released our controls, we also introduced a lot of weird feeling Kinaesthetic Artifacts as a result of deadzoning our axes independent of one another.
These “square” deadzones do have their uses (in console FPS games where players mean to sweep their aim perfectly across the horizon, but, when using a “purer” signal, would actually find their aim wavering up and down as they tried. This is one of the subtler forms of aim assistance going on in most console FPS games*) but nothing about the visibly circular restrictive outer limit of the XBox controller screams “make me stick to cardinal directions!”.
Fig 1. A, B, C, D, E, F, G, H & I: These are all lines.
It stands to reason that a circular input wants to result in a circular output: the affordances of the interface should be matched by the expression space inside the game itself. In our example, square dead zones didn’t work in our favour, so let’s try Circular Dead Zones instead.
Previously on DeadZone: In The Part One, our capsule man couldn’t sit still thinking of all the fun he could be having in Part The Two. Little did he know that we added a signal threshold, locked him down to the ground! Welcome, to DeadZone: The Part Two: The Square DeadZone: Colon Central.
If you value your fingers, may I humbly suggest a keyboard with Cherry Switches, i.e. DasKeyboard .com
Apologies in advance to anyone who feels this set of articles is a bit obvious. DeadZones, right? If you don’t have them confused them with a Jason Statham movie, you know what they are, and why they’re there. They’re self evident. Right?
Well, yes, admittedly yes. Mostly. Dealing with deadzones is so straightforward in practice that no-one really ends up talking about the subtleties. There are like, 5 subtleties, I’m guessing. Missing these subtleties creates the creeping irritations which undermine a game. So subtle are these that most players won’t be able to articulate why they’ve not been able to engage fully with the game.
Guerrilla Games QA hard at work on KillZone 2 controls. Sure, they look happy. But they are Dutch.
In the Spirit of “Do, Don’t show”, I’d like to open this series on the XBox 360 controller to let you feel what’s really happening when you use a half decent joystick. And the truth is, what goes on under the hood is uglier than you think. After this, you’re going to run up and hug the first developer you know who has gotten their control scheme just right, and whisper tearfully in their ear “I’m so sorry… I didn’t know!” Continue reading