"If your simulation is trying to deal with an unrestrained, tracked humanoid you are going to lose, each and every time."
When I was very young, I read a story by Willard Price that featured a scene in which the main characters try to eat lunch while sitting at the bottom of the Pacific Ocean. They learn how difficult even simple tasks are to perform when your operating in an alien environment:
"Hal and Skink followed his example, and the process was repeated until all the sausages were gone. But there still remained the puzzling problem of how to drink a bottle of Coca-Cola ten fathoms beneath the sea.
When Dr Bake prised off the cap of his bottle a strange thing happened. Since the pressure outside was so much greater than that inside the bottle, sea water immediately entered and compressed the contents. But a little sea water did no harm, and Dr Blake pressed the mouth of the bottle to his lips.
By breathing out into the bottle he displaced the contents which thereupon flowed into his mouth. He drained the bottle. When he took it from his lips the sea water filled it with a sudden thud. Hal and Skink faithfully followed the same procedure."
I am often reminded of this recently when reviewing the current state of VR development. What a tremendous challenge we've chosen to pursue . It makes an underwater meal look very easy in comparison.
Thanks to John Carmack,. Michel Abrash, Palmer Luckey, Valve, Oculus and a great many others, I feel that we are well on our way at this point at getting where we need to go on the visual side of the equation. We've gathered the steel and forged a sword that cuts - now all that remains is to sharpen the blade.
Meanwhile many are turning their attention to attempting to give us our hands and feet in the virtual space. I'm a little less optimistic on this side of things at the moment.
Here's the simple problem: If you developed an excellent 1:1, low latency tracking system for hands, imagine how potentially unsatisfying it would be to interact with a 1x1 foot virtual cube. Your real hands, unrestrained by the rules of the virtual world cannot be kept one foot apart stay apart while clutching the sides of the box. This means that your simulated hands will:
I don't feel that any of these options hold a lot of promise, nothing that would feel particularly satisfying at any rate. You also need to resign yourself to the knowledge that the end user will purposely try to poke holes in your simulation, they won't work with you, they will pick your world apart given the chance.
If your simulation is trying to deal with an unrestrained, tracked humanoid you are going to lose, each and every time.
So, what to do?
Let's go back to the example of having lunch under the sea for a moment. Humans underwater face a number of challenges:
and so on...
Each one of these tools represent a compromise that we've made when operating underwater, we accept that you can't take a stroll underwater, so we adapted, learned from the fish and adopted fins. Fins are great, they make a lot of sense underwater and allow us to move in a way that works with, not against, our surroundings.
I think, for the present, a similar tact needs to be considered for VR. Lean heavily on its strengths (of which there are many...) and choose your battles wisely in terms of what aspects of reality you are trying to simulate.
As the DK2 have rolled in, we've seen a wave of users equipping their workstations with flight sticks and steering wheels. This is interesting. Last time I saw joysticks this popular was about 20 years ago.
There's a good reason for this though, these devices can be represented 1:1 in the VR world. You turn the wheel, the wheel in VR moves, you pull back on the throttle, your virtual throttle responds in kind and so much the better if these virtual controls are attached to your virtual hands. There's no cheating here, the wheel feels solid in you hands and it moves as it should in VR. This is inherently very satisfying to the user.
Which of course, very quickly brings me to this:
This is the Powerloader from Aliens as I expect any visitor to the blog to know, and I think it makes a very good target for a credible VR experience if you absolutely insist on attempting to track limbs. Use 3-axis motion sensing to track arm and leg movement but DON'T attempt to simulate the user's limbs directly interacting with the environment. You need a layer of abstraction between your world and the user's movements.
If they try to move their arm through the floor, they are met with a solid CLANG of the metal arm colliding with the floor. The user will understand and they won't feel cheated, it will feel very real. They are retrained by the limits of the device they are simulated as controlling. You could still feel VERY free as a user while using this simulation, but the designer has a "sanity check" when trying to constrain the limits of what the user can do with their limbs.
The user can still work out plenty of ways to attempt to violate the position of their arms with the what they are seeing in the simulation, but in the user's mind, the reason why it does not work is because of a limit of the machine they are controlling rather than a fault in the reality of the simulated world that the are trying to believe in. You might want to reread that last awkwardly written sentence, because it really sums up what I'm trying to get across here:
As a developer, give yourself a break and build in some constraints into your world that fit with the narrative of the environment. One of the last things you want to try to do is simulate unbridled reality. Aim to simulate a tiny slice and then do it very, very well.
VR users always need a layer of abstraction between them and the environment. Allow them to manipulate a mechanism, be it a car, tank or exoskeleton but don't dare let them actually try to interact with the world 1:1 with their own limbs without some kind mechanism between them and the world.
You are no longer developers, you are magicians, you need to get your audience to suspend their disbelief and like any good magician, you do this by carefully limiting what they can see and do at all times.
If anyone wants to say hi, I can been reached on Twitter at @ID_R_McGregor), or you link to me in Google+ if you happen to actually have a Google+ account that you surprisingly use for Google+ things.