Inspiration
The concept of the project was inspired by the magic system of Dr Strange, The Dragon Prince and Naruto in combination with the capabilities of the Meta Prescence platform. We wanted the game to be highly collaborative and designed to be experienced together with friends, as well as have an arcade feel with a colourful aesthetic to cater to players of all ages.
What it does
The players are assigned the role of either a water mage or a fire mage when the game is opened. Each player can summon magic balls according to their role using a claw hand gesture, however, only the player with the opposite role can aim and physically push the summoned magic ball against the enemies, making the game highly collaborative. At the same time, flying enemies coming out of a portal are shooting projectiles at you, meaning you need to avoid the projectiles and summon protective barriers to not deplete your shared health.
We aimed to create a unique experience that has never been created before. Our game is the first mixed reality game that does not have a single player mode and focuses exclusively on multiplayer in the same physical space. This allowed us to craft a unique experience where players have to be aware of each other's bodies in the physical world.
We designed inputs and UI that work specifically well for mixed reality multiplayer. For instance, to start the game the players have to fist bump each other and the score is tracked by hats that are stacked onto each player’s heads.
How we built it
We built this game in Unity using Meta Building Blocks and the Presence Platform. We used a variety of building blocks such as the meta rig, the matchmaking, the grabbables, passthrough, hand tracking and poke interactions
For the portal, we used a technique using a stencil buffer to render a view of a 3D fantasy world onto the portal plane, as well as the Depth API to create a cutout of the player when they’re in front of the portal.
The multiplayer was implemented using Photon Fusion. For the colocation, we started implementing the Shared Spatial Anchors from Meta but due to stability issues and a complicated setup process, we decided to build our own. Our custom solution leverages a combination of Meta Building blocks, Fusion and custom code to colocate the players. It is very fast and flexible to set up and does not require any cloud sharing or user data permissions making it ideal for hackathons.
For the hand gestures, we defined hand shapes with different curl, flexion, abduction and opposition configurations for each finger, as well as transform recognizers to detect when the palm faces away from the player.
Challenges we ran into
We faced a couple of challenges while trying to implement the Share Spatial Anchors from Meta. However, we achieved the same effect by creating our own solution where both players manually place the wall where the portal will spawn and base the position on that.
Accomplishments that we're proud of
We are proud of being able to create a multiplayer game that is specifically designed to play with others, not just as an add-on for a game that was mainly designed to be single-player.
What we learned
We learned a lot about game design for multiplayer Mixed Reality games, what works, what doesn’t work from a gameplay perspective etc. We also learned a lot about Meta's building blocks in Unity.
What's next for Elements Together
We believe we have a unique value proposition that has the potential to reach a mainstream audience. For instance, this game would be a great experience in a VR arcade and a great addition to the Meta Quest Store.
Log in or sign up for Devpost to join the conversation.