There are a number of tools available for those interested in developing their own native applications in VR, AR, or even mixed reality. Before you undertake any project, decide exactly which tools you will use based on your needs and objectives. What kind of reality do you want to create? What platform do you want to develop for? Who is your audience? Are you most focused on 3D graphics, on interactivity, on data collection? Perhaps, most importantly, what is the learning curve for mastering the authoring tool?
Virtual Reality
There are a number of game engines and development platforms for VR currently on the market. While all are capable of doing essentially the same things, there are some differences which can can play a role in helping a user to decide which tool is right for them when learning to develop.
Unity 3D has long been considered the default platform for developing within a VR environment.
- Has a direct VR mode to preview your ongoing work in an HMD (head mounted device)
- Based in C# programming language
- Supports all major HMDs (Vive, Oculus, etc) and can export to almost any platform
- Large active community of users, forums, documentation and how-to videos
Unreal Engine is a gaming engine with VR integrations and is gaining popularity as an alternative to Unity.
- Arguably the most advanced, realistic graphics.
- Based in C++ programming language.
- Massive library of free assets including objects, environments, and textures.
- Exports to most platforms
A-Frame is not a game engine. It is a web framework for building WebVR experiences.
- Based on top of HTML code, A-Frame may be the most simple way to get started with VR development.
- Independent, open source project with a large developer community.
- Supports all major HMDs
- Ideal for a novice looking to build simple experiences.
Augmented Reality
Again, deciding what tools to use for AR development depends on what platforms you are creating for and what exactly you are looking to achieve.
- Unity has led the way with AR development as well. In fact, more than 90% of all AR applications for the Microsoft HoloLens have been made with Unity. So if the HoloLens is your device of choice, Unity is likely the way to go. It also supports mobile AR.
- Unreal Engine also provides a rich, unified framework for building AR experiences for both iOS and Android handheld devices as well as Magic Leap.
- ARCore is Google's platform for building AR experiences on Android and Google devices. Includes both facial tracking and world tracking. There’s also integration with Google's VR building tools Tilt Brush and Blocks for creating 3D objects.
- ARKit is Apple's platform for building AR experiences on iOS devices. Includes both facial tracking and world tracking. Also make optimal use of the iPhone’s camera sensor to estimate the total amount of light in a scene.