Tools and considerations when developing for Virtual Reality

by Solstice Blogging
March 1, 2016

This blog was written by Jake Cramer.

Virtual Reality is just around the corner and, to some, it’s already here. What do you need to know to be ready to develop VR applications? Well, there are some specific considerations to make for VR development. There are also more VR frameworks, SDKs, and devices coming out by the day. So where do we begin?

Let’s begin with the beginning, what is VR and what considerations does one make when making  experience? Virtual Reality is essentially the idea of putting on a pair of goggles and being transported to a different reality, a virtual reality if you will. So a person using VR has a screen a couple inches in front of their face and the ability to look around a 3D space on that screen. What does this mean in terms of app development? Well, UI doesn’t quite work the way it does on other devices. It has to exist in 3D space. If it doesn’t, and it is just displayed flatly to the screen it can cause disorientation and it’s generally a bad experience. Basically, VR exists as a way to trick your brain into thinking that it’s looking through a window instead of at the glass. When something is displayed directly on that window instead of behind it the trick is broken.

Now that we have a handle on some of the requirements of VR, let’s take a look at available tools. There are quite a few options, but I’ll focus on a couple that I found particularly useful. There’s Unity, A-Frame, and the SDKs provided by each of the VR platforms. Now for the SDKs, all of the companies involved in VR have their own SDK’s for developing VR apps on their hardware. There is, however, one issue with these SDKs. They don’t handle rendering, so some hands on OpenGL will be involved, and they don’t have an editor for setting up a 3D space. They do provide all of the tools necessary to render properly to their respective displays, but none of the framework of setting up a 3D space. Using these SDKs on their own is certainly an option for those that want to handle rendering up close and personal. But those without the knowledge of how rendering works will struggle.

Moving on, those who are familiar with Unity probably know it as a game engine. While it definitely does that, none of the tools it provides are specific to game development. There are tools for creating a 3D space with all of the accoutrements we have come to expect from such a space. Again, 3D space is exactly what a VR app needs. Unity has an editor that allows for designing these spaces, while seeing what they will look like. This means fast iteration and prototyping during development. The big drawback, specifically for mobile based VR, is that the iteration speed is hindered by having to do a full build to a target device in order see it on an actual VR display. But that’s still a significant step up from developing on the raw SDKs.

All that said, Unity does have one other downfall, the web. Unity relies on its web player plugin for web based Unity experiences, but browser plugins are gradually being phased out. That’s where Web VR comes in. Web VR is an API for web based VR built by Mozilla. They also created A-Frame which works with their API to provide web based VR. It works in any WebGL enabled browser, and it allows for fast and easy creation of 3D environments. A-Frame uses custom HTML elements to set up the environment and three.js to handle the WebGL. While it doesn’t quite match up to the ability to design 3D spaces the Unity editor has, it’s one of the best frameworks I’ve seen for creating VR experiences.

 Where does this leave us? There are a variety of options for developing VR apps, the raw SDKs aren’t too friendly, but Unity and A-Frame provide development tools that more than make up for them. In the end, for those that want to get into the nitty gritty detail of working with the VR SDKs, have at it. For those that want to get to the meat of VR development use A-Frame or use Unity.

 

Check out Solstice's VTour, to see how we are implementing virtual reality.

 

Jobs at Kin + Carta

Chicago startup guides

LOCAL GUIDE
Best Companies to Work for in Chicago
LOCAL GUIDE
Coolest Offices in Chicago Tech
LOCAL GUIDE
Best Perks at Chicago Tech Companies
LOCAL GUIDE
Women in Chicago Tech