Weekly Development Report: BeatShift
Date: June 24, 2026
Reporting Period: June 17 – June 24, 2026
1. Cytus Mini-Game — 3D TV-Frame Panel
- Confined Play Area: Confined the Cytus mini-game to a centered play-area box, running on its own 3D background.
- TV-Style Frame: Built a TV-style frame around the Cytus box with a custom
CytusFrameTV prefab and a dedicated CytusBoxConfig component for all settings.
- Real 3D Perspective: Added adjustable tilt and a real 3D perspective skew (
cytusPitch/cytusYaw), with the frame refitting live per-frame to the box.
- Rendering Fixes: Resolved multiple sizing/depth issues — the box drifting in Z under yaw/pitch, the screen rendering behind the city, the frame blowing up to 354×, and lost screen/bezel refs.
2. Cytus Note & Scan-Line Behavior
- Note Presentation: Notes now grow from 0 to full size up to their hit time (removed the visibility gate), are inset from screen edges, and gain a configurable size knob (
noteScale, default 0.7).
- Scan Line: Implemented a reciprocating (back-and-forth) scan line, clamped the bar fraction at bar boundaries, and limited notes to their own bar for correct line/note alignment.
- State Switch: Introduced a Normal↔Cytus state toggle (replacing the old upbeat/BeatUp swap) and shortened the state-switch frenzy from 1 bar to 0.5 bar; disabled the Cytus shockwave on the new 3D background.
3. BeatUp & Cytus Hold Notes (PoC)
- BeatUp Toggle: Forced the BeatUp toggle to auto-fire on every enter/exit, and made an uncaught BeatUp a Miss (penalty) that still toggles — no more forced frenzy.
- Hold Notes: Added Cytus Hold notes as a proof of concept — both heads pinned with a static body line, the release-head sprite hidden, the body consumed along the scan line while held and staying gone on release instead of snapping back.
- Visual Tuning: Thinned the hold-body line and shrank the hold head to match
noteScale, boosted renderers hidden behind the TV panel, and tuned frame padding so edge notes don't touch the bezel.
4. Chart Editor Alignment
- Single-MIDI Model: Aligned the ChartEditor (and its manual) to the single-MIDI Cytus model.
- Editor Knobs: Made
TIMELINE_H an explicit knob, pinned LANE_H so note blocks keep their size, shrank lane cells into a centered band, and capped note-box heights.
5. Documentation
- AGENTS.md: Refreshed the Cytus reference in
AGENTS.md to reflect the current implementation.
Takeaway Note: The week the Cytus mini-game gets a real body — a 3D TV-framed play area with perspective skew, a reciprocating scan line, a Normal↔Cytus state toggle, working BeatUp mechanics, and a Hold-notes proof of concept — with the ChartEditor realigned to the single-MIDI model.
Generated by opencode