In this article, I am going to talk about how you can become an AR/VR developer.
The first thing that I want to mention here is that this question👇🏻
How can I become an AR/VR developer?
It's too vague and broad. The reason is that to get started in AR/VR you should have some sort of knowledge in basic Software Development. I request you to read this entire article to get a good understanding of what I mean.
If you prefer watching videos over reading then you can watch the video on my YouTube channel here👇
What I have done is broken down this article into 3 parts i.e How to get started with AR/VR as a -
Let's begin with number one.
As a web developer, most likely you already have a good knowledge of the basics i.e
It is not super important for you to know a Frontend framework like React or Angular. If you already know it, consider that as a bonus.
The next thing is jumping into Three.js.
What is THREE.js?
Three.js lets you build websites with 3D content. Things like these👇🏻
Check out the source code or the live demo for the above👆🏻
How did I learn Three.js?
I learned Three.js from a course by Bruno Simon(his website is so cool!). I used to find mesh, materials, textures and lighting very difficult to understand, but surprisingly, Bruno explained it so well that all that became easy for me. I now have a much better understanding of those concepts.
The course has more than 4000 enrollments already and I have talked about why it is one of the best ones in the market in this video👇🏻
Get started with Three.js by loading a 3D model in your browser👇
Once you have a good understanding of Three.js check out the WebXR api by Google.
You can combine your Three.js knowledge and WebXR API to make something like this👇🏻
Now you can go a step further and dive into the frameworks like React.js. I am learning the basics of React.js right now. You can then use all of that knowledge to learn React Three Fibre.
Hopefully, this should be enough for you to get started with AR/VR as a Web Developer.
Let's move on to the next one now.
This is only for the Native Android and iOS Developers.
Cross-platform frameworks such as React Native and Flutter are not being covered here. That said, it is possible to create a Native Module in Android and iOS and create a bridge to link a React Native app with that module. So basically you can call a method in Java via JavaScript code. I had done this recently for a project but I am not going to go into the nitty-gritty of it for now.
If you want to develop apps for the iOS platform, use ARKit.
For Android, you can use ARCore. Earlier there was a tool called Sceneform, which allowed developers to visualize 3D models inside of Android Studio. Unfortunately, it is deprecated now. Therefore I recommend using the Virocore SDK. It is basically a wrapper for ARCore and ARKit. Even though it uses ARCore internally and most of the things that you do with Virocore you can do directly with ARCore too but I found that too complicated. Besides, controlling the lighting of a scene, customizing materials or adding textures to a 3D object is simpler in Virocore.
If you want to just make a 3D object appear in AR using your Android Smartphone, then I suggest using ARCore's Sceneviewer. You just launch an explicit intent to do so. 4 lines of code. That's it.
Intent sceneViewerIntent = new Intent(Intent.ACTION_VIEW);
sceneViewerIntent.setData(
Uri.parse("https://arvr.google.com/scene-viewer/1.0?file=https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/Avocado/glTF/Avocado.gltf")
);
sceneViewerIntent.setPackage("com.google.android.googlequicksearchbox");
startActivity(sceneViewerIntent);
Code explanation provided here
Game developers are actually at an advantage when it comes to developing AR/VR applications or AR/VR Experiences. This is mainly because you already have a good understanding of 3D concepts, computer graphics, and the creative mindset required to develop any AR/VR experience.
As a game developer, you either have experience in Unity or Unreal. I haven't worked with Unreal at all, but I have worked with Unity. So I will talk about the latter.
To create augmented reality apps for Android or iOS, you can use any of the following AR SDKs -
To create Virtual Reality apps, it depends upon which VR platform you choose -
This list is never-ending. There are just too many SDKs with their own pros and cons. This issue is being taken care of with the help of OpenXR. I haven't used OpenXR yet so I can't recommend it to you for now, but it does look promising as it simplifies the software development process behind AR/VR applications and broadens its reach to a range of hardware platforms.
https://github.com/KhronosGroup/OpenXR-SDK
It is important to understand the difference between AR/VR applications and AR/VR games. They both have different skillsets.
Hopefully, this article makes it simpler for you to understand how to develop AR/VR experiences as a web, mobile, or game developer. If you know anyone, who is interested in developing AR/VR experiences then I would request you to kindly share this article with them in order to help them enter this exciting and rapidly evolving domain.