2. Some of Our VR Games
Different Titles, Different Challenges
Romans From Mars VR
Porting a game from mobile
Samsung GearVR
Pocket Wings VR Demo
Adapting a 3D game for VR
Multiple Platforms
Age of Diamonds
Creating a new VR experience
Cardboard Android / iOS
3. What is VR?
Wikipedia:
“…immersive multimedia or computer-simulated life, replicates an environment that simulates
physical presence in places in the real world or imagined worlds.”
In Marketing Terms:
“…I tried HTC's insane virtual reality headset, and I'm convinced the world is about to change
forever. –Dave Smith, Business Insider
In Technical Terms:
A system of input and output devices meant to simulate a life like experience. In current
generation centered around a head mounted display as the primary output device and head
tracking sensors as the primary input device, with supporting peripherals (from pointing devices,
through tactile feedback devices and all the way to omni-treadmills).
4. Core Challenges in Developing for VR
Creating A Good Experience:
• Easing the user into the experience.
• Adapting the experience to a full 360 space.
• Avoiding VR sickness.
• Striving for performance over fidelity.
• Displaying information in 3D space.
• Redefining user interaction.
Handling Platform Fragmentation:
• Various performance profiles.
• Multitude of software solutions.
• Different feature sets and peripheral availability per platform.
6. Easing the user into the experience
• For many users it’s a new platform and the whole experience is new and overwhelming.
• What is commonly considered a “simple” experience on other platforms is a much more
advanced experience on VR – keep things simple.
• Keep the learning curve shallow, remember it’s an addition to the learning curve presented by
the platform.
• Pace your experience – continuous usage of VR systems can cause strain and general
sickness. Structure your experience in such way that it gives the player an option to take a
periodic break.
7. Adapting the experience to a full 360 space
• This is relatively easily achieved if your game world already allows for full 360 motion. It
becomes complex when your original experience limits the camera motion.
• Remember, there’s no such thing as “off camera” in VR. You need to have a full 360 view of
your world ready.
• Additionally, things can no longer enter and exit “off stage”, when new actors enter your game
world, they need to do so in a way that makes sense in your world – be it falling from the sky
or materializing in a magical puff of smoke – you no longer have the option to introduce things
“from the left of the screen”.
• When transitioning between completely different contexts (entirely different scenes) a subtle
fade in and out of black seems to work well. DON’T FADE TO WHITE! Seriously, it hurts the
eyes.
8.
9. Avoiding VR Sickness
• Different people have different levels of tolerance to VR sickness, but in most cases the source
is the same – a mismatch between the visual perception and other sensory perception (much
like sea-sickness). If your game makes people sick, they won’t play it – you should strive to
create the most comfortable experience possible.
• NEVER TAKE CONTROL OF THE CAMERA – if you want to focus the user’s attention to
something find creative ways to hint it to them, be it visual or audio cues. Either way, never
move or limit the user’s view.
• Prefer stationary experiences, moving can cause increased VR sickness.
• If your experience is mobile, make sure the player has full control over the motion, and try to
keep the motion slow and steady.
• If you must move the player without his input, make sure to explain the motion and provide a
static point of reference (such as a cockpit for a plane, or an interior for a moving vehicle)
10. Striving For Performance Over Fidelity
• Good VR experiences are smooth and consistent experiences with low latency.
• To achieve low latency on the software level, you should make sure your game runs at at least
60 frames per second (75fps on PC with the Oculus DK2)
• This often means toning down the visual fidelity. That is totally acceptable, as inconsistent
frame rate and latency are much more visible than any other visual aspect.
• Additionally, keep in mind current generation display devices offer a relatively low resolution
per eye – from 960x1080 (1080p/2) to 1280x1440. In either case your display fidelity will be
bottlenecked by the hardware.
11. Displaying Information in 3D Space
• With the whole VR ecosystem being so young, there are still no clear conventions when it
comes to user interface.
• The initial instinct of simply overlaying the interface on top of the 3D layer as in non-VR games
is bad. It’s nearly impossible to focus on the interface layer and the 3D layer at the same time,
making the information unreadable and causing considerable eye strain.
• At the very least, position the UI in 3D space a sensible distance in front of the user’s face.
• Better yet, integrate your interface INTO the 3D world in a way that make sense.
13. Redefining User Interaction
• In continuation to the interface subject – the whole notion of interaction in VR is relatively new,
especially interacting with the UI layer in VR.
• 2D pointing devices don’t translate well to this medium (try Oculus’s office demo)
• Some approaches we’ve successfully implemented:
• Keyboard / Gamepad – highlight the current selection, user navigation keys to move
between options and an action button to execute the selected option.
• 3D pointing devices such as the Razer Hydra – costly and not widely available, but they do
just what they say on the box.
• “Gaze” selection – the user looks at the item he wants to interact with and presses a
button to execute. This can be extended to an entirely “hands free” experience by
replacing the button with timed selection.
16. Various performance profiles
• Targeting multiple platforms can be difficult due to the requirement for high interactive frame
rates.
• Don’t target mobile and PC at the same time. These are two very different platforms when it
comes to VR.
• PC VR, at least the one presented by Oculus and Valve is aimed at high performance
devices, and meant to be experienced using input peripherals.
• Mobile VR is very fragmented on it’s own. On one end there is the Gear VR which is
relatively “high end” while on the other hand you have Google’s Cardboard which runs on
almost any Android device.
• When going for mobile, if you’re targeting Cardboard / Merge / other systems that support a
wide range of devices make sure your game runs smoothly on the lowest end device and limit
availability on devices where it does not work well.
17. Multitude of Software Solutions
• Use existing game engines where possible – most VR solutions already have integration
support for Unity and Unreal Engine.
• The most basic VR software kit includes handling of head tracking and stereoscopic rendering
– use this knowledge to define your game’s interfaces in such way that the underlying VR SDK
can be easily replaced.
• When using more “exotic” features provided by the VR software, check ahead of time to see if
other VR platforms you plan to support also offer the same feature.
• Some VR platforms can interoperate – specifically the more simple and generic ones. You can
use the OpenDive SDK, Cardboard SDK and Merge SDK with either head mounted display. This
is mostly because they offer limited lens correction support, and use a common off the shelf
lens profile.
18. Different Feature Sets
• We’ve mentioned feature fragmentation on the software level – but this is much more
noticeable on the hardware level.
• Some systems have integrated controls:
• Gear VR has a button and a touchpad.
• Google Cardboard has a single button.
• Oculus DK2 runs on a PC with lots of available peripherals.
• Keep this in mind both when designing your game and when choosing your target platform(s)
– a game that works well on the GearVR might not work at all on the Cardboard due to the lack
of buttons and the fact it has no strap, which limits it from being used with a controller at the
same time.
• Increase your target audience by keeping inputs simple. We’ve mentioned “Gaze” pointing with
timed selection – this is a solution that will work on any platform.