A Virtual Reality experience to showcase vertical space in VR by simulating walking up stairs of a lighthouse
Create an experience which is worthy of the BVW Festival, an event that occurs once in a year which showcases the best worlds of the Building Virtual Worlds class. Out of the total 80 worlds, about 15 are selected to showcase.
Team Size: 5 Role(s): Programmer, Designer Engine: Unity3D Platform: HTC Vive
To come up with an IDEA. Two days into our assignment, we had the full idea of a world. A space explorer lands on Earth to collect ancient relics and is shown the power of nostalgia through an 80’s inspired arcade machine. We had the theme and story arc down, we were working on level design already, and we had a sense of enthusiasm about it. There was only one problem: it was way out of scope. So, sadly, we had to sacrifice that idea. After a handful of meetings, we started thinking of more ideas. We looked at previous projects, and found one project which really caught our eye because it made use of vertical space in VR. We started thinking about different ways to implement vertical space, and after a brainstorming session, the one idea everybody had in common was – a lighthouse, and in a dark, creepy environment. I have always loved to do horror, so I was immediately sold on that idea.
We gave the guest the role of a lighthouse attendant. The basic premise is that a ship is stuck in a storm. Due to some complications, the light from the lighthouse turns off. The job of the attendant is to walk upstairs and pull a chain to save the ship. The VISION was to bring the following values and emotions:
1. Guest should feel immersed into the experience, so focus more on the experience itself rather than other unimportant bits.
2. Guest shouldn’t feel discomfort.
3. Guest should get a feeling of freedom.
4. Guest should get a feeling of accomplishment when they reach the top.
Our co-producer and sound designer, Liam Philiben found a research paper online, which discussed the simulation of walking up stairs in VR. We really liked that and decided to implement it in our project. The basic idea was to create a slant such that it would feel like an edge of a stair with eyes closed. However, it increased our scope by a lot, because we had to spend making props in the woodshop. Luckily, we had a Mechanical Engineer in our team, our co-producer and artist, Derrick Pemberton. Our artist, Julian Ochoa made the in-game staircase, the lighthouse itself and iterated as per the programmers’ needs. We COMMUNICATED this idea to Jesse Schell and Dave Culyba and they were positive about the premise. We also talked to them about the MECHANICS in game that we were going to use. The main mechanic was very simple – walking. We attached two Vive trackers to each of the guest’s feet, and then tracked those trackers in the experience as virtual feet. Thankfully, it worked out, and nobody complained that it felt unnatural. To most of our playtesters, the feet seemed real as it responded with real life movement. Considering our SCOPE of three weeks, and so much to do, we made that our primary mechanic, which we would be spending the most time on. There were a lot of technical difficulties, which I will discuss in detail in the latter part, but perfecting walking up stairs was something Chance Lytle (co-programmer) and I never thought we would spend sleepless nights thinking about. Apart from that, to give the guest a feeling of freedom when they reach the top, we made a chain which the user must pull to start the light back on, and save the ship. Concurrently, by first week, Derrick made 8 prototype stairs for our first demo showcase. Because the stairs weren’t tight, they would slide away if someone walked on them, so one of us would always try to hold on to those stairs during our playtests. Dave Culyba tried out our game during the first demo and said that this could be really big if done perfectly. So, we started focusing more on it. We also added a fun part, where we placed a table fan in such a way that when the user would come across a window, they would feel the breeze from the table fan.
SCHEDULING was a very important aspect of these quick rounds. We had at least two 30-minutes long meetings everyday and we would make a to-do list at the end of each meeting. Everyone was assigned specific tasks, and me, personally, I used notes and created my personal deadlines to make things. By mid-week 2, we had mechanical plans for the stairs and the lighthouse ready.
And by the end of week 2, we had our final stairs ready! The stairs held together, they were carefully designed, and we also sanded and stained them so they didn’t feel uncomfortable to walk on. We had several playtesters and people were blown away by how real it felt. During our second interim, Jesse Schell tried our experience. He was also very impressed.
My ROLE as a programmer was to use SteamVR at its most to create a good experience for the guest. To give user one primary mechanic, and to master it, was the objective. One of the CHALLENGES designing this experience was, how to move the guest higher and higher as they walked, and do it naturally so that they don’t feel sick. We iterated a lot on that. At first, the world would move with downwards with time, so the guest felt like they were moving upwards, but that was thrown out of the window even before it was correctly implemented – simply because that’s not how it works. Then, we came up with the idea of moving the VR Camera vertically upwards with its horizontal motion. For that, we tracked the angle that the guest created with the center. As the angle went up, the vertical motion would go up. But, this caused problems because of the different ways people walk. Some people walk leading with their head, some people walk leading with their feet. So, for our final solution, we also checked the location of the user’s feet and taking that in account as well as their head movement, we moved the camera upwards and it felt very natural. Arriving at this solution took us a lot of iterations.
While we were fighting against this, we also had another, a bigger challenge, as to how to not have the feet clip through the stairs. At the beginning, we were directly using the feet model with the tracker. Naturally, Unity was very adamant with the tracking and it overrode the colliders, so the feet would clip through the stairs almost every time. Then, we modified the design such that an empty gameobject was being tracked, while the feet were following its transform. This, also failed. We slightly changed the model so that this time the feet were following the velocity of the gameobject’s rigidbody. This solved our clipping issue, but, it was too slow. Calculating the velocity every time the guest moved their feet created a noticeable lag. Finally, we decided to implement joints. We could not believe that the solution to this problem was so simple. The feet were indirectly being tracked as they were fixed-joint to the empty gameobject which was actually being tracked. This solved our clipping problem by 95%. There were still clipping problems sometimes, but very rarely. It mostly occurred during an event in which the step the guest is about to step breaks, and they have to jump over to the next step. But, it fixed itself automatically in the next few frames, so it was forgivable. We finally had our perfect product!
We submitted our world to the festival, and the jury loved it! We made it in the festival. We decorated to give it a dark ocean-side aesthetics. We also projected the exterior of our own lighthouse on a screen behind, and there was a large TV for spectators to see what was going on inside the experience.
We were also using the wireless module for the Vive so the cable wouldn’t tangle for moving in spiral. We conducted some final playtests before the festival.
We were all wearing ponchos, and the people waiting in line were given life-jackets to add a funny aesthetic element in our world. People were blown away, and we had a lot of great reaction. People refused to believe when we told them that this was done under three weeks. People found it fun, innovative, scary, mind-blowing and it was one of the favorites. On their way out, everybody received a Swedish Fish candy.
We also found some reactions on Twitter, which had never happened to any of my projects before, so I was extremely proud.