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 modelsrc/models/note/note_main_mesh.obj— extracted meshsrc/models/note/note_main_textures/texture_0.png— base colorsrc/models/note/note_main_textures/texture_1.png— metallic-roughnesssrc/models/note/note_main_textures/texture_2.png— normal mapsrc/models/note/note_main_textures/texture_3.png— emissivesrc/effects/note_displace_shader_textured.tres— wobble shader with texture samplingsrc/effects/note_main_0_material.tres— purple note materialsrc/effects/note_main_1_material.tres— cyan note materialsrc/effects/note_main_3_material.tres— red note material
Modified files
src/scenes/Note.tscn— switched to note_main mesh, updated materialssrc/scenes/Game.tscn— BeatResponder now only references wall materialsrc/scripts/GameManager.gd— shader warmup updatedsrc/scripts/MainMenu.gd— shader warmup updatedsrc/scripts/beat_responder.gd— added dynamic material registration, fixedlast_beatupdate bugsrc/scripts/note.gd— added BeatResponder registrationsrc/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
0e57277feat: add note_main GLB mesh with textured displace shaderff5e157feat: switch Note.tscn to note_main mesh, update warmup and tests06162ddfeat: dynamic BeatResponder registration2b4d32cfix: bake left hammer mirror into GLB vertices to fix inverted normals195cfaefix: use wavefront_obj importer for note_main_mesh.obj