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!
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.
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.
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
|Pricing||Unity pricing||Unreal pricing||Free||Free|
|Plane/mesh hit testing||✔️||✔️||✔️||✔️|
|QR code detection||✔️||✔️||❌||✔️|
|HoloLens (1st gen)||✔️||✔️||❌||WinRT (Legacy) only|
|Windows Mixed Reality headsets||✔️||✔️||✔️||✔️|
|Mixed Reality Toolkit||✔️||✔️||❌||❌|
|World Locking Tools||✔️||❌||❌||❌|
|Azure Spatial Anchors||✔️||✔️||❌||✔️|
|Azure Object Anchors||✔️||❌||❌||✔️|
|Azure Remote Rendering||✔️ *||❌||❌||✔️ *|
- 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 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:
Submit and view feedback for