πͺ It's Magic β Multi-Device Multiplayer Game
·
4min
·
Marcus Aas Jensen
Itβs Magic is an experimental multiplayer game exploring distributed interaction across several devices.
Created as a college final project in a team of 4, it combines Unity clients and a mobile app to create a cooperative, immersive potion-making adventure.
π» GitHub Repository
β¨ Overview
Three players cooperate in a magical world using three different interfaces:
- Interactive Table β Top-down view of the forest and workshop.
- Vertical Screen β Side views for detailed actions.
- Mobile Phone β Special tools and environment control.
The game encourages communication and coordination as each device provides unique perspectives and actions.
π― Goal of the Game
Play as three wizards working together to brew a potion before time runs out.
- π Harvest Ingredients β Gather forest ingredients and store them in the bag.
- π₯£ Prepare the Cauldron β Toss ingredients into the cauldron inside the house.
- πͺ΅ Heat the Cauldron β Move it to the chimney when bubbling starts.
- π₯ Light the Fire β Use the bellows to ignite the flame.
- βοΈ Finish the Potion β Wait for dark blue bubbles, then pour the potion into a flask.
β οΈ Careful not to spill it!
π₯οΈ Device Interactions
Interactive Table
- Multi-touch Selection β Cooperative harvesting and object manipulation.
- Drag & Drop β Move ingredients and reveal hidden areas on the vertical screen with the magic wand.
Vertical Screen
- Slash Interaction β Cut ingredients in the side forest scene.
- Tap Navigation β Open doors, trigger objects, and receive hints.
Mobile Phone
- π¨ Blow into Microphone β Ignite fires for the cauldron.
- π Throwable Inventory β Manage and share collected ingredients.
- π‘ Brightness Control β Change time of day to access night-only resources like fireflies.
βοΈ Technical Details
- Unity 3D 2022.3.20f1 for both top and side view clients.
- Android Studio for the mobile app.
- WebSocket Server handles real-time communication between all devices.
π§ Setup
-
Build the Android App
- Open
Client/Androidin Android Studio and build the APK.
- Open
-
Build Unity Clients
- Create separate builds for the table (top view) and vertical screen.
- Update
config.jsonwith the correct IP/port (seeconfig.template.json).
-
Run the Server
- In the
Serverfolder:npm install npm run start
- In the
-
Launch All Clients
- Run each Unity build on different machines and start the Android app.
- If the app crashes, simply restart it.