Augmented Reality vs Virtual Reality: The Developer’s Dilemma
July 14 2020
Augmented reality vs. virtual reality is a battle that many new and aspiring software developers face today in the real world.
Advances in these immersive and interactive technologies have not gone unnoticed. As they go mainstream, more people want to get a job working with AR and VR.
The question is:
Which is the best choice?
In this article, we'll find out by looking at use cases for both technologies. We'll also show you what you need to consider to land your dream job in either medium.
Okay, it's time to get into AR vs. VR.
What is Virtual Reality
Virtual reality is a computer technology that creates a simulated environment where users can interact with three-dimensional (3D) space. VR hardware shuts off the outside world, and the technology simulates human senses and provides haptic-feedback to immerse people in a completely artificial environment.
For years, VR was little more than a gimmick in movies or video games. Today, VR is finding its place as an integral aspect of many industries.
The Volvo Reality app allows you to take the XC90 SUV for a test drive, and Walmart uses a VR training app to help managers learn in a stress-free environment. And then, of course, there are VR games, which is a multi-billion dollar marketplace.
How to Start Developing in Virtual Reality
Here are four fundamental areas to explore when you want to create a VR project:
- VR hardware
- Design and prototype tools
- Game engines
- Platforms and Software Development Kits (SDKs)
1. VR Hardware
To develop VR (or AR) you will need a performance hardware that is capable of running advanced graphics and compex computations. If you don't have a computer or a laptop, check our guide on VR hardware.
Secondly, you will need a VR device. If you want to create a believable, engaging, virtual world, here are the best VR devices to work with now:
- Oculus Rift - Oculus is the undisputed VR leader, and the Rift is their crown jewel. The tetherless headset uses Oculus Link to connect to computers, and the device utilizes hand tracking for a more intuitive VR experience.
- Oculus Quest - A cost-effective alternative to the Rift. The Quest is the first model with standalone six degrees of freedom (6DOF).
- HTC Vive - The rival to Oculus, boasting room-scale technology that enables you to move around and use motion-tracked handheld controllers to interact with the 3D virtual environment.
- Valve Index — Index has a superior refresh rate and better precision thank Oculus and Vive however the performance does reflect on the price tag.
- Google Cardboard - A budget-friendly, cardboard frame that you can put your smartphone in for easy VR experiences. The cardboard is more of a gimmick but it's a good learning tool if you're looking to create something fast.
For an in-depth comparison check the HTC vs Oculus article.
2. Design and prototype tools
You can use pen and paper to get basic ideas out of your head, but if you’re serious, you should start playing around with some professional digital tools, like these:
- Sketch - design user flows and mobile interface screens. Includes a plug-in to transform your Sketches to a 360-degree view.
- Blender - create custom 3D models to import to your game engine. Includes free online tutorials.
- 3ds Max and Maya - The gold standard in the industry. Use these for modeling, sculpting, animation, lighting, and visual effects. Beware, they come with high price tags and steep learning curves.
- Cinema 4D - A user-friendly alternative to Maya, used by many individual artists and small teams.
- A-Frame - An open-source Mozilla project for creating VR experiences in HTML. Compatible with Oculus Rift, HTC Vive, Samsung Gear VR, and Google Daydream.
3. Game engines
The game engine is crucial, as it comprises the essential framework and software development kits (SDKs) required to develop VR applications for a computer or mobile device.
Here are the top contenders:
- Unity - The king of VR game engines, and preferred choice of 45% of developers. This engine uses C# to write commands, and it supports all major VR devices and formats, including 3D Max, Maya, and Cinema4D.
- Unreal Engine - The closest rival to Unity supports most platforms, including HoloLens 2, Magic Leap, macOS, Windows, iOS, and Android. Unreal uses the more difficult C++, but many claim it offers more realistic visuals.
- CryEngine - A free tool with incredible weather and water effects, like volumetric fog, ocean physics, and full 3D cloud rendering. CryEngine uses C++, but only supports Oculus Rift, HTC Vive, and OSVR.
The market leaders of game engines are undoubtedly Unreal and Unity. In practice they are neck and neck. If you're choosing between one of them, read the Unreal vs Unity comparison guide.
4. Platforms and Software Development Kits (SDKs)
An SDK is a plug-in with engine- and platform-specific assets, content, and special design techniques that effectively shape the overall native VR experience.
Here are some of the best SDKs for VR development:
- Oculus SDK is a developer software that includes various engine-specific kits, assets, samples, and audio packages that you can use to build your VR apps. Best for Oculus Rift.
- SteamVR SDK gives access to controllers, models, and enables content preview in Unity play mode. Best option for HTC Vive.
- Oculus Mobile SDK has all the tools and libraries for C/C++ development for Samsung GearVR and Oculus. Best option for GearVR.
- Google VR SDK is a collection of specific dev kits, tools, APIs, and design frameworks. Best option for Google Cardboard and Google Daydream headset.
What is Augmented Reality?
Augmented reality is a technology that changes the perception of the physical world to make it more interactive. AR achieves this by superimposing digital information onto a view of the real-world environment.
AR is best suited to enterprise tooling. In manufacturing, workers can use AR smart glasses to access text, stats, and graphical representations while working on a task.
While VR is better for gaming, AR is the technology behind the crazy success of Pokémon Go, which Forbes once called ‘the world’s most important game.
How to Start Developing in Augmented Reality
There are several critical steps involved to start developing AR experiences:
- AR Hardware
- Get Unity
- Install development applications
1. AR Hardware
When you consider the hardware between augmented reality vs virtual reality, you’ll discover that AR development has two real choices: Microsoft HoloLens 2 and Google Glass.
- HoloLens 2 - A holographic computer in a headset that offers a hands-free experience where you use voice and hand gestures to interact with holograms.
- Google Glass - An enterprise tool built on Android, which primarily targets the manufacturing, medical, and construction markets.
2. Get Unity
While you can use Unreal or another game engine, there’s little doubt that Unity is the way to go for augmented reality developers. Not only is it the best for the medium, but it has free documentation, tutorials, and live training.
3. Install development applications
Download these applications before you start:
HoloLens Emulator - With this, you can run Windows Holographic without the HoloLens device. You also need to get Hyper-V for this to work.
Visual Studio - An Integrated Development Environment where you write code and run the HoloLens Emulator. Install both Visual Studio 2015 with Update 3 and Visual Studio 2017, or it won't work correctly.
Here are a few SDKs for developing in AR:
- HoloToolkit - A collection of scripts and components to accelerate project development on the HoloLens. Check this GitHub guide for installation instructions and toolkit tips.
- Vuforia - Use this to create Holographic applications that can recognize objects in the environment.
- ARKit - Apple tools to help developers create AR applications for iOS devices.
You can learn more from Circuit Stream’s comparison guide for augmented reality SDKs.
You can learn more from Circuit Stream’s comparison guide for augmented reality SDKs.
Augmented Reality vs Virtual Reality: What to Choose?
Augmented reality and virtual reality offer two very unique paths for developers. Augmented reality changes our perception of the real world, and virtual reality transports you to an entirely different world.
Augmented reality is the best choice for developers if you want to create apps and experiences for:
- Manufacturing, construction, or design - If you want to build an enterprise-focused tool for factory workers, AR is the way to go.
- Game-based education - AR makes it possible to create a digital learning narrative and embed contextually relevant information.
- Retail - People naturally want to try things on when shopping for clothes or makeup. AR has already been adopted by furniture, beauty, and clothes brands.
Virtual reality is the best choice for developers if you want to create apps and experiences for:
- Computer games. Virtual reality may or may not be the future of gaming. What's not in doubt is its potential, with global revenue for VR games in 2020 soaring to $22.9B. VR is the best choice for gaming now. Period.
- Military, manufacturing or medical training. Whether it's a battlefield simulation or brain surgery, the immersive technology gives people a learning platform to develop their skills and confidence, without any risks.
- Mental health. VR can create powerful simulations of scenarios that may pose psychological difficulties for some people. Research suggests it can help with depression, anxiety, schizophrenia, and paranoia.
Augmented Reality vs Virtual Reality: You Can’t Lose
The rise of AR and VR has been a slow burn, but now the technologies have finally moved beyond gaming and entertainment to show promise in many industries.
Now is the time to get involved. By starting small, you can build your knowledge and skills with the essential software and grow your developer portfolio.
When it comes to deciding between augmented reality vs virtual reality, you can't lose.
If you're looking to dip your toes and start from the beginning, check one of our numerous on-demand and live AR or VR workshops.