In my last post, I mentioned that I was headed to Germany to teach virtual reality development and I’m back in the States with 10 fewer Cardboards and lessons learned on virtual reality development. Getting the opportunity to teach something that I am incredibly passionate about as part of a women-in-tech summer program internationally was nothing short of a dream come true.
The class format was five days of classes, 3-5 hours per day of course material. The students were women in various stages of study and industry interested in VR, all with varying ranges of development experience. None had previous VR or game development experience.
When I originally submitted the course, I had intended to do a 2.5 day session that would teach the basics of Unity with a VR SDK component – this was back in January, before Unity 5.1, and I figured that would be a good place to start- but after talking to the organizers at the Informatica Feminale, we decided to extend it to the full week and I’m very glad that we did.
Monday: Overview of the VR Industry, the basics of VR development, getting familiar with the ecosystem and hardware labs, intro to graphics programming
Tuesday: Introduction to WebVR, using Vizor Create to demonstrate how components of a scene work together and introduce scripting, reviewing the WebVR boilerplate code, and building a website for VR!
Wednesday: Introduction to Unity and building with Cardboard
Thursday: A review of the previous topics, a little more Unity, and open development time!
Friday: Finish up apps, Intro to Augmented Reality
One of the things I often forget with VR is how much opportunity there is to share it with people – I may have six different types of headsets sitting around my desk, but it’s easy to forget that most people still haven’t had a chance to experience it themselves yet. To get everyone familiar with the types of VR headsets out there, we did two different hands-on labs: one building Cardboard viewers, and one where students broke into groups to learn about several headsets/input devices: Homido, Wearality, Oculus Rift DK 2, Leap Motion, and Nod Ring.
On Wednesday and Thursday, the focus moved into development for native VR applications with Unity and the Cardboard SDK. Students learned how to build 3D environments and how to work in a visual game engine editor, and how to integrate external packages for virtual reality headsets and input devices into their games. We reviewed the basics of scripting a Unity environment to make a game interactive, and the challenges of input with VR devices. Each person in the class spent time building their own applications and games, with some opting to build for the web and others choosing Unity. It was a great mix of game and non-game applications, and I couldn’t be more proud of what they were able to accomplish in such a short amount of time.
There are a few things that I’d change next time I teach a VR workshop, and plan on improving for future versions of the material. With the variety of different development environments available (some people used Linux, others Windows) and the range of different hardware being developed on, there were challenging moments with compatibility and performance of Unity on some laptops. Future events would run more smoothly in a lab environment, with the tools pre-installed, over a BYOD-style class.
I also wish that I had more time to compile resources available for specific topics and questions. I had tried to do this a bit before the class began, but I didn’t end up getting as much together as I would have liked. I think that the course site I put up was a good starting point, but it’s an area that needs a lot of work to make learning VR development cohesive and easier for new developers to follow.
Lastly, keeping track of versioning would help keep things running smoothly throughout the week. While I was writing out labs, I was using various versions of the WebVR boilerplate code, toolsets, SDKs, etc. and not keeping track of the ones that had been updated since writing out the tutorials. In some cases (example: there were interface changes to Vizor that I couldn’t figure out the morning of the lab) this was something outside of my control, but in other cases, it would have been beneficial to make notes of which versions of browsers, Unity, etc. I was running to make sure that demos didn’t break, or to cut out compatibility issues when troubleshooting. However, given the current state of VR development, this is likely something that will stabilize as time goes on.
Teaching VR development was one of my favorite ways to share my passion for virtual reality technology, and I am so thankful for getting the chance to go out there and do this. I’m in the process now of converting the course material into an online-friendly format so that interested developers can walk through the resources at their own pace and get a little more guidance in what exists out there in the VR development world. It’s still very much a wild-west kind of place, but it could not be a more exciting time to get involved.
Interested in finding out more about Intro to VR Development making its way to the web and available to anyone, or a VR workshop at your event? Follow me on Twitter @misslivirose for all of the latest updates!