A virtual reality platforming game developed for the Oculus Rift.
University of Washington
10 Weeks • Mar - Jun 2014
Game Development, Level Design, Content Design
In 2014, the University of Washington's School of Design was hosting their annual Bachelor of Design Show, where graduating students present their capstone projects. Students were asked to develop a unique project based on their own interests.
I had recently purchased an Oculus Rift DK1 and spent the year learning 3D animation, so I considered trying something different by making a virtual reality game for my senior capstone project.
Prior to this project, I had never used Unity, written C#, or done much game development before. I had 10-weeks to learn all of that and produce an interesting game demo. My long nights were fueled by a passion for games and a desire to create something of my own.
🎯The Goal: Produce a playable demo for the Oculus Rift that explores movement and level design in VR.
I wanted to create an immersive experience focused on first-person, parkour-like platforming mechanics, that enable you to run around freely and explore the world. I tried to keep my scope in check because I knew game development could be a challenge.
Making Upwards was an iterative process. I used prototyping, online tutorials, and examples from other games to guide my approach.
I spent the first week running through Unity tutorials, learning how to use the Oculus Rift, and figuring what steps I needed to take in order to have something by the deadline.
The initial idea for Upwards came from my obsession with the sky world in Skies of Arcadia and the movement systems in classic 3D platformers.
I like to gather lots of reference images to help with my ideation process. I think it's a vital step for expanding ideas and envisioning possible outcomes.
Sketching helps me figure out which ideas I want to pursue. My early sketches explored what the floating islands could look like.
Originally, I was just going to create a polished environment that players could walk around in, but I pivoted my plan to focus on making the movement mechanics more exciting instead.
I built my character controller and prototype on top of Stopsecret's Peerer's Ledge parkour system. Before I could move on to any level design, I needed to ensure that the mechanics were playtested, debugged, and feeling good.
These are my first two failed attempts at modeling a floating island. The first is an unbroken landmass, where there wasn't much to look at in VR besides a massive cliff-face. The second was an attempt at making a small village, but it felt flat and uninteresting.
Learning from my past mistakes, I tried to improve the islands by designing them to be more vertical and broken up.
The start area was where the game began to take shape. I attempted to transform the traditional main menu into a physical space (that made use of the movement mechanics from my earlier prototype).
The village became the centerpiece for the game. Most of the player's time is spent searching around the village. I wanted to create an unusual layout that made use of negative space and verticality.
The environment surrounding the village was completely empty. Adding background objects helped ground the village and give the illusion of a much grander world beyond.
The end result of my efforts was a VR game demo titled "Upwards." The general plot behind the game is that:
"The village's skybridge has been destroyed by a rogue storm, preventing the villagers from taking their produce and livestock to market. They're in desperate need of someone who can restore the bridge by gathering and returning all of its scattered parts."
Here's a playthrough of the entire demo experience. It attempts to show off some of the different gameplay systems along the way. Note that back when this was first taken, video capture recorded what both eyes see in VR.
Here are the download links for the demo. The game was originally made for the Oculus Rift DK1, so these builds might be incompatible with modern VR headsets (until I find time to update them).
A lot of time was spent refining the core movement system to better facilitate exploration. I tried to make it parkour-like with an exaggerated degree of freedom.
Platform spawning was a last minute addition. I was putting together a platforming focused area and thought that the ability to spawn platforms might be interesting for traversing the space.
Item collection seemed like an easy choice for incentivizing exploration. Players must collect several different items to progress through the game.
The start area was built as a physical embodiment of a UI menu, where text and menus are placed around the space, and walking off the ends will start or exit the game.
I needed UI that could be brought up during the game, so I created a body-locked menu that players can glance down at (rather than have it block their line of sight).
After departing the start area, players arrive at the village, a pleasant environment designed for exploration. The verticality of the space is used to gradually guide the player upwards.
The platforming tower was added near the end of the project because I needed a location that could really challenge the player, and give them space to try out the platforming mechanics.
After 10-weeks of work, I had something that was ready to be presented at the UW Design Show. The event went very well, people crowded around to try VR for the first time, and I made some important connections that eventually led to my job at Microsoft.
I uploaded the game demo online, and received a very positive response from the VR community.
Developing Upwards was a difficult, yet rewarding process. The unlimited creative freedom, catharsis of overcoming challenges, and personal growth made the effort worth it.
Ultimately, I'm proud that I was able to create this VR game. It was the most fun I've ever had on a project, and it reaffirmed that game development is the right career path for me.