Skip to content

A 100% vibe-coded guitar hero clone compatible with Clone Hero charts. Made almost entirely using Opus 4.6.

Notifications You must be signed in to change notification settings

emkelley/vibehero

Repository files navigation

VibeHero

A Guitar Hero-style rhythm game 100% vibe-coded with Claude Opus 4.6 with many, many prompts.

Getting Started

Prerequisites

Install Dependencies

npm install

Run in the Browser

npm run dev

Open http://localhost:5173 to play.

Run as a Desktop App (Tauri)

npm run tauri:dev

The desktop app adds native file system access, a beatmap library scanner, score history, and favorites.

Build for Production

npm run build          # Web build (output: dist/)
npm run tauri:build    # Desktop installer/bundle

How to Play

Hit notes as they reach the bottom of the highway. The default lane keys are:

Lane 1 Lane 2 Lane 3 Lane 4 Lane 5
D F Space J K

Keys are rebindable in Settings.

Note Types

  • Tap notes -- press the key when the note crosses the hit line.
  • Sustain notes -- press and hold, then release at the tail.

Timing & Scoring

Window Accuracy Points
Perfect +/- 45 ms 300 x multiplier
Good +/- 90 ms 100 x multiplier
Miss +/- 135 ms 0 (resets combo)

Build your combo to increase the multiplier (2x at 10, 4x at 30, 8x at 50). Sustain notes award 10 points per tick while held.

Grades

Grade Accuracy
S 95%+
A 85%+
B 70%+
C 50%+
D < 50%

Songs

VibeHero ships with three built-in songs (synthesized audio):

  • First Steps -- tutorial, 100 BPM, Easy
  • Neon Drive -- 128 BPM, Medium
  • Cascade -- 150 BPM, Hard

Custom Content

  • MP3 Upload -- drop in any MP3 and the game auto-generates a beatmap using beat detection.
  • Clone Hero Charts -- load a song folder containing notes.mid, song.ini, and audio files (OGG/MP3). In the desktop app, point to a folder of charts and the beatmap library will scan them automatically. Be creative and find the Google Sheets page with the Clone Hero Master List (I won't link it here).

Settings

All settings persist in localStorage (or app data in the desktop app):

  • Key bindings
  • Note travel time (800--4000 ms)
  • Audio/video calibration offset
  • Master volume
  • Beatmap folder path (desktop only)

Tech Stack

Layer Technology
Frontend TypeScript, vanilla DOM
Build Vite 6
3D Three.js
Desktop Tauri 2 (Rust)
Audio Web Audio API + synthesized tracks

Development

The project uses path aliases for cleaner imports: @engine, @game, @ui, @data, @platform.

src/
  main.ts              # Bootstrap, game loop, routing
  types.ts             # Shared type definitions
  constants.ts         # Lane keys, timing windows, scoring, geometry
  audio/               # Beat detection, chart loading, MP3 loading
  data/                # Beatmap library, song library, scores, favorites
  engine/              # Audio, rendering, input, clock
  game/                # Highway, notes, hit detection, scoring, particles
  parsers/             # MIDI and INI parsing, chart conversion
  platform/            # Tauri IPC wrappers
  settings/            # Settings manager
  ui/                  # Menu screens, HUD, overlays
src-tauri/             # Rust backend for the desktop app
public/assets/         # Built-in JSON beatmaps

About

A 100% vibe-coded guitar hero clone compatible with Clone Hero charts. Made almost entirely using Opus 4.6.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published