Inspiration

Play is an innate and essential behavior in our lives. And discovering how tall you can stack objects is probably one of the first play activities we've all developed as infants. However, as we grow older, life tends to become too serious.
With that idea in mind (and also Jenga), we set out to create a fun, silly (and somewhat chaotic) multiplayer experience.

What it does

It allows one or more players to stack random objects (or throw objects at each others' stacks) in a co-located multiplayer environment.

How we built it

Stack 'n' Throw is built with Unity (version 2022.3.31f1), leveraging some of Meta Presence Platform’s Mixed Reality SDK (version 66) capabilities:

  • World
    We used the room mesh with collision detection, shadows, and occlusion effects, alongside passthrough to represent the virtual objects in the real world believably and satisfactorily.

  • Multiplayer
    We used Photon together with Meta Presence Platform's Multiplayer Building Blocks (AutoMatchmaking, Colocation, SharedSpatialAnchorCore) to create a co-located multiplayer environment.

  • Interactions
    The interactions with virtual objects rely on the Meta Interaction SDK -- supporting both hand and controller interactions.

  • Interactable Objects
    The interactable objects were created using the NetworkedGrabbableObject building block, which allows these to be shared across the session to all the players.

Challenges we ran into

  • MULTIPLAYER!
    Against our Team Mentor's (shoutout to Daniel Sproll!) best judgment, we decided to pursue a co-located multiplayer gaming experience. The networking setup is much more extensive than we had initially anticipated. It took our team the best part of the first day to complete all the steps, including publishing the app to the App Lab. It's also extremely difficult to troubleshoot -- particularly in a fast-paced environment.
    In the end, we were not able to sync the players' origin using the Colocation building block shared spatial anchor setup. Using Valem's advice, we ran all our playtest sessions by starting the game in the same position and orientation on all players' headsets.
    Overall, this experience accentuated the brittle nature of modular block-structured architecture to construct complex processes.

  • Customised hand rigging and controls
    We initially had the idea of replacing the player's hands with 3D-modelled hands with stretchy arms -- with the added difficulty that these would become increasingly wobbly as you stretched them further. We tested this concept in Shapes XR and believed it would not only add a layer of fun play (allowing the players to build absurdly high stacks) but also reduce the handicap of shorter players. We eventually dropped the concept due to multiple challenges and time constraints.

  • Efficient Collaboration
    The biggest challenge throughout the development of Stack 'n' Throw was probably the inability to collaborate efficiently. We broke our scope into atomic features owned by each team member and often failed to bring those together. The game loop and audio implementations ultimately suffered from the inability to overcome this challenge within the imposed timeframe.

Accomplishments that we're proud of

  • MULTIPLAYER!
    Despite not having achieved "real" co-location, we are very pleased with the result and generally believe the co-located multiplayer capability represents an essential component in our gaming experience.

  • Visuals
    We're very proud of the visual language we created to illustrate our vision. All the visual assets used in this project were made for and during this hackathon.

  • Physics Interactions
    Despite the occasional odd behavior, we're very proud of the customized physics interactions we developed to represent the main game mechanic.

  • Overall, we are proud of the smiles and laughs we got out of the players who had the chance to try our game. (And ourselves!)

What we learned

We learned a lot about the Meta Quest Presence Platform. Namely, multiplayer and colocation capabilities, physics, and the process of publishing an app to the App Lab.

What's next

Based on this experience we strongly believe Stack 'n' Throw has great potential to create extremely fun moments between family and friends. Below are only some of the features we believe would bring this game to the next level:

  • Improved single-player & multiplayer (colocated and virtual) game loops
  • More advanced winning detection and conditions (stack height, usage of specified object-types and number, etc.)
  • Finer interactions (poke implementation, etc.)
  • Use of different tools (wobbly-stretchy arms, crane, claw machine)
  • Explicit co-op and competitive game modes
  • Power-ups (affect the opposing players' grabbing capabilities)
  • Improved audio effects and sound design
  • General game progression (unlock new objects, etc.)

Built With

Share this project:

Updates