All work

Spring 2025 · Software Engineer

Dance Rhythm Game

A two-player rhythm game across two M5Stack Core2 devices, linked over Bluetooth Low Energy and played with a joystick-and-buttons controller.

Role
Software Engineer
When
Spring 2025
Discipline
Embedded & IoT, Games

Built with

  • Python
  • M5Stack Core2
  • Bluetooth LE
  • Controller PCB
Two players holding controllers wired to two M5Stack Core2 devices, each showing the game's note lanes.

Overview

Two handheld devices, one song, one winner. Both M5Stack Core2s connect over Bluetooth Low Energy (one hosts and the other joins), and the game starts once they’re paired.

Video · Watch on YouTube (opens in a new tab)

Two devices showing Bluetooth searching and broadcasting screens

Pairing the two devices.

Gameplay

Each player sees their own score at the top left and their opponent’s at the top right. Inputs move down the rows with the beat; when one reaches the circles on the last row, the player has to hit it. Arrows map to the joystick’s four directions and letters map to the face buttons, laid out like an Xbox controller.

Two players mid-game on their devices

Notes falling toward the hit circles.

Close-up of both devices during play

Scores update live on both devices.

The player with the most correct inputs wins.

One device showing a red losing screen and the other a green winning screen

The results screen.

Python source code for the game

Written in Python for the M5Stack Core2 and a controller PCB.