What VR interaction design keeps getting wrong
Ten years of consumer VR, and the same handful of mistakes.
I have been building for VR since 2016 – the year the Rift shipped – and shipping it since 2018. Some mistakes have been made continuously that entire time. Here are the ones I keep meeting.
The player’s body is an input device you do not control
This is the root of most of it.
In a flat game, input arrives through a device you specified. In VR, input arrives through a person, in a room, who will do things your game did not offer. They will stand up when you assumed they were seated. They will physically walk into a wall you did not model. They will put their hand through a table. The headset will lose tracking because someone turned a light on.
None of these are edge cases. They are Tuesday. A VR player controller that does not explicitly handle tracking loss, physical height change and recalibration is not finished, and every one of those is a system, not a check.
Discontinuous movement breaks code that has no idea VR exists
Here is a concrete one, and it is a whole category rather than a single bug.
Trigger volumes assume things move continuously. Something enters, something leaves, you get both callbacks. Teleport locomotion violates that assumption: the player ceases to be in one place and begins to be in another, with nothing in between. In the framework I was building on, teleporting out of a volume never fired the exit callback at all. Whatever that volume was doing – a slow zone, a damage region, an audio state, a scripted trigger – stayed on.
The bug is not really in the teleporter. It is that a large amount of engine and middleware code was written on the assumption that things move. Every time you add a mode of movement that is not movement, you should ask what else believed otherwise.
Left-handed support is an architectural decision, not a setting
Roughly one person in ten is left-handed, and most VR games treat them as an afterthought or not at all.
The reason is that doing it properly is not a toggle. Every weapon, tool, holster, socket and grab point needs a mirrored counterpart, and mechanisms with real handedness – a break action, a pump, a bolt – need their offsets recaptured after the mirror or they animate wrong. Done at the start it is a modest constraint on how you author interactive objects. Retrofitted at the end it is enormous, which is why it usually does not happen.
Decide on day one. It is one of very few things in this medium that is genuinely cheap early and genuinely expensive late.