developing games for vr - lessons learned

19
Developing Games for VR - Lessons Learned July 2015 Martin Climatiano

Upload: martin-climatiano

Post on 12-Apr-2017

328 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Developing Games For VR - Lessons Learned

Developing Games for VR -Lessons Learned

July 2015Martin Climatiano

Page 2: Developing Games For VR - Lessons Learned

Some of Our VR GamesDifferent Titles, Different Challenges

Romans From Mars VRPorting a game from mobileSamsung GearVR

Pocket Wings VR DemoAdapting a 3D game for VRMultiple Platforms

Age of DiamondsCreating a new VR experienceCardboard Android / iOS

Page 3: Developing Games For VR - Lessons Learned

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).

Page 4: Developing Games For VR - Lessons Learned

Core Challenges in Developing for VRCreating 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.

Page 5: Developing Games For VR - Lessons Learned

Creating a Good VR Experience

Page 6: Developing Games For VR - Lessons Learned

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.

Page 7: Developing Games For VR - Lessons Learned

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.

Page 8: Developing Games For VR - Lessons Learned
Page 9: Developing Games For VR - Lessons Learned

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)

Page 10: Developing Games For VR - Lessons Learned

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.

Page 11: Developing Games For VR - Lessons Learned

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.

Page 12: Developing Games For VR - Lessons Learned

https://www.youtube.com/watch?v=DWR_Eq_bCUQ

Page 13: Developing Games For VR - Lessons Learned

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.

Page 14: Developing Games For VR - Lessons Learned
Page 15: Developing Games For VR - Lessons Learned

Handling Platform Fragmentation

Page 16: Developing Games For VR - Lessons Learned

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.

Page 17: Developing Games For VR - Lessons Learned

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.

Page 18: Developing Games For VR - Lessons Learned

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.