Several weeks ago, I posted an article about how I got into VR development and ended on a few points that I used to guide myself through the process of learning virtual reality development. Since that post, I’m often asked for more advice on how to get into the industry or how to start making money as a VR developer, and the truth is that this varies immensely on a case by case basis. That said, there are a few things that I encourage everyone to consider before taking the plunge into VR development — if you’ve been thinking about becoming a virtual reality developer, this post is for you!
1. What hardware is available to me?
Not every VR developer has every device out there. Some development studios are working on exclusives, and content creators who are close to launching popular titles often have contacts at the major device manufacturers who give them exclusive access to developer hardware. When you are just starting out on your journey as a VR developer, it may not be feasible to get hands-on with the more expensive devices right away, which isn’t a problem, but is something to help you narrow down the scope of what your first projects should aim for. Desktop-caliber VR headsets generally require a beefier computer than what you may already have, but mobile VR has created a lower entry point for developers who are just starting out.
You probably don’t want to try to build a game without access to specialized hardware that you may need, so keep that in mind as you start thinking about your application and the hardware requirements it may have. Not having the exact consumer device won’t be a showstopper, but you may not want to dive right in with developing for Oculus Touch if you want to be able to start testing right away and have no experience with building VR apps.
2. How much money am I willing to invest?
You can begin developing for VR without a huge upfront investment. Although there was some backlash when Oculus announced the $599 price tag for the first version of the Rift, the current VR industry doesn’t require that much of an investment right out the gate, especially if you’re a developer who wants to try out an experiment or two before making the decision to develop full time for VR. At the lower end of the spectrum, Cardboard is a great entry level headset and provides a free SDK for getting started — great for anyone with an iOS or Android device and a preliminary interest in virtual reality hacking. Many of the basics for virtual reality development are around 3D programming in general (of course, the more serious you get about building apps, the more specialized knowledge will be required) and learning how to build an app for Cardboard to start with is still going to be helpful if you decide to make the investment later on to buy more resource-intensive devices and hardware.
Cardboard viewers start at about $12 on Amazon. If you’re looking for something a little higher end, you can find other mobile viewers from $35, or, if you already have a Samsung Galaxy S6, S6 Edge, Note 4, or Note 5, you can consider a GearVR for $99. The desktop-based Rift will run you $599 on a preorder, and preorders for the HTC Vive will open February 29th, 2016.
On top of the device costs that you might have, consider putting aside some money for events and meetups. Many VR meetups will have a small cover fee to help address the expenses of venues and food, but are invaluable resources for networking with other developers and learning about the news in the industry. Conferences can be another great resource for learning and seeing what other developers are working on, but can be costly if not added to a budget in advance.
3. What is the time commitment I’m looking for?
Going down the rabbit hole can be a time-sucking endeavor, but it is also incredibly rewarding. First, you read about the VR industry and start to get the prerequisite background knowledge about the device ecosystems, design strategies, and figuring out what device to buy. Then, you get your first headset and are inundated with fun new apps to try and spend time in. After that, you get to dive deep into a particular platform, learning new APIs and toolsets, and you might start talking to developers on Twitter or ZapChain. This is something that is within your control, but it definitely helps to think about how much time you want to commit to building an application or learning more about the ecosystem.
If you’re just starting out with the industry and want a quick primer, I made a 10 minute overview video on the basics of VR development that help provide a 30,000 foot view of today’s developer ecosystem that might help you flesh out an idea of what approach to take for your own learning strategy.
4. How can I make my existing knowledge work for me?
When I first began experimenting with VR development, I chose Unity as the game engine I wanted to work with because I had 4 years of C# coding experience on the .NET platform building applications for Windows. There are quite a few options for building virtual reality apps today, so one thing to think about when you’re deciding where to start is whether you want to learn an entirely new skill set, or build off of your existing developer knowledge to ease into it.
If you are a web developer:
- WebVR is an experimental API that uses Three.JS and WebGL to create VR-enabled websites in Firefox and Chromium
- A-Frame is a new markup language from MozVR that allows you to write VR content using an HTML-style language for browser-based VR
If you are an Objective-C or Java developer:
- Unity supports building apps to both of these mobile platforms using C#, UnityScript, or Boo for scripting
- Cardboard and GearVR have native SDKs for using Java to build native Android applications through your mobile IDE of choice, or Objective-C in Xcode.
If you are a C# developer:
- Unity supports C# scripting with rich 3D building tools in their editor
- Unity cross-platform export functionality to multiple platforms, including Android, iOS, Windows
If you are a C / C++ developer:
- Unreal uses C++ as their scripting language in the editor
- Write directly to OpenGL with the Oculus SDK (Link to Oculus documentation)
- OSVR provides a Core repository and an Unreal plugin
- OpenVR API interfaces in C++
This isn’t, of course, a comprehensive list, but it may help you figure out what may be most relevant for you. Developers just looking to see what goes into a sample application or poking around at an example codebase may find the following resources useful:
5. What do I want to build?
In addition to helping you decide what tools you’d like to start working with, having a basic idea of what you think you may want to build in the future will help break down your projects into actionable, applicable learning steps. If your dream application involves beautiful environments and rich textures, learning how to use a terrain editor is a good first step. Curious about writing your own stereoscopic renderer to create innovating tooling solutions or upgrading an existing game that you’ve written from scratch? Playing around with a native SDK and the graphics pipeline will help you see how other implementations are being done.
6. Do I have a niche area of interest already?
If you’re incredibly passionate about rich 3D audio, it might not make sense to get started from scratch learning a particular framework for, say, lighting and environment design. Consider what your interests are and how they may be relevant to the growing VR industry. See if you can find a few developers already working in the realm you might be interested in and ask if you can send them a few questions over email to see if it might be an area worth digging into more. If you’ve got an interesting idea, try looking at GitHub to see if there are any projects that you can read through and contribute to. Be creative!
For more resources about the virtual & augmented reality industry and how to learn VR development, consider subscribing & follow me on Twitter @misslivirose!