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