Wonder is a Virtual Reality experience designed for the final project for the 4th year Simon Fraser University course; IAT 445: Immersive Environments. The goal of the project was for the players to experience an environment that is impossible to traverse through in real life. The work was inspired by the paints of MC Escher, where at first glance the environment seems normal, but with close observations, the optical illusions show that the environment is indeed, impossible in reality. The user traverses through two different environments where through progression they will traverse through the environment in a different perspective.
Academic Course Project | Role: 3D modeller, scripter, producer | Project Type: 3D Virtual Reality Simulator
Program/Tech used: Autodesk Maya, Unity 3D (game engine + C# scripting), Oculus Rift DK2
"What would it feel like if you could walk on the roof? the walls? Down is up and left is right?"
Rather than doing replicating a real world scene in virtual reality, we wanted to try something a bit different from the rest of the class. Rather than designing a big world for the user to explore, why not design a single, compact environment that allows for multiple ways of exploring? When MC Escher's works were brought up during a brainstorm session, the concept took shape.
Possibilities of Virtual Reality
With Virtual Reality, it was possible to replicate MC Escher's paintings where the user can walk on the roof or the side walls where they can view the world from a different perspective. The goal was set to design a world where the user would be immersed to believe that they were performing such feats.
There is no "goal" in Wonder. It is more about the visual experience gained during the experience rather than the satisfaction of completion of the experience. Each world had 3 to 4 perspective shifts. The user is placed on a linear walkway which leads them to a door. Once they go through the door, they will be brought to a different part of the world but in a different orientation. For example, the user will see the building in-front of them is pink. But once they go through the door and come out , they will notice that the building is now green and not pink. The pink buildings are now facing downwards which makes the user realize, they are now upside down. Wonder is built using the Unity3D game engine with controls performed on a Xbox 360 controller.
Creating the illusion
We designed two worlds for this experience; a cloud and a water world. Each world has their own style and opportunities for immersion. Cloud affords air and wind and Water affords...well water! Each world had interactive set pieces for the user to trigger. For example, flowers would bloom, the giant guardian deity would do a little greet and a giant whale would fall from the sky. We wanted to have objects that are interesting and for the user to be curious about in order to create these moments. The experience in its simplest form is walking through point A to B in a straight line going through doors.
Because creating multiple versions of the world for each perspective is tedious, we designed a world with all the orientation paths implemented. This way, all I had to program was rotate the entire world to the orientation I wanted to show (vertical shift or horizontal shift) and create a new scene based on that orientation.
My role was modelling the various objects in the two worlds and arranging them into Unity 3D. I had to put all the pieces together and create the routes the user would walk on from point A to point B. This required a lot of checking of proper collision of the player-camera object and the world so the user doesn't fall to their deaths. Because VR demands a strong performance platform to run the experience smoothly and me being the only member of the 4 man group owning a powerful enough machine, I had to create and test the entire experience on my own. In a way, on the technical side, it was a one man job in terms of production.
First VR project afterthought
The major takeaways from this project is the importance of optimization. Not everyone is going to have powerful computers to run all VR projects. Thus optimizing the assets and performance is important for the health and the enjoyment of the user. There are many features we would've liked to had in the final build, but due to performance lag and the dropped frames made it impossible for us to keep it in the game. But sacrifices need to be made to deliver a polished product and that is what I learned to do during this project. Also VR is not very kind to people wearing glasses.