The Augmented Reality (AR) and Virtual Reality (VR) industries are still in its infancy, however, this is why now is the perfect time to learn how to create content for these technologies. They need it to make the jump to the next level of adoption.
Luckily, from a developer standpoint, the skills needed to get into AR and VR are very similar and the barriers to entry are still relatively low. This article will give you an overview of how to get started.
The Most Important Skill You Need
No matter whether you’re a newbie who is starting with programming or a veteran with years of experience in the field, the main skills you’ll need to become an AR/VR developer are in the 3D area. In fact, it’s not very different from 3D games development.
Why? Because AR and VR are about creating immersive worlds or environments that can be interacted with in three dimensions, like in real life.
So depending on how deep you want to go, you may have to learn about 3D modeling and/or scanning, 3D games engines, 360° photos and videos, maybe a little bit of math and geometry, programming languages like C/C++/C# and software development kits (SDKs), and how to design experiences for users in 3D.
So let’s take a deeper look at each of the topics you need to address to become an AR/VR developer, focusing first on VR.
Virtual Reality Devices
In this area, we have many options. Let’s categorize the most popular by their degree of freedom (DOF), which refers to the ways in which an object can move. We have two options: three and six DOF.
Three DOF means that you will be able to interact with the virtual world in three dimensions (in an X, Y, Z coordinate system) by moving your head using a head-mounted display (HMD), however, you wouldn’t be able to move forward or backward.
With six DOF, you can move forward/back, up/down, and left/right, so you now have three more types of movements, hence the name. You can learn more about degrees of freedom in this article.
The following devices support three DOF:
- Google Cardboard
- Google Daydream
- Samsung Gear VR
While the following can support six DOF:
- HTC Vive
- Oculus Rift
what about AR?
We have been focusing on Virtual Reality, but Augmented Reality is a different concept.
Virtual Reality is about creating a virtual and immersive environment to replace the real world. Augmented Reality adds layers of data to the real world instead of replacing it. For example, it can translate the words you see in another language, or it can make you see monsters when you walk near some place. In contrast, Virtual Reality can take you to another country or a land full of monsters.
When you join both concepts, you get what is called mixed reality, where you interact with both the physical and virtual environment.
However, from a development standpoint, VR and AR are pretty similar. In fact, you can use Unity and Unreal (with the help of some plugins) to develop AR content. For example, a simple AR app will recognize an object and present a 3D model that you could manipulate as if it were real, so the skills needed for VR are applicable to AR also.
One of the most popular tools for developing AR is Vuforia, which is available for Unity, Android, and iOS, provides a lot of features, and support for many devices, including Tango phones.
Talking about devices, Augmented Reality can be used with head-mounted displays, but also with other devices like smartphones, glasses, and specially-made visors, perhaps being the most popular Microsoft HoloLens (although more inclined towards mixed reality).
what are the steps to become an AR/VR developer?
- Define your platform. Decide which devices to target, which platforms (mobile, desktop, web), and which game engine/SDK/framework to use.
- Learn the skills. Learn about the terminology, 3D modeling, the language of that engine/SDK/framework, UI/UX for AR/VR.
- Implement something small. Although a great number of AR/VR apps are games, there are a lot of areas that can be targeted, like education, data visualization, 360° experiences. The key here is to practice and gain experience.
- Join and engage in VR communities. Go to meetups, participate in forums/chats, talk to other developers, ask to the community.