Into the Rift

Screen Shot 2013-07-18 at 12.10.37 AM

I’ve taken a little time off from working on MMORPG Tycoon 2 over the past few days, and have been playing with an Oculus Rift VR headset dev kit, adding native support for it to the VectorStorm engine.

It’s not in the VectorStorm trunk yet, but I’ve put it into a special “rift” branch which is available on GitHub if anyone wants to try it out or just check out the code.  If a VectorStorm game compiled using that branch detects that a rift headset is connected, it automatically switches into a Rift-compatible rendering mode, like the one visible in this screenshot.

Note that this doesn’t mean that all VectorStorm games suddenly become VR-compatible;  the only thing that VectorStorm does automatically is to convert the rendering into a stereo view, counter-distorted to compensate for the lenses in the VR headset.  It’s still the responsibility of individual games to notice the presence of a headset and begin using its orientation to move their game cameras (where appropriate).

Also note that VectorStorm only does this automatic rendering switch for the main render;  renders to separate render targets are unaffected.  (So reflections, shadows, etc. continue to work as they always have)

As my testbed for this, I’ve been converting Atop over to be a fully VR-compatible game.  There’s something wonderful about playing what is essentially “The Sentinel” in full immersive VR.

Changes to Atop so far, apart from the obvious, are:

  1. When in VR, the transition from one position to another has been slowed to about half its previous speed.  (The transition was a little uncomfortable when viewing in VR, rather than on a flat screen).
  2. Dramatically slowed down the rotation of the Sentinel;  playing in VR takes a lot more time, I’m finding, so I’ve slowed down the threat to try to compensate.
  3. When in VR, the mouse no longer can make you look up and down.  It can still be used to turn left and right.
  4. In VR, the user retains the ability to look around while transferring between robots (the mouse interface restricts this)

Big challenges to overcome:

  1. The HMD is much less precise than a mouse.  This makes it even harder to select a particular square on the ground than it was before.  I definitely need to change the way you create and absorb objects to remove the requirement of looking at the ground.  Plus, bending your neck forward to peer at the floor all the time can get a bit uncomfortable.  Going to need to adapt things so you can remove objects or build on top of them by looking at their side.  Probably need to still verify that the floor is visible — just not make people actually look down at it.

I’m really not wanting to spend too much time on this, since I’m right in the middle of some neat stuff with MMORPG Tycoon 2.  But I had the opportunity to play with this hardware, and figured it’d be good fun.  It’s very promising hardware.  But I’m expecting to release this probably sometime this weekend.  It’ll probably replace the current Atop build, since it plays just like the original release, if there’s no Rift hardware present.

But no, MMORPG Tycoon 2 will not play using VR.  I’ve run it that way just to gawk at the scenery, but it simply has too much need of 2D GUI for it to work in this sort of format.  (Maybe I can drop it in as an easter egg in a particular game mode, or something like that.  But at the moment, I don’t see how the game could be playable with that display)