Inspiration

Our project draws inspiration from Nintendo’s Pokémon Card Game and Ring Fit Adventure. We wanted to create a fun and interactive way to make fitness exciting, accessible, and competitive. By combining the thrill of virtual card battles with real-world exercise, we envisioned a game that engages players both physically and socially. Our goal was to foster healthy competition, encouraging users to stay active while enjoying a fun and competitive gaming experience.

What it does

Fitness Battle Game is a multiplayer game where players use webcam-based exercise tracking to power their virtual card abilities. Players perform specific exercises, like squats or push-ups, to gain in-game energy and strengthen their attributes, represented as cards in a turn-based battle. These exercises are tracked in real-time, and the players’ performance directly influences their chances of winning. The game promotes physical activity while engaging users in a competitive virtual environment, allowing them to battle friends and climb the leaderboards.

How we built it

We built Fitness Battle Game using a combination of Python, Flask for the backend, and React with Next.js for the frontend. We incorporated Mediapipe and OpenCV for real-time exercise tracking, allowing us to monitor physical activity via the player's webcam. Our card battle system is inspired by popular trading card games, designed to trigger abilities based on the player’s exercise input. The backend processes player movements and updates game states, while the frontend provides a seamless, interactive gaming experience.

Challenges we ran into

One of the major challenges we faced was ensuring accurate and consistent exercise tracking across different users and environments. Variations in lighting, webcam quality, and player form made it difficult to achieve reliable motion detection. Another challenge was optimising the real-time feedback loop between performing exercises and updating the game state without causing noticeable lag, especially during multiplaye

Built With

Share this project:

Updates