← Back / Projects

2025— · Alpha · game

Sakura

A hybrid-mode rhythm game: keyboard 4K × mouse zones

Keyboard 4K falling notes combined with dual mouse click zones in one rhythm experience — with a full play loop, a built-in chart editor and a sakura-themed stage.

Role
Solo developer — engine, gameplay, editor and visual systems
Tech stack
C++20SDL3SDL3 GPUnlohmann/jsonSQLite3CMakevcpkg

v0.5.5-alpha

Version

C++20

Language

SDL3 GPU (Vulkan/D3D12)

Renderer

Windows x64

Platform

Product Character

Not a note player, but a local rhythm experience built around "hear the beat, see the beat, create the beat": players challenge built-in charts, and creators turn their own music into playable content with the editor.

Core Experience

  • Dual-channel input: 4K keyboard lanes + spatial mouse clicks alternating in one chart
  • Full loop: song select, play, pause, results, stats, settings, calibration, tutorial
  • Built-in editor: timeline, preview, command-based ops, undo/redo
  • Sakura stage: particles, bloom, trails, screen shake, shaders and audio visualization
  • Local data: SQLite for scores, settings and achievements

Architecture Decisions

Layered structure: core/ (window, renderer, input, resources) → game/ (charts, judgement, scoring, achievements) → scene/ (flows) → editor/. Rules live in the game layer; UI never computes judgement. All layouts use normalized coordinates.

Content is chart-directory driven: info.json + per-difficulty JSON + audio/cover/background kept separate; new fields ship with spec and test updates.

Testing

Test targets cover judgement, scoring, PP calculation, achievements, input frame buffering and chart loading; the ci-linux preset builds cross-platform logic and tests off Windows.

Outcomes

  • v0.5.5-alpha: core play loop, chart loading, editor, local data and main visual systems in place
  • Built on the SDL3 GPU API targeting Vulkan / D3D12
  • Judgement, scoring, achievements and input buffering all test-covered