One of the best things about working at a technology agnostic company is that we always get to pick the best technology for the job. We spend a lot of time exploring tools and ensuring that the ones we use are perfectly suited for each client’s needs. When it came to choosing tools for virtual and augmented reality development, we conducted a fairly exhaustive search to select the right tool for the job.
If you read the title of this article, you already know we ultimately selected Unity as our go-to development platform. With that choice, we joined the 22 of 25 total experiences at Oculus Connect last month that were built on Unity. That’s not to say it’s the right tool for all VR/AR work, simply that for the majority of our clients it makes a lot of sense to use Unity both now and in the future.
What Is Unity?
Unity is a lot of things, but at its core, it’s a game engine. Now, we don’t build games, so why the heck would we use a game engine? Well — it turns out that 3D game developers have been quietly developing all of the tools necessary to build amazing VR and AR experiences. Ignoring some game specific terminology, even the most of enterprise-y of enterprise experiences can be built with game engines like Unity. My guess is that within the next few years, Unity will start referring to itself as a Extraordinary Experience Engine instead of game engine (if anyone from Unity is reading, you can use that for free).
With a game engine, rather than having to build out the physics, rendering, animations, input, audio, user interfaces, and tons of other core systems yourself, you get to rely on some absurdly smart people to do that stuff for you. With all of that code taken care of, your team gets to focus entirely on making the actual experience amazing.
Unity is a fantastic game engine but it has some tough competition from others such as Unreal Engine and CryEngine. For instance, up until Unity 5, Unreal Engine had a major edge in rendering performance and its blueprint system is considered ideal for non-developers to quickly prototype. What sets Unity apart, and why we’ve directed many of our VR and AR clients to use Unity, is its fantastic ecosystem and features including:
In addition to the almost 30 non VR/AR platforms, Unity has teams specifically dedicated to built in support for Google Daydream, HTC Vive, Oculus Rift, Gear VR, Playstation VR, Microsoft Hololens, Meta, and pretty much every other headset you could want. These integrations go so deep that many of these platforms have some or all of their core apps built with Unity in addition to providing first-class support and SDKs specific to Unity.
This support means that with only minor modifications to account for the constraints and controls of each platform, you can write a single experience that works on each of the platforms you want to support. What’s more, Unity adds new platforms even before they are launched to consumers, meaning that you can continue to port your experience to more headsets as they are released.
This support is absolutely critical. We’ve seen clients invest in proprietary game engines, only to have to redo their entire experience to be compatible with some other platform they want to target. With Unity, a new platform can be rapidly adapted to with the exact same codebase.
The Unity Asset Store
Our projects rely heavily on tools, code, and 3D assets from the Unity asset store. When the thing you need isn’t directly supported by Unity, there’s often an asset for under $100 that will do the job. While Unreal and other engines also have asset stores, Unity’s is the largest and most comprehensive. Over the course of a project, relying on these assets has saved us hundreds or even thousands of hours.
Unity is used by significantly more developers and designers than any other game engine; 5.5 million registered, to be exact. Its dominance means that finding great people to create and maintain your virtual and augmented reality experiences is far easier than with other engines. While there’s not a lot of people specifically with non-gaming VR experience out there yet, we’ve had a lot of success working with game developers who were looking to branch out.
The large community also allows developers and artists to more easily access great tutorials, get assistance when required, use open source libraries, and establish best practices.
Unity’s per seat pricing model is fairly affordable (or free for indie developers) relative to the amount of value it creates. For our clients, one monthly price per developer makes a lot more sense than the 5% of application revenue required by Unreal and some of the other game engines.
Unity Is Pushing Hard To Dominate Virtual and Augmented Reality
We just discussed where Unity is, but the places where it’s going are even more interesting. This month’s Unite LA 2016 was filled with VR and AR panels and discussions in addition to some major announcements during the keynote.
In addition to announcing major improvements and performance optimizations necessary to keep VR experiences running smoothly at 90 frames per second, providing new and better tools for building to the Microsoft Hololens, Google Daydream, and other emerging platforms, and hiring some of the most prominent people in VR to work at Unity, a new initiative caught my eye as pointing to the future of VR development.
EditorVR is Unity’s first push to allow anyone to create VR (and hopefully soon AR) experiences while in VR. The team at Unity Labs has built and open sourced a toolset that brings many of Unity’s level editing tools inside of the headset. This will allow you to place 3D models in scenes, build environments, and do a number of other tasks that teams will normally do in a flat 2D editor. While it’s not ideal for tasks like writing code, it does offer a huge advantage when it comes to actually configuring environments and seeing things from a real users’ perspective.
I believe that EditorVR will eventually become a key part of any VR/AR experience development workflow.
Where Unity Needs To Improve
While most of this post makes it sound like Unity is the greatest thing since sliced bread, it’s not all puppy dogs and roses. There are a number of areas where Unity will need to improve if they want to continue to be essential to VR.
Embrace WebVR — We believe that WebVR, that is, in browser (Chrome, Firefox, Safari, Edge) access to VR content will be one of the main ways people interact with VR. Currently, Unity does not support WebVR and its WebGL support is slow and occasionally difficult to work with. However, there is some good news here. At Unite LA, Unity introduced Tony Parisi, a Virtual Reality pioneer and major WebVR advocate, as Head of VR/AR Strategy. This is a huge step in the right direction for Unity and we’ll be looking to Tony to make some big moves in the right direction.
Open Source the Engine — Where other engines like Unreal are technically open source (though with a license that takes 5% of overall revenues), Unity’s core libraries remain closed to the world. While Unity provides source code access to companies willing to shell out a lot of money for the privilege, everyone else is unable to learn and modify the internal workings of Unity. This is a problem if you have specific engine needs that are not possible with the standard Unity build.
Build More Standard Components — Currently there aren’t a lot of standard components for VR. If you want to implement an input system, a good user interface, or a way of interacting with objects, you’re going to need to build it yourself. This is especially daunting when you need to support multiple platforms in your app. By providing more standard VR assets inside of Unity, more teams will be able to quickly iterate on their core idea and release engaging experiences.
Focus On Reliable Releases — With so many interconnected parts, new releases of Unity can often turn out to be less than reliable. Unity is already making some steps in the right direction here but continued quality control is essential if Unity wants to maintain developers’ trust.
Even with its rough edges, it’s hard to imagine Unity losing its dominance in gaming focused VR and AR. With that being said, it’s not on quite as steady footing for building non-gaming experiences. Right now, they have a big head start and there are some exciting developments on the horizon. However, for them to capture the billions in investments pouring in, Unity will need to transcend its gaming roots and embrace non-gaming AR and VR as a core part of its business.