Writing

Real songs, a real rig, and an editor inside the game

  • vj-simulator
  • devlog
  • unity
  • vr

Longer gap than usual since the last entry, because the thing I was building took a while. Three chunks of work, in the order they happened.

The in-game chart editor: the fixture and group panel on the left, the venue preview with two spotlights lit, and the note timeline along the bottom

Charts became real data. Beatmaps were baked into source, which was always going to be a dead end. Now the game has its own chart format, and nothing at runtime knows anything else exists — everything else is a converter that feeds it. First one reads osu! files, so there's a whole world of existing charts to test against. The second is more interesting: it takes an actual mp3, finds the beats in it by energy, and writes out a chart from that. So the song you hear is the real recording, not something synthesized from a note list. There's a trance track in there now as the default, and hearing the lights land on a track that isn't generated from the notes themselves changes how the whole thing feels.

The room got a proper rig. Three hero spotlights and three lasers became two rows of ten lights and two fanned laser sets — the kind of thing you'd actually see over a stage. Rows can fire in sync or chase down the line with a stagger, which is the single biggest "oh, that looks like a show" moment so far. The beams also got much longer, start fully dark and turn on when the note lands, and dissolve into haze at the far end instead of stopping at a hard edge. Nothing is coloured yet — all white, that's a later pass.

And the big one: there's now a chart editor inside the game. Not a Unity editor window — actual runtime code, so it ships in the build and eventually runs in the headset alongside everything else. You place the lights and lasers where you want them, wire up which notes drive which fixtures and how they move, and hit preview to watch the whole rig play the song back at you without having to play it yourself.

The split I landed on is that a venue owns the physical fixtures — where each light hangs, what size, what colour — and a chart owns the choreography on top of it. Which means one room can be lit completely differently by two different charts, and a chart just names the venue it was written for. That separation wasn't the obvious first design, but it's the one that makes shareable custom light shows possible later, which was on the wish list from the very first entry.

There's a main menu now too, to pick a chart and go play it or go edit it. Feels like a real thing with a front door.

Plenty of sharp edges left — the editor UI is deliberately ugly for now, and the whole thing still wants a proper pass on colour. More soon.