Inspiration
Its a 2 part inspiration:
- I was inspired by a similar mobile-based 2 player game I used to play with my sister back home and figured why not give it a unique, interactive spin !
- The second inspiration came from observing how remote work has reduced opportunities for team bonding and engagement. Virtual meetings often feel monotonous, and I thought about how games like Splashh could be integrated into meeting platforms such as Zoom or Microsoft Teams. These games could act as icebreakers for business meetings, allowing participants to energize, bond, and engage in a fun, competitive activity before diving into the agenda. It's a way to make virtual interactions more human and enjoyable!
What it does
Splashh is a real-time multiplayer drawing game where players use their hand gestures, detected via a webcam, to draw on a shared virtual canvas. It's a competitive experience where players race against time and each other to cover the canvas with their assigned color. The game includes:
- Gesture-based controls: No controllers, just your hands! Draw, erase, or collect power-ups with simple hand movements.
- Unique power-ups: Players can collect and use items like paint brushes, erasers, and paint buckets, or even sabotage opponents with cheeky tricks.
- Real-time gameplay: With WebSocket communication, every brushstroke and action reflects instantly for all players.
How I built it
Splashh is built using a combination of exciting technologies:
Python: The main programming language for both client and server.
Libraries and Tools:
mediapipefor webcam hand tracking and gesture recognition.websocketsfor enabling real-time server-client communication.Pygamefor background music and audio effects.
Server-Client Architecture: using asyncio and websockets
- A server manages player connections, handles game data, and ensures smooth synchronization.
- Clients interact with the canvas via gestures and receive updates from the server in real time.
Challenges I ran into
- Hand Tracking Accuracy: Ensuring consistent detection of hands and gestures in varying lighting conditions.
- Real-Time Synchronization: Keeping the canvas and actions perfectly in sync across multiple players required optimization in WebSocket communication.
- Fair Gameplay: Balancing power-ups and gameplay mechanics so that it felt fun yet competitive required several iterations.
- Multiplayer Testing: Testing the game with multiple devices in real-time scenarios was complex.
Accomplishments that I am proud of
- Multiplayer Experience: Creating a real-time, synchronized game canvas that works for multiple players simultaneously.
- Power-Up Mechanics: Designing, implementing, and integrating fun power-up effects that make the game dynamic and thrilling.
- Accessible Fun: Splashh runs on widely available tools (webcams and Python), ensuring it's accessible to almost anyone.
What's next for Splashh
- Improve hand-tracking accuracy for complex gestures.
- Add more power-ups and effects.
- Create a UI for lobby management (e.g., joining/leaving games).
- Implement scoring systems for better gamification.
- Deploy the WebSocket server to cloud-based platforms for wider accessibility.
- Suite of Games Based on Virtual Drawing. For instance, a virtual Pictionary game.
- Explore integrations with platforms like Zoom or Microsoft Teams. Splashh could be used as a fun and engaging icebreaker for virtual meetings, energizing participants and encouraging collaboration before diving into business discussions.
Built With
- asyncio
- mediapipe
- opencv
- pygame
- python
- websockets
Log in or sign up for Devpost to join the conversation.