Devlog · Post 18 of 27
Juice - bricks that scatter, buildings that assemble and a pixel counter that caught us
juicevfxgame-feeltesting

On 22 October the owner picked four things from a list of ways to make the game more "fun and addictive", and left out several more (shared replays, daily challenges, leaderboards). The four were satisfying feedback, better build feedback, rule cards and an endless mode. This post is about the first two, which game developers call juice: everything that happens around an action that does not change the rules but changes how it feels.
The rule
All of it is presentation only. It reads the simulation and answers on real time. It never writes to the simulation. We kept to one line of sim-side code, a read-only question ("is this wave cleared?"), and checked the fingerprints afterwards: the lockstep digests came out identical, and the Tower Defense performance gate's averages held. There is also an Effects: Full / Reduced option for slow machines and for people who do not want screen shake.
What it does
- Bricks scatter on every death. On top of each model's own wreckage chunks, single LEGO bricks in the victim's colours fly out and lie where they land: six for a soldier, eleven to sixteen for a vehicle, ten plus four per footprint cell for a building. They are instanced: one body and one stud mesh per colour, 24 colours, a pool of 520, no shadows from the studs. A budget thins everything when the battle gets crowded.
- Kill streaks. Kills by your side within 2.5 seconds chain. At 4, 8, 15, 25, 40, 60 and 90 a chip appears by the latest kill with a name (COMBO, BRICK BREAKER, DEMOLITION CREW, RAMPAGE and so on) and a sound that rises in pitch.
- Wave clear. A banner, a bounty, the kill count, and a PERFECT CLEAR when nothing got through.
- The boss moment. When a boss's gate opens: BOSS INBOUND, a pulsing red screen edge, a warning sting. When it arrives: a capped camera rumble. While it lives: its own health bar bottom centre. When it falls: BOSS DOWN, a white flash and a 0.9-second slow-motion beat at quarter time for the effects while the simulation runs on at full speed.
- Placement and finishing. A thunk and a dust ring when you place a building, and a pop when it completes.


The building assembly, and the pixel counter
The effect we cared about most is the build: a building should not appear, it should be built. The first version threw the building's debris pieces onto the ground around the footprint and flew them in as the building rose.
The owner watched the slow-motion test clip and wrote that half the building appeared in one frame. They were right, and we could prove it. We diffed the frames and found a single frame where about 28,000 pixels changed at once, and another where pieces hung in the air for five frames after the building was complete.
The cause was clear when we looked. The pieces were placed on the ground on the placement frame, so a whole scattered pile existed at once. And the pieces were released by one clock while the hull's reveal ran on another, stepped at 20 Hz.
The second version starts every piece under the ground at its seat, with its shadow off until it clears the surface, and raises them bottom-up through the terrain. Each rises with a smooth start, a small overshoot and a 10 to 26 degree twist that unwinds as it seats. The hull's reveal now lags the pieces, so it only ever passes over what a seated piece already shows. At the finish every piece snaps to its seat in the same frame. We re-ran the same diff: the only change at the finish is the pop flash.

What we would do differently
- Film it slow before you call it done. We caught this because the owner asked for a slow-motion copy of the take. The build demo is rendered at a 120 fps step, giving a 60 fps film and a half-speed copy, and that is how the owner saw the problem.
- Measure by pixels, not by impressions. A frame diff is an objective answer to "did it pop?".
- Build the Reduced option first. It forced us to separate presentation from state.
Try it yourself
Pick one action your player does a hundred times, and decide what it should look, sound and feel like. Write the effect so it cannot touch the game's rules, and write the test that proves it.
Next: Filming the real game - a fixed-step recorder and a queue of 4K takes (23 October 2026)
Start from day oneAll 27 posts
Written afterwards from our project notes and commit history; dated to when the work happened.


