Hey folks. Long time no talk. School's over for me, and the moonlighting profession has been taken up once more. However, I want to wind the clock back to the beginning of my previous quarter at UCLA, during which I enrolled in a class called "Game Development with the Oculus Rift." I couldn't refuse an opportunity to take such a class! In this blog post, I'm going to cover what it is like to take a class in game development, especially with virtual reality in mind, and how a class like this may benefit you or not.
What makes Virtual Reality any different?
At first, when we were all coming up with ideas for our games, a lot of them were rejected outright by our professor. The continuity needed in virtual reality requires a different kind of gameplay. There can be no cutscenes, no eye-blinking, no arm movement, no looking at oneself in mirrors—all these things can break the experience. This limited selection caused around eight of our fourteen teams to create horror games. Luckily, our team went a different route, really focusing on how the Oculus Rift allows a new range of movement with the head.
What did my team do, specifically?
We named our game Heighten on the premise that the player has the ability to heighten his senses after focusing on an object. Imagine the game has the player start tied to a chair, and there are two guards talking outside. With the Oculus, the player could swivel his head and focus on the guards. Slowly, his hearing perception increases, and what used to be the quite mumble of the guards now seems as if the guards are whispering in your ear. A picture with a link to a full video below demonstrates our attempt to catpure this experience
The intro should be enough to understand what's going on, but to put it into words, some of the guards holding the player captive are actually on the player's side, helping him escape. Nothing distinguishes them except for the scent that can detected by a very powerful sense of smell, one the player can develop if he focuses. Problem is, focus too long on the wrong guard and he starts to get the feeling that someone is staring him down, and tells the player to get back to work. Through the game, we focus on head movement, AI interaction, and trying to keep the player invested in this "undercover" feeling. The guards that do want to help give you tips to help the player solve the puzzle in each level, granting him access to the next stage. 1
Technical Takeways
- Always keep your audience in mind.
- Ask for feedback as soon as you can.
- Parallax mapping is a must for detail in VR.
- Use Unreal Engine's Blueprints for prototyping.
- Understand your hardware limitations!
The first two go hand in hand. I hade two roomates who could have easily provided instant feedback, since they were my target audience, yet I didn't show them the game until the very end. That was foolish on my part, since I could have changed so many little things much earlier on, like if the heartbeat were too loud, or the focus mechanic took too much time, or whether or not the clues were easy enough to understand. Readers, when you have a chance to receive feedback, take it!
Parallax mapping is an enhanced form of bump mapping, giving small depth to textures. From http://graphics.cs.brown.edu/games/SteepParallax/
While the effect is minimal, it greatly helps create better immersion with more realistic objects in VR.
Unreal Engine's Blueprint system is phenomenal for GUI based programming. However, the deeper you get, the more complicated all the wiring becomes, and frankly, my team was frustrated at points where we felt the blueprints were limiting our coding. For prototyping, it is amazing, simply because of how fast one can crank out logic. But when classes and entities become necessary, and algorithms are more compilcated than a for loop or two, I feel coding it in C++ would have been a faster approach.
Number four is just an Oculus VR thing. At the beginning of the quarter, none of us had a machine with the specs capable of running it, but we managed to MacGyver a solution to get a Windows machine with a good enough graphics card to start development. Do the research beforehand and know the hardware being handled. It never hurts to come prepared, and it always hurts when you don't.
Now, for the qualitative analysis.
It is Time-consuming
Somehow, I thought things would be different. I thought this would be a structured class with both the theoretical and the practical in mind. I thought it would have projects involving different aspects in VR, and that I would have ample time to do it all. I was wrong.
The class consumed both my time and my thoughts. It wasn't very structured in the beginning (were we doing two games or one; was multiplayer a requirement or a plus?) and we only had a grasp of what was expected of us halfway through the course. Our team was working well into the night, and I actually skipped all my classes the final week and pulled 4 all-nighters (3 back to back, with about an hour of sleep total) to work on the project. Life was tough.
It is a Recurring Theme
I don't want to perpetuate the idea that game development is a career that demands sleepless nights and a risky future. Maybe it's just that as new developers in a market saturated by the like, we don't learn from each other's mistakes as well as we should. Only problem is, the wise learn from other's mistakes (via postmortems), but the wise realize that learning is doing. So who is wiser? I can't answer that yet, I'm still reading the postmortems.
On the flipside, everyone in the class suffered similar fates and voiced similar concerns, so at least we were all in this together (another recurring theme)!
It is Rewarding
Getting week to week homework isn't much of an achievement. But getting a solid demo for a game in ten weeks is greatly rewarding. Being able to physically work with other game developers isn't something new indie developers get the chance to do, so this was a new and exciting experience. We were able to receive continuous feedback from our professor and iterate on the game to the point where experts from Unreal Engine who had come down to take a look at our games were thoroughly impresseed. In game development, it's the feedback developers look most forward too, and to receive such praise from professionals in the field is more than any student could have hoped for. In fact, just last week, our professor gave a forty-five minute lecture on "AI Interactions in VR", including video clips from each of our projects at Siggraph. How many students get that opportunity? I was happy with the class' conclusion, to say the least.
Conclusion
Should you take a game development course? I think you should, but only if it offers an interesting experience or one that isn't easy to obtain. For me, being able to use the Oculus Rift sealed the deal. If it were a regular game development class, I may not have taken it.
Once you've committed to the class, prepare to sacrifice a large number of hours. That being said, it still is a class; enjoy your time spent, see what others create, and enjoy the experience.
1: Forgive the game for any lackluster art or bad voice acting. A budget of $0 and a timeframe of 10 weeks doesn't leave much room for these choices, since the game mechanics were much more important than the stylistic concerns, even though we were dealing with a VR experience.