Skip to content

v0.6.0 — Note System Refactor (Quest 120Hz + Beat Sync Fix)

Latest

Choose a tag to compare

@guysoft guysoft released this 03 Aug 20:33

What's new in v0.6.0

This release is mostly a refactor. The note system got rewritten so it does what it was always supposed to do — render actual notes, pulse to the beat, and run smoothly on Quest. No new gameplay, no new features, just the old behavior finally working as intended.

🎮 What you'll notice

  • Notes pulse with the beat. The wobble effect on each note is now actually driven by the music. Before this release the beat pulse was wired to materials nothing rendered, so notes just sat there.
  • Smooth 120Hz on Quest. The note rendering was heavy enough to drop frame rate on Quest. It's now light enough to hold a steady 120Hz with notes on screen.
  • Notes look a bit different. Same shapes and colors as before, but they're real 3D objects with surface texture instead of flat-colored spheres.

📋 What you need to know

  • Requires Godot 4.6.1 or later. Godot 4.7 has known loading issues with this build — use 4.6.1.
  • No gameplay changes. Hit zones, scoring, timing, controller mapping — all unchanged.
  • Save data unchanged. Existing high scores and settings carry over.

📦 What's in the box

New files

  • src/models/note/note_main.glb — the new note model
  • src/models/note/note_main_mesh.obj — extracted mesh
  • src/models/note/note_main_textures/texture_0.png — base color
  • src/models/note/note_main_textures/texture_1.png — metallic-roughness
  • src/models/note/note_main_textures/texture_2.png — normal map
  • src/models/note/note_main_textures/texture_3.png — emissive
  • src/effects/note_displace_shader_textured.tres — wobble shader with texture sampling
  • src/effects/note_main_0_material.tres — purple note material
  • src/effects/note_main_1_material.tres — cyan note material
  • src/effects/note_main_3_material.tres — red note material

Modified files

  • src/scenes/Note.tscn — switched to note_main mesh, updated materials
  • src/scenes/Game.tscn — BeatResponder now only references wall material
  • src/scripts/GameManager.gd — shader warmup updated
  • src/scripts/MainMenu.gd — shader warmup updated
  • src/scripts/beat_responder.gd — added dynamic material registration, fixed last_beat update bug
  • src/scripts/note.gd — added BeatResponder registration
  • src/tests/test_textures.gd — updated test references

Fixed

  • src/models/contoller/hammer_low_poly_left.glb — baked mirror transform into vertex data (was causing inverted normals on the left controller)

Commits in this release

  • 0e57277 feat: add note_main GLB mesh with textured displace shader
  • ff5e157 feat: switch Note.tscn to note_main mesh, update warmup and tests
  • 06162dd feat: dynamic BeatResponder registration
  • 2b4d32c fix: bake left hammer mirror into GLB vertices to fix inverted normals
  • 195cfae fix: use wavefront_obj importer for note_main_mesh.obj