Breach - A Multiplayer VR Experience

Breach - a Multiplayer VR Demo

Summary: “Breach" is an asymmetrical multiplayer VR experience, where two players must rely on each other to navigate a Tron-inspired maze environment. The players have unique roles: Player 1 must walk through the environment, collect tokens and avoid being caught by robot enemies before time runs out, while Player 2 uses their birds-eye view of the environment to guide Player 1.

"Breach" was built as part of VR Lab, a selective program in New York City that empowers creative technologists to build VR/AR/MR prototypes and explore immersive new media formats. I collaborated with 3 talented developers to create "Breach" for Samsung Gear VR, using Unity and C#. This was my first VR experience!

Above:  The mobile broadcaster view once a guest has been selected.

Design Process

We started with a blue-sky brainstorming exercise to help us think big and come up with compelling multiplayer VR concepts.

Once we landed on our idea, we identified important themes we wanted to explore in the design of this experience:

  1. Interactivity - For us it was important to ensure that our VR game was highly interactive, to take advantage of the unique strengths of virtual reality as a medium. We chose to use a game controller as an input, to allow players an intuitive method for engaging with the world around them.
  2. Scale -  One person sees & interacts with things at an intimate scale, and the other at a birds-eye, high level scale. This can translate into interesting gameplay, where the first person player can see and interact with smaller objects, while the third person player cannot, but has the power of a unique perspective. 
  3. Voice - We believed that voice would be an important way to create a strong sense of presence and interactive gameplay between the two players.

From there we began a very iterative process of trying things and seeing what works, focusing on interaction over pixel-perfect UI design. 

  • We created a 3D model extrapolated from a Google image of a floor plan of an office building to prototype the maze experience and get the proper scale of the maze relative to the player.
  • Once we determined the proper structure of the maze and determined the flow we wanted the user to take, we added furniture and decals, a neon trim on the floors and walls, and ambient lighting to bring the scene to life.
  • We constantly created builds to test on our Samsung S6's, to get feedback on every little change we pushed. This helped us to move quickly and build a solid UX.
Above:  My teammates Rehmat Qadir and Christopher Hill testing out a demo build of the maze. While we could often preview the maze in Unity, there was no replacement for putting on the headset to understand the full user experience.

Above: My teammates Rehmat Qadir and Christopher Hill testing out a demo build of the maze. While we could often preview the maze in Unity, there was no replacement for putting on the headset to understand the full user experience.

Above:  Working with teammate Rehmat Qadir to prepare a build on demo day. 

Above: Working with teammate Rehmat Qadir to prepare a build on demo day. 

Results & Learnings

We presented the game at the VR Lab demo day, and it was very well received. Here are a few things we learned:

  • The collaborative dynamic between the two players made the experience compelling. When the first-person player wearing the headset didn't have good guidance from the third-person player, they didn't have as much fun in the game.
  • The third person player helped the other player to navigate by viewing the maze from a laptop screen. This was a bit unwieldy - an iPad would have been easier to use.
  • Audio is very important to creating a sense of presence.
  • Many people mentioned that they could have spent much more time in the game. This was a good sign for us, that we built an experience that was compelling, interesting & comfortable to use. Many VR demos were nausea-inducing, but my teammates we were able to optimize our performance to eliminate this effect.

In the end, I think this asymmetrical gameplay serves as a unique interaction model for collaborative interactive experiences where people can come together from anywhere in the world, to accomplish something meaningful together in VR. I learned a lot from this project!

<< Back to My Work

Curious to see more of the ideation process?

See below for an initial doc I put together summarizing the original requirements for this project. 

Helpless - A VR Concept

A. Concept Summary
“Helpless” is a multiplayer VR experience, where two players must help each other to escape a maze-like environment. The players have unique roles - Player 1 must navigate through the maze from a 1st person perspective, and Player 2 has a birds-eye view of Player 1, with the role of helping Player 1 escape. 

Story: Imagine waking up and finding yourself trapped in a massive, life-sized maze. You need to get out of there - fast!, but you’re all alone. Luckily, you find a walkie talkie, and attempt to communicate - and someone responds! The other person can see all around you (god view), and is your only hope at escaping the maze. Good luck! (imagine a combination of Maze Runner, Hunger Games)

  • You wake up in a glade enclosed by massive concrete walls covered in ivy, unsure of where you are, and why you’re there. All you know is that you need to find a way out. 
  • Looking around, your surroundings are somewhat ominous. You see a sign engraved into the mossy walls “The choice is yours - starve to death, or find your way out of the maze."
  • You find a walkie talkie lying on the ground, and attempt to communicate, hoping you can reach someone.
  • Suddenly a voice speaks in your ear, “Hi [PLAYER NAME], My name is [PLAYER 2 NAME]. We have to get you out of here. But if you want to get out alive, you have to listen to me. I can see you and give you guidance. You have to trust me.” This role is played by a real person, who can see the 1st person player in the maze.
  • The concrete walls begin to open, and you take a step forward to begin navigating the maze.
  • You are engulfed by the massive concrete walls all around you - there is no way out, except by finding your way out of the maze. The maze is filled with diverse challenges / perils, some easier to overcome than others. Some obvious (to make things fun), and some hidden (to make things interesting). And there’s also the natural simple challenge of navigating the maze. Perhaps there is even a dangerous creature hidden in the maze.
  • If you make it to the end of the maze, you win! If you succumb to traps, you lose and start over at the beginning of the maze.

B. Core Gameplay Requirements

  • Roles:
    A) 1st person player navigating through the maze experience,
    B) 3rd person player with a “God” view, who can see and help the 1PP
  • The players must be able to communicate with one another. This could mean voice/audio, or something else. 
  • “SCALE” is the theme we are playing with in this experience. One person sees & interacts with things at an intimate scale, and the other at a birds-eye, high level scale. 
  • Together, the two different roles need to escape the maze
  • Both players need to be equally engaged in the experience. This can be achieved by making the players interdependent, and no player more "powerful" than the other.

C. Technical Requirements

  • Unity / C# 
  • Networking - UNET, Firebase
  • Voice input? To allow users to talk to each other
  • Real time audio encoding/decoding
  • HMD: Gear VR would be great & simple. We need to test & make sure environment is not too taxing on GPU  - not too many polygons

D. Elements We Need to Build

  • Lighting fixtures, throughout the maze
  • Puzzle interaction UI
  • 3rd person camera, connected to the 1PP camera, with ability to turn head to look around, but still being connected to 1PP.
  • Configure Input movement controls, for 1PP and 3PP
  • Mechanics of interaction with environment, for 1PP and 3PP
  • Time indicator, over the UI, for 1PP and 3PP
  • Colliders as triggers, to set off alarms, or signal success, etc
  • Character modeling for 1PP, so 3PP can see them moving throughout the maze (not just RigidbodyFPSController)
  • Visual cues OVER the rooms, to give 3PP a clue as to which rooms are important, which are dangerous, inaccessible, etc. 
  • Audio: machine-like hum of neon lights, alarm sound when the user enters a forbidden area, footsteps of guards coming down the hallway
  • Communication: goal is to make voice work, if it doesn’t work we will need a backup. Could be as simple as 3PP pressing a button to send a clue to 1PP in the UI, and then they see a clue show up for X seconds, and then disappear. (Code: D7FK872, for example)
  • Celebration feedback when the user A) completes a puzzle B) successfully completes the maze
  • Themes / purposes for each of the room types
  • Art on the walls, especially in big spaces where there’s open space. Maybe we could put some propaganda on the wall, like it’s a dystopian military base.