Choosing your engine

There are several development paths you can take through our documentation. The first step is finding the technology that's right for you. If you already have one in mind, go ahead and jump right to its respective tab below. If you're on the fence or just starting out, take a look through each one and understand what they offer, the available platforms and tools, and start creating!

Important

Take a look at our porting guides overview if you have existing projects that you want to bring over to HoloLens 2 or immmersive VR headsets like the Reverb G2. We have guides for projects that are using HTK, MRTK v1, SteamVR or were developed for immersive headsets such as the Oculus Rift or HTC Vive.

Engine overview

  • Unity is one of the leading real-time development platforms on the market, with underlying runtime code written in C++ and all development scripting is done in C#. Whether you're looking to build games, movies and animation cinematics, or even render architectural or engineering concepts in a virtual world, Unity has the infrastructure to support you.

    Note

    Please make sure to check out known issues in certain Unity versions before choosing a Unity version.

  • Unreal Engine 4 is a powerful, open source creation engine with full support for mixed reality in both C++ and Blueprints. As of Unreal Engine 4.25, HoloLens support is full-featured and production-ready. With capabilities such as the flexible Blueprints Visual Scripting system, designers can virtually use the full range of concepts and tools generally only available to programmers. Creators across industries can leverage the freedom and control to deliver cutting-edge content, interactive experiences, and immersive virtual worlds.

  • Native developers with experience writing their own 3D renderers can build a custom engine using OpenXR. OpenXR is an open royalty-free API standard from Khronos that provides engines native access to a wide range of devices from vendors across the mixed reality spectrum. You can develop using OpenXR on a HoloLens 2 or Windows Mixed Reality immersive headset on the desktop.

  • Web developers creating compelling cross-browser AR/VR web experiences can use WebXR.

Features and devices


Logistics Unity Unreal JavaScript Custom engine
(using OpenXR)
Language C# C++ JavaScript C/C++
Pricing Unity pricing Unreal pricing Free Free

Device features Unity Unreal JavaScript Custom engine
(using OpenXR)
Device/display tracking ✔️ ✔️ ✔️ ✔️
Hand input ✔️ ✔️ ✔️ ✔️
Eye input ✔️ ✔️ ✔️
Voice input ✔️ ✔️ ✔️ ✔️
Motion controllers ✔️ ✔️ ✔️ ✔️
Plane/mesh hit testing ✔️ ✔️ ✔️ ✔️
Scene understanding ✔️ ✔️ ✔️
Spatial sound ✔️ ✔️ ✔️ ✔️
QR code detection ✔️ ✔️ ✔️

Hardware Unity Unreal JavaScript Custom engine
(using OpenXR)
HoloLens 2 ✔️ ✔️ ✔️ ✔️
HoloLens (1st gen) ✔️ ✔️ WinRT (Legacy) only
Windows Mixed Reality headsets ✔️ ✔️ ✔️ ✔️
SteamVR headsets ✔️ ✔️ ✔️ ✔️
Oculus Quest/Rift ✔️ ✔️ ✔️ ✔️
Mobile (ARCore/ARKit) ✔️ ✔️ ✔️

Tools Unity Unreal JavaScript Custom engine
(using OpenXR)
Mixed Reality Toolkit ✔️ ✔️
World Locking Tools ✔️

Cloud services Unity Unreal JavaScript Custom engine
(using OpenXR)
Azure Spatial Anchors ✔️ ✔️ ✔️
Azure Object Anchors ✔️ ✔️
Azure Remote Rendering ✔️ * ✔️ *

Note

  • Azure Remote Rendering is currently supported in apps using the legacy WinRT APIs (Windows XR plugin in Unity). ARR support for OpenXR apps is coming soon.

Next steps

Next Development Checkpoint

If you're following the Unity for HoloLens development checkpoint journey we've laid out, your next task is to work through our HoloLens 2 tutorial series.

Otherwise, continue on to install the right version of Unity and get set up with your first mixed reality Unity project:

You can always go back to the Unity development checkpoints for HoloLens and VR at any time.