Developer Perspective: Creating a “VR Textbook”

Oculus Developer Blog
Posted by Eddie J. Christian
May 8, 2018

Getting started in VR development is an exciting process. Oculus provides a ton of great documents and samples to help you kickstart your VR journey, but some devs are going above and beyond to customize their development tools, supporting others in the process.

Eddie J. Christian is a freelance artist and animator whose studio provides custom code and art content for gaming companies. Eddie extended his expertise to helping students at the Game Art Institute, combining personal passion with professional skillset to spearhead their VR programming class. To help accelerate student development, Eddie created an all-in-one essentials VR Starter Kit specifically for the Oculus Rift platform, that's now available more broadly through the Unity Asset Store. In this post, Eddie shares the story behind his VR Starter Kit for Oculus and provides some tips for devs looking to dive straight into the immersive world of VR.

How it started

I started teaching ages ago at the Academy of Art University in San Francisco. I designed, launched, and lead the Maya classes for both the bachelors and masters programs. Developing these courses gave me a keen awareness of what was needed to properly teach creative classes. I learned that starting a new class curriculum requires a lot of effort and becomes more difficult when special equipment is needed. I’ve spent my whole life telling stories for a living and when I first stepped into VR I was blown away. I took off the headset afterwards and knew that I had the same feeling I had when I first watched Star Wars as a child in the theater. It's like a knot in your stomach that's telling you: “now the entire world is different". The level of involvement in the story made all other media feel Inadequate at best and I knew that I had to be involved in VR storytelling.

It took a year to get the first VR class going and, I am happy to say, we are starting our THIRD session of classes in a few weeks.


I was tasked with creating the first VR game programming course and had less than 3 weeks to come up with an example VR application. I knew that the first thing I wanted to show was how easily you could prototype a game in Unity. Prototyping is the basis for successful development processes. If people become obsessed with little details at the start it can become a web that ensnares the whole process, eventually grinding it to a halt. But, if you build a simple prototype with the basic layout and flow of the final output that you wish to create, then magic happens. First off, the game has become "REAL" it's right there for everyone to play. Second, it can tell you right away if the flow of the game matches the story you wish to tell. And if it doesn't match well then you can fix it in a couple of hours without a heavy lift.

So, I contacted the best Unity developers I knew: Lennart Johansen (Vegetation Studio), Adam Goodrich (Gaia), and Hendrick Haupt (Enviro). I told them about the classes I was designing and asked them to be my sounding board on what was possible to teach on an Oculus Rift during a 12-week course. All of them kindly volunteered their time and a “Prototype Island” with tens of thousands of plants was created for our first internal test. The biggest challenge was to pack the environment with as much as possible and still maintain the high frame rates that VR demands. An island is one of the perfect worst case scenarios and a great testing ground for all of the assets we wanted to pack into this prototype. On an island, you can go from a building interior to a dense jungle with thousands of objects and one of the biggest problems for all video games is that transition from an interior to an exterior landscape. Most call it a CPU killer. Add to that the fact that on the beaches and mountain you could see an infinite ocean off in the distance. This meant we couldn't cheat and limit our camera's range. Limiting how far a camera can see is a great way to speed up a game but, on an island environment, you don't have that luxury. Also, an ocean is also basically a giant mirror with possibly thousands of objects being reflected.

Add to that the fact that a prototype used to teach VR is very different than a prototype of an experience and you have a challenging first task. This vertical slice had to provide users with an experience that captured as much VR functionality as possible. We started off by working out how to shift certain functions to the video card's GPU. This allowed us to do quite a lot. The Island was massive and even had night/day cycles and weather. I knew if we could get the island to work we could create anything.

Afterward, I took the prototyping to the next level and created the Blade Demo to show how you could quickly create a VR environment that also told a story. For me as a filmmaker and teacher, I wanted to stress that telling a story was the most important aspect. The mechanics of game development can become as dense and difficult as you want but finding a simple method to tell your app’s story is key. The most surprising thing for me was the impact of spatial audio. My entire career I stuck with handling the visuals. Leaving the audio to other professionals. But it immediately struck my how much this pulled you into a story. In the Blade demo, I have a ship landing, an overpass overhead with traffic noises, pigeons flying about, rain, lightning, and thunder. Creating the spatial audio for all these elements pulls you into this world like nothing else. Now spatial audio is an essential part of my process.

TIP: Start with your story in mind. Then prototype quickly. Refine. Repeat. This method helps you stay focused on your app’s core story and will create a cohesive experience for your users.

Creating the “VR Textbook”

The missing item to the course occurred to me a couple weeks into the first class: We needed a text book. All classes have a required text and it was the missing piece that would push the class towards success.

Thus, the VR Starter Kit for Oculus was born. This kit is designed to let you focus on being a VR storyteller by allowing you to move in your world easily and dive straight into handling and throwing objects, walking around environments, and more. I even added custom UIs to make it even easier for students to follow. I started by making a list of all of the VR aspects that helped me communicate my app story through VR. This included spatial audio, avatars, hand models, and movement. From there, I tapped the Oculus sample library for inspiration and made a few modifications to allow devs to create almost immediately. For new students or developers that need a refresher, this kit provides a visual breakdown of recommended scripts to help you throughout your process.

So far, I’ve seen the kit speeds up students’ ability to get straight to telling a great story. Since its been added to the classes, production speed and quality of student projects has dramatically increased. One amazing example is of one of my first students, Orly Rodriguez. When he joined the program, he had little to no knowledge of VR Production. But, over the course of 12 weeks, he developed his first project which has launched his new career as a VR developer. His class project was invited to be at the Raindance Film Festival in London this year and he now has a 7-member team. He will be the first to tell you, that his life is now completely different and his passion for VR storytelling is coming to life. As a teacher, this is the result I truly hope for.

The VR Starter Kit for Oculus is now available on the Unity Asset store. Proceeds go towards the creation of a VR Motion Picture Studio.