Vibe Arcade Blog

Dev stories, game design, and the art of building with AI

Fuse Alley: How We Built the AI-Coded Bomb Physics Game

The brief was a bowling alley where the ball is a bomb. What we ended up with was our first real 3D game, eleven hand-authored levels, five distinct bomb types, and a daily challenge that hands everyone the same puzzle.

· Vibe Arcade

game dev vibe coding 3D physics behind the scenes

Every game in the Vibe Arcade collection before this one was flat. Canvas 2D, DOM tricks, maybe some faux-perspective layered on a tile grid — nothing that actually existed in three dimensions. Fuse Alley was the game where we committed to real 3D in the browser, with a real physics engine, because the concept only worked if the physics were real. You can't fake the satisfaction of a well-timed chain reaction. Either the pins topple into each other under simulated momentum, or the whole thing feels like a slideshow.

Want to play first, then read the build story?

▶ Play Fuse Alley Now

Phase 1: Breaking Our Own Rules

Vibe Arcade has a default rule that every game ships as a single HTML file with zero external dependencies. No build step, no CDN scripts we don't understand. That rule keeps games easy to audit, easy to fork, and easy to serve from a plain static host. It also keeps our AI-assisted workflow honest — the AI can't hide complexity inside a package manager when there is no package manager.

Fuse Alley was the first game where we approved an exception. We added two libraries: Three.js for WebGL rendering and cannon-es for rigid-body physics. The exception was explicit and scoped — those two libraries, this one game, no further additions. Simulating a bowling lane with bomb blasts and chain reactions in hand-written math would have consumed the entire budget and probably still felt wrong. Offloading the math to a battle-tested physics engine meant we could spend the time on level design instead of solving collision response from scratch.

Phase 2: Bowling, Not Slingshot

The first real design decision was what the player actually does. Angry Birds taught a generation that "throw an explosive at a target" means pulling back a slingshot. We almost went that way.

We landed on bowling instead, and it turned out to be the right call for two reasons. First, a ground-roll gives the physics engine something dignified to do — the ball rolls, friction bleeds off speed, side walls deflect misses, and the bomb's final position is a product of the whole trajectory rather than a single arcing projectile. Second, bowling has a built-in vocabulary players already understand: aim, power, release. Teaching a new control scheme takes first-minute attention we'd rather spend on the explosions.

The camera sits behind the ball, looking down the lane in perspective. The player adjusts angle with the arrow keys, holds space to charge power, and releases to launch. On touch devices, the same feel is reproduced by touching near the ball and sliding the finger up to build power, sideways to aim. That last part took us three tries to get right.

Phase 3: Five Bombs, Five Puzzles

A single bomb type would have been a boring game. Five bomb types, each with genuinely different behavior, turned it into a puzzle series. The roster unlocks progressively as you clear levels:

Each bomb type has a puzzle it's the obvious answer to, and a puzzle where it's a trap. Cluster on a tight triangle wastes the peripheral blasts. Shaped Charge on ground-level pins flings most of its force into the ceiling. Giving the player the wrong tool on a level and letting them figure out the right one was more satisfying than expected.

Phase 4: Eleven Hand-Crafted Levels

The spec originally called for five hand-authored levels and then a shift to procedural generation for the campaign. We kept adding hand-authored levels instead. Procedural generation is good at filling space and poor at building tension.

The progression goes Boot Camp (a classic ten-pin triangle, just to teach the aim), Split Decision (two separate clusters that force you to manage two bombs), The Stack (vertical rows designed around chain reactions), Platform Problem (the first elevated tier), and Domino Rally (an L-shaped corridor where the only way to clear fifteen pins is one perfect chain). Later rounds added Crossfire, High Rise, Minefield, Pyramid Prime, and The Gauntlet. The final level is the Detonation Chamber boss: a four-segment stacked target surrounded by eight minion pins, with all four power-ups placed in the arena for a deliberately chaotic finale.

Every one of those layouts is a specific geometric puzzle that knows what it's asking the player to figure out. A seed-based generator produces "fifteen valid pin positions." A human-authored level produces "fifteen pin positions that resolve into a satisfying knockdown if you hit the first one at the right angle."

Phase 5: The Daily Challenge

That said, the daily mode is procedural, and it's the one place where random layouts make sense. The daily challenge uses seeded generation — a fresh fifteen-pin arrangement every day, built from a seed derived from the calendar date. Everyone who opens the game on a given day faces the same layout, which is the part that matters. Daily puzzles are social; if the puzzle is different for each player, there's nothing to compare.

The seed is deterministic. Given the same date, the same pseudo-random sequence produces the same positions with the same minimum spacing between pins. Tomorrow's layout will be different. A small piece of local storage prevents retrying the day's puzzle for a better score, which keeps the leaderboard honest.

Phase 6: Touch Controls, Take Three

The first touch implementation was wrong. Not broken — the ball flew, pins fell — but it felt off. Touchstart immediately began charging power, coupling aim and charge into one gesture with no way to line up a shot without also committing to throw it. Aim was driven by relative movement, so a slow drag barely moved the angle and a fast drag swung it wildly.

The third version rebuilt the whole interaction as a slide-up from the ball zone: touch starts, the phase stays in aiming, and the drag maps absolutely. Horizontal offset sets aim angle, upward drag sets power, release launches with whatever values the finger was at when it lifted. That version felt right immediately. The lesson: "feels wrong" is not a useful bug report, but "the angle moves in proportion to drag speed rather than position" is.

What We Learned Building in 3D

Real physics means the game state isn't deterministic the way a turn-based game is — two runs of the same shot can settle with ten pins down or nine. That made automated testing harder; a test that occasionally fails by physics luck isn't a useful signal.

The daily challenge, the power-ups, the replay-shot orbit camera, the boss fight at level eleven — all started as "maybe in a future version" and got built during iteration passes. The final game is meaningfully bigger than the original spec because each pass revealed what the core mechanic could support, and we kept adding until the shape of the game felt complete.

What surprised us most is that 3D physics in the browser is genuinely workable now. A small team with AI assistance can ship a real 3D physics puzzle that loads in a browser tab, works on a phone, and doesn't require anyone to install anything.

Play Fuse Alley — work your way through all eleven levels, then come back tomorrow for the daily.


Related reading: How We Built Neon Snake · What Is Vibe Coding? · Vibe Coding Tools: From Chatbots to AI IDEs