Rhythm is a fast-paced, minimalist rhythm game built with LÖVE 2D, a game engine that uses Lua. The project explores core rhythm game mechanics—precise timing, beatmapping, and real-time player input—wrapped in a lightweight and easily modifiable prototype. This game is ideal for those interested in learning how rhythm-based systems work under the hood.
In Rhythm, players must press keys in time with incoming notes. These notes fall down their respective lanes, and the player must hit the correct key at just the right moment. Timing is critical and determines whether a hit is scored as Perfect, Good, or Missed.
| Key | Lane |
|---|---|
| D | Lane 1 |
| F | Lane 2 |
| J | Lane 3 |
| K | Lane 4 |
Visual cues scroll down the screen in sync with the background music, guiding the player to time their inputs accurately.
Rhythm was built from the ground up to experiment with the fundamental logic behind rhythm games.
- Notes are defined as Lua tables, where each entry contains a timestamp and lane index.
- Notes are triggered in-game by comparing their timestamp with the current audio playback time.
- This makes it easy to add custom tracks and levels by adjusting the timing data.
- Player inputs are checked against the nearest note's timestamp.
- The time delta is compared to a margin of error to classify it as Perfect, Good, or Missed.
- Combos and score multipliers can be added by chaining successful hits.
- All graphics are rendered using LÖVE’s built-in drawing functions (no external libraries).
- Note objects fall vertically over time to simulate movement.
- Minimalist aesthetic to focus on timing and gameplay clarity.
- Uses
love.audioandlove.timerto match gameplay events with music in real-time. - Accurate syncing is critical; LÖVE provides a consistent game loop for tight timing.
| Tool / Library | Purpose |
|---|---|
| LÖVE 2D | Game framework (Lua-based) |
| Lua | Game logic, beatmaps, rendering |
| love.audio | Background music playback |
| love.graphics | Drawing UI, lanes, notes |
- Designed to run at a fixed framerate to ensure consistent behavior across systems.
- Beatmap timing was manually aligned by ear and adjusted through testing.
- The game logic separates visual rendering from beatmap processing for clarity and modifiability.
- Focused on readability and extensibility for future upgrades.
- 🎼 Beatmap editor tool for custom song creation
- 📊 Post-game analytics (accuracy graphs, note hit/miss timeline)
- 🌈 Visual effects for combos and successful hits
- 🌐 Online leaderboard and song sharing
- 🎮 Gamepad support
Built with ❤️ using LÖVE 2D
Created by @JakeOJeff