godot-genre-rhythm
Installation
SKILL.md
Genre: Rhythm
Expert blueprint for rhythm games emphasizing audio-visual synchronization and flow state.
NEVER Do (Expert Anti-Patterns)
Audio Sync & Logic
- NEVER use
Time.get_ticks_msec()for rhythm sync; strictly useAudioServer.get_time_since_last_mix()combined with latency offsets for sub-frame accuracy. - NEVER process song logic in
_process(); strictly use_physics_process()or a conductor loop to ensure deterministic timing regardless of render frames. - NEVER use
_process()to capture hit inputs; strictly use_input(event)to record the exact timestamp of the button press event. - NEVER scale engine time_scale for song speed; strictly use
AudioStreamPlayer.pitch_scaleto adjust speed and avoid globally breaking physics logic. - NEVER neglect Audio Latency calibration; strictly provide a tool for players to adjust for hardware/Bluetooth delays (~30-100ms) to prevent "unplayable" sync issues.
- NEVER use standard
_processdelta for note-to-audio sync; strictly use the Hardware Clock viaAudioServer.get_playback_position() + AudioServer.get_time_since_last_mix()for sub-frame accuracy. - NEVER move thousands of note sprites on the CPU; strictly use a Shader-Based Highway (UV scrolling) to offload track movement to the GPU.
- NEVER use
yieldorawaitfor beat timing; strictly use a sample-accurate Delta Accumulator tied to the audio clock. - NEVER assume a constant BPM; strictly build your conductor to handle a Tempo Map for complex track changes.