A rhythm game where two players must hit notes in sync with a musical track. The game supports both MIDI controllers (keyboards/pads) and standard QWERTY keyboards.
-
Seamlessly switch between MIDI hardware and Keyboard mapping.
-
Uses
#loadfor embedding assets (textures, sounds, JSON) directly into the binary. -
Real-time MIDI event parsing and timestamp synchronization.
-
Language: Odin
-
Graphics: Raylib (via
vendor:raylib) -
Audio: Raylib Audio (Vorbis/OGG support)
-
Input: PortMIDI (via
vendor:portmidi)
- Shared Memory: The
sharedglobal struct manages resources, MIDI streams, and screen scaling. - State Machine: Uses a
union(ProgramState) to transition between:MainMenuIntroCutsceneGameplayGameWin/GameLose
- Note System: Logic is driven by
eurydice.jsonandorpheus.jsonwhich contain MIDI timestamps and note values.
- Ensure you have the Odin Compiler installed. (At least version 2026-04)
- Run the following command:
odin run . - You can add
-subsystem:windowsargument to hide the terminal.