Tutorial: How To Build a Virtual Reality Game on Sketchfab

Back to overview

This third article in our ‘Designing for VR’ series focuses on how to set up a VR experience that encourages exploration. Topics covered include making effective use of teleportation for ‘level design’, adding points of interest to your scene and using animation to create a game-like experience.

Other articles in this series are:

Adding Details to Make a Scene Interesting

A VR experience should be ‘rich’ enough to pique the curiosity of the player. Elements that require extensive exploration or discovery encourage spending more time in your VR scene. A good example of this is Fluttershys Cottage by Discopears below. While not obvious when you first view it in ‘desktop mode’, it has many tiny staircases for mice hidden away around many corners:

An important aspect here is to remember that users of low-end VR devices, like Cardboard, will have a fixed camera height (they cannot crouh to look under a table, for example). So make sure your ‘points of interest’ can always be discovered by simply looking up or down.

Also, remember that proximity of objects is important in VR. Only by getting close to an object will it get its three dimensional quality – objects in the distance will appear flat and, on low-end devices, very blurry or pixelated.

Level Navigation

Even without a game engine or complex interactive elements, you’ll find that you can design challenging levels by using a clever navigation design.

First, you’ll need to get a deep sense of how VR teleportation works. The principle is simple enough: the player can select any visible surface that’s at a 45 degree angle or less and teleport there. So if you cannot see a surface, or if it’s too steep you will not be able to move there.

As an illustration, try the following model (which was not designed as a VR game level): you’ll find that it’s very hard to reach the top of the tower. It can be done, but in this case it feels more like ‘hacking’ the scene 😉

So, to ensure a challenging game level, start by designing a ‘navigation path’. How is the player supposed to travel from start to finish? Block out this path in your scene and test it in VR.

Next, add obstacles between the waypoints in your navigation that will force the player to examine your scene and find the correct path.

It’s not always easy to see where you’re supposed to go, as the far environment tends to be pixelated with the cardboard, so remember to add visual cues to help the player see where he can go.

Using Animation

A great trick is to animate some obstacles (like doors open and close, a bridge that moves etc). One thing to keep in mind when adding animated assets is to keep them simple: a high vertex count and number of bones will slow down your scene a LOT. As always: create, test, repeat!

Don’t use animated platform, you will be stuck mid air while the platform continue its route (or maybe use it if you want but keep that in mind!)

Using Transparency

image01

Finally, you can use transparent objects to your advantage too! They’re a great way to show a glimpse of the remainder of a level without allowing the player to navigate there directly.

Using the tricks above you’ll be able to add some proper puzzle elements to your scene!

Are you ready to give it a try?

This example game level by Jeremy Goncalves uses about all the principles that I outlined in this article. Jeremy did a great job creating a game that is interesting to explore, uses multiple ‘puzzle’ techniques and that still performs well enough on mobile devices. He’s currently working on a second level, so be sure to follow him to receive an update when he posts it!

Upload your #VR-game!

We’ll be collecting and promoting the coolest VR game experiences on Sketchfab. Just upload them and tag with #VR-game and be sure to leave a comment here to share your work!

About the author

Bart Veldhuizen

Head of Community at Sketchfab. 3D Scanning enthusiast and Blenderhead. Running BlenderNation in my spare time.


Leave a Reply

Your email address will not be published. Required fields are marked *

Related articles