Choosing the Tools to Build Your Next VR Application

Andriy Skuratov
Andriy Skuratov

Virtual reality rapidly evolves from a niche to mainstream technology, conquering domains beyond entertainment and gaming. VR applications have the potential to penetrate many industries, providing extra capabilities for training, testing, simulation or customer service.

There is plenty of evidence that this technology is not just another short-lived fad. Nearly a quarter of automotive, media, retail and healthcare companies surveyed by PWC are ready to make a substantial investment in VR over the next 3 years. Likewise, many manufacturers of consumer electronics enter the promising market of VR headsets with affordable, mass-produced devices. IDC predicts that worldwide sales of VR units would reach 81.2 million by 2021 with a compound annual growth rate (CAGR) of 56.1%.

Although the technology is relatively new, you already have a choice of tools for creating a VR application. At ELEKS, we have evaluated these options while dealing with several client use-cases and proofs of concept.

In this post, we focused on the toolset suitable for non-gaming VR. The three main contenders are Unreal Engine, Unity and WebVR.

Unreal Engine for the most realistic experience

Unreal Engine is the most successful 3D video game engine with a long history. It is a usual choice for AAA games where it shines. This engine allows creating a high quality, nearly photo-realistic experience. With the code written in C++, you can get the best performance possible on a given hardware due to low level optimisations. Moreover, you will have full access to the source code of the engine; thus, you can modify it to your needs.

As it often happens in life, strengths and weaknesses go together. C++ is a complex, relatively low-level and currently unpopular language. It requires longer development cycles while you may experience shortages of talent. A combination of these factors can eventually ruin the budget and schedule of your project.

Apart from gaming, we currently see a few reasons that can justify using Unreal Engine. Firstly, you can choose it to create a VR app that has to impress users with extra high-quality images. Secondly, it can help you to squeeze maximum performance out of some particular hardware. And finally, if you are a C++ shop with an appropriate talent pool and expertise, Unreal Engine is your natural choice.

One more issue to consider is the licensing of Unreal Engine. Its standard license requires you to pay a 5% royalty on all worldwide gross revenue from your product. Custom licenses are available upon request, but their terms are not disclosed.

Unity — it has plenty of reasons to be very popular

Unity is another cross-platform game engine. It is very popular among game developers for being affordable, intuitive and easy to master. It is programmed in C#, which also helps. While not on par with Unreal Engine, Unity can produce quite a good picture.

Unity Technologies, the company behind the engine, considers AR and VR central to their strategy and invests heavily in them. Knowing this, we can reasonably expect that their products will evolve and improve in line with the market needs. Currently, the licensing of Unity is royalty-free. Such a distribution model makes this engine more suitable for business applications. Considering all the above, Unity is the go-to solution for most non-gaming AR/VR applications—at least for the time being.

WebVR – a nice choice for fast prototyping

WebVR is an open standard that brings the VR experience to your browser. Specifically, WebVR is a JavaScript API to access the capabilities of VR devices. You also have to use WebGL to actually render 3D content. Besides, while WebGL is pretty established, simple to use and has nice libraries (Three.JS being the de facto standard), the work on WebVR is still in progress.

Currently, the support of webVR API depends on the browser, the platform you run it on and the particular VR device you want to use. Refer WebVR.Rocks for the up-to-date map.

While not yet ready for full-scale use, WebVR is a technology that will definitely have its own range of applications. For example, the apps with adult content are not allowed in most app stores, and thus the adult services are likely to embrace WebVR for their VR experience.

Here at ELEKS R&D Lab, we choose WebVR for proofs of concepts and prototypes. We like it for extremely fast development cycles. Additionally, it is just easier to experiment with dynamic untyped JavaScript.


Your choice of an engine to create a VR experience depends on your needs and goals:

  • Use WebVR for experiments;
  • Choose Unity for most commercial VR apps;
  • Go with Unreal Engine if you really need pixel-perfect realism or if you speak C++.

In general, these three tools can have you covered for all types of VR apps. Still, at ELEKS R&D Lab, we keep an eye on new virtual reality solutions that might help to develop a high-quality VR experience faster and with less cost.

Tell us about your idea for a VR application and we will help you implement it with the most suitable tool.