Kinaesthetics: Beyond Control

Byron asked me to do a talk for the Indie Games Collective. So I did this.

I think I don’t totally stand by my first answer, but I do believe that game design is a broad enough term to feel fairly useless as an awards category. A little more light shed on the development process should hopefully allow people to differentiate the emerging sub-disciplines of design.

(I really like the misinterpreted idea that a game can win an award for being about fellowship.)


Wassily Kandinsky joined the Bauhaus in 1922. There, he hung a poster, with a square, circle, and triangle. The poster asked passing students “what is the correct colour of each shape?”. Of course, there is no objectively correct answer, but it does raise the idea that for each person who looks at these primitive shapes, a particular colour makes more sense than any other (for me, Blue Square, Green Circle, Yellow Triangle. Don’t ask me why. Changes depending on my mood!). Continue reading

Mouse Sampling in Unity3d

(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

DeadZones: Part Six

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.

Continue reading

DeadZones: Part Five

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?

Continue reading

DeadZones: Part Four

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.

Continue reading

DeadZones: Part Three

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.

Continue reading