Files

1.8 KiB

ProjectQuint Repository Guide

What

  • ProjectQuint is a macOS-first 4/5/6/7-key BMS rhythm-game client with optional left scratch, built with Unity 6.3 LTS.
  • Assets/ProjectQuint/Runtime/Core is pure C# chart/timing/judgement code; Unity input, audio and rendering stay under Runtime/Unity.
  • BMS packs are external user libraries. Never copy song media into the repository, Assets, StreamingAssets, or a player build.

Why

  • Timing and judgement must remain deterministic and independent from render FPS.
  • Scratch is a fixed left lane and is preserved in notes, audio, score, combo and autoplay. MIRROR/RANDOM only transform key lanes.
  • Long notes auto-complete while held at the tail. Their scoring ticks use musical 1/16-note boundaries, the default early-release grace is 100 ms, and an early break cannot be recovered by re-pressing.
  • TempoMap owns beat↔DSP-song-time conversion while ScrollMap owns visual position. BPM/STOP handling must not be reintroduced as renderer-local time arithmetic.
  • BMS packs must be registered by the user as folders or ZIP files. Keep song indexes isolated by pack ID, but keep difficulty tables in the global table registry and cache them by table ID so the same provider can match charts from any pack.

How

  • Unity version: 6000.3.20f1.
  • External editor control uses Unity's official MCP from com.unity.ai.assistant; verify the live editor with the Unity_GetConsoleLogs tool.
  • Run tests headlessly with Unity Test Runner and do not append -quit to -runTests; Unity 6 exits after the run and -quit can terminate before tests start.
  • Read editor errors through the official MCP console tool or the explicit Unity -logFile used by the current validation run.
  • Use AudioSettings.dspTime and Input System event timestamps for gameplay clocks; never use frame count as the judgement clock.