Summary
A hectic balancing act played on a game board shaped like an open-top plane, the guest is kept occupied by a combination of popping bubbles (that symbolize the crying), plane stabilization by touching the wings, and finding the parents hiding babies in their seats. Once you’ve found a baby by gazing at the appropriate passenger for certain time, you must move all 3 babies to “First Class” (the yellow zone) which will ultimately calm them down and save everyone!
Project info:
Platform:            Meta II (AR Headset)
Language:         C# (Unity)
Duration:           2 Weeks
Team Size:         5 ( 2 programmers + 2 artists + 1 sound designer )​​​​​​​
Contribution:     Interaction design, Game-play programming

As part of the ETC course 'Building Virtual Worlds', I was tasked to build an interactive virtual world in two weeks with a team of two programmers, two artists and a sound designer. This game is created during BVW Round 1 with the assigned theme: To help character A who is afraid of character B.
Concept
After a day of brainstorming and team meetings, we came up with this concept/elevator pitch:
Everyone hates crying babies on an overnight flight but this time it’s more than a pet peeve! This horror-cute party game makes for a turbulent ride as you help the plane land safely in the wake of supersonic babies shaking the plane.
In this concept, the character A is the passengers and the character B is the crying babies.
Design Challenge In AR
The first design challenge is the use of AR. We know this will definitely be a scene with a plane but AR sets some difficulty for us to decide what perspective players should have. We had two choices: to make a tabletop game size plane in front of your face, or to make a life-size immersive scene.

gaze and grab: use of 'near space'

After quick paper prototypes and sample tests on the platform, we went with the first option for the following reasons:
    1. Meta II is not great at spatial mapping so it won't have the advantage of mixing the environment and in-game  assets in a reasonable way. 
    2. Meta II has better field of view than HoloLens but the real life-size view in this setting is very limited. If the player is at a passenger's first person perspective, there will be fewer visuals of other passengers (and their babies!)     
    3. Gazing and grabbing are more satisfying than other features when playing around with Meta II because they have better responsiveness and accuracy. 

flying In: use of 'far space'

Since the tabletop size design does not really have connections between game items and real world to 'augment' the reality, we were thinking other use of the space to make this game unique on AR platform. In the opening of the game, I made the plane fly in from a distance. This was intentionally designed to give players an emotional impact as the set up for the overall tone which is fun and surreal. 
The main interaction was designed based on the initial goal 'stop the crying baby' and the finding of ''gazing feels smooth". When player looks at a passenger, there will be a hover effect. After gazing for a certain time, such as 3 seconds, the passenger will respond 'NotMe' sound effect or reveal as the 'parent' with the baby. 

Iterations
At this point, we playtested our first working prototype. It did not feel like a complete game. The feedback were mainly focused on the fact that gazing followed by grabbing is not very intuitive. And after playtesters were instructed to gaze, the play through was usually very quick. 
During the first phase of development, I found out that the hand tracking sometimes involved delay in time and did not give a good performance if it is used back to back during the game. However, if I just simply use it to collide with another object, the delay is not as obvious as other tracked action. 
Then I thought about adding additional interactions as some 'distracting factors' for the main game-play feature. 

Additional interaction: pop the bubbles

Procedural generation of bubbles triggered by cries

Popping the cry bubbles came in to my mind pretty easily, since I don't want the hand to be in any specified gesture when playing the interaction. Players can break the bubble at any point and from any angle, as long as the hand is recognized. To increase the difficulty, the bubbles are procedural generated at different spawning point. To emphasize on the hectic vibe of the game, each time a bubble is generated, the plane will start shaking to simulate a turbulence. I wrote the turbulence script using perlin noise so that it is more natural. 

Another interaction was a suggestion from playtesting session. I scripted the plane to start tilting every 10 seconds and it will only stop if player's hand is 'holding' the correct wing.  Keeping the players' hands in a certain area can effectively add the difficulty to complete other tasks and is also fun to watch. 

Additional interaction: hold the wing

Scripted tilting events


You can watch the full game play here:
Back to Top