Vanish: VR Platformer Game
Final Product Screenshots
Project
This was a graduate school project where a small team, including me, learned how coding, Unity, and game design work. Our objective was to select an active problem space and bring awareness via a virtual reality experience.
Duration: 3-4 Weeks
Methods: Form of Play, Prototyping, Research Through Design, Sketching
Tools: Adobe Illustrator, C#, Microsoft Visual Studio, Unity
Context
The group consisted of Gloria Jing, Syashi Gupta, and I. We looked at several different problem spaces and decided we wanted our virtual reality experience to function as a video game, where the user interacts with the environment in a meaningful way.
We looked at several different opportunities but settled on the problem of the world’s ice caps melting more and more every year. Footage can be found of polar bears having to jump from ice block to ice block in order to stay afloat, and this inspired the idea for a platformer game design.
The goal of the game is to collect healthy fish while avoiding unhealthy ones and jumping from platform to platform in order to rescue your baby cub at the end.
Research
Our research was split into two main points: problem space + design intervention.
While looking at the problem space of the ice caps melting, National Geographic quoted, “An example can be seen with the Glacier National Park, that was founded in 1910, that had hosted about 150 glaciers at the time and now has less than 30.”
For design intervention, we settled on platformer game design within a virtual reality space as platformers hold a strong nostalgic grip on most hearts. Adults nowadays had started gaming with old-school platformers like Mario and Sonic. As such, this style of gaming holds an emotional value to individuals that can take action from the experience based on the information provided.
Methods:
Form of Play: We wanted our VR experience to look at tackling agon (tension or struggle against an opponent, in this case, the environment) and mimicry (taking on a persona for a purpose, in this case, emotional storytelling) forms of play, and integrated those approaches into our development.
Prototyping: Using both Microsoft Visual Studio to write code and Unity’s built-in scene, we checked multiple times through prototype how things would work. We wanted the final product to be a working prototype. If working within Unity’s engine, we then exported it to an Oculus headset and tested it there. This ended up fueling how interactions take place.
Research Through Design: A huge part of this project was researching game design while designing the game itself. This process resulted in a rather iterative process, spanning the course of the project.
Sketching: Initial sketches were important in creating a unified visual feel, which we had all agreed on.
Define
Our core objectives were:
Combine environmentally aware mechanics with the traditional and nostalgic platformer to create an empathetic game.
The user jumps from platform to platform, eating fish along the way to reach their sinking cub.
The player controls the movement and jumps.
Test
A lot of taking one step forward only to take two steps back happened a lot throughout this project, however, this led to a richer learning experience where troubleshooting taught more than an initial success.
Accomplishments:
VR Setup: We were able to successfully set up a virtual environment in which the user can look around the space and move using the VR’s controls.
Integration: Originally we developed the scripts and the scene separately and were able to successfully combine the two into a working prototype.
Working Prototype: The working prototype has a scene accomplished through environments and models paired with working scripts in order to move the character along.
Hurdles (with code):
Most of the time spent on the assignment was focused on debugging and making the scripts work. Small mistakes could result in hours of debugging, ultimately lending themselves as a learning experience.
Creating a movement script, we found that when a player jumped, they never hit the ground again, and instead would just propel upward. Our solution ended up grounding a boolean variable in order to check and see if the player is grounded before allowing another jump to take place.
Integrating the movement within a VR headset within the Unity platform proved to be a challenge. The working solution was to tether parent-child relationships between the motion controller and the camera, allowing for a smoother integration.
Initially, the user interface was designed to be two-dimensional that floated to the front of the screen, however, with VR we found that the scripting did not transfer properly. A working solution was to remake the user interface three-dimensionally, such as taking a flat rectangle and converting it into cubes.
Code
Retrospective
Possibilities:
More obstacles: The game could feature more hurdles to overcome. Possibly environmentally aware ones like seals and birds that you have to dodge or jump over.
Animated models: Using animated models would help bring the scene to life and make the person almost feel as though they are roleplaying said character.
Several levels: Designing multiple different levels that ramp up in difficulty as one plays would make the game more challenging and engaging.
Use of sound: Integration of sound or just having a soundtrack that stimulates the user’s auditory senses would benefit immersion.
Increased movement speed: Having the character move faster over the course of the level and making it harder to jump would increase challenge difficulty and simulate progression within the game.
Camera angles: Allowing for multiple different camera angles based on where and at what point you are in the game, such as a potential third-person perspective, could change up the mechanics of the game in an engaging way.