Cheery Chimp Logo

Cheery Chimp

Chimp Chain

  • Home
  • About Us
  • Privacy Policy
  • Terms and Conditions
  • Contact Us
  • Install app

Chimp Chain

Objective

Fire gems down the temple tunnel, match three of a kind, and clear them all before they reach the pit.

How To Play Chimp Chain

  1. Aim the cannon: Drag anywhere on the board to swing the cannon. It points wherever you point.

  2. Fire a gem: Let go to launch the loaded gem into the line. The next gem loads right up.

  3. Match three: Land three or more of the same gem in a row and they pop.

  4. Chain combos: If a pop brings more matching gems together, they clear too — bigger chains score more.

  5. Empty the tunnel: Clear every gem to finish the level. That's the goal on each tunnel.

Contact

Feel free to contact us with any bugs, complaints, or requests.

Release Date
July 28, 2026

Behind the Scenes

Building a marble-popper turned out to be less about shooting and more about a single stubborn question: where, exactly, is the line?

Chimp Chain is a marble-popper — a line of gems creeping along a carved stone tunnel toward a pit, and a chimp with a cannon trying to clear them before they arrive. The genre goes back to Puzz Loop, and it looks simple enough from the outside. Balls advance, you shoot a ball, three of a color vanish. I assumed the interesting work would be in the shooting. Almost none of it was.

The line kept walking away from its source

The first working build modelled the chain the obvious way: a free-floating segment of gems that advanced a little every tick. It played, and it was wrong. As gems cleared, the whole line kept marching forward and the tail drifted away from the tunnel mouth it was supposed to be pouring out of. You would clear a big group and watch a short, lonely string of gems sail off into the middle of the pipe with nothing behind it.

The fix was to stop thinking of the line as a thing that moves and start thinking of it as a thing that is fed. The tail is pinned to the source while the source is still producing, and everything else is derived from that: the head sits at (count - 1) x diameter plus however far the whole line has flowed. A shot that lands without matching pushes the head forward by one gem. Any clear at all slides the head-side back toward the source — a gap in the middle closes by pulling the front half backwards, not by shoving the back half forwards.

That one inversion is the difference between a line that feels like a snake and a line that feels like a queue. It also made the game legible: you can see at a glance how much is still coming, because it is all still connected to where it comes from.

The day the game stopped moving

The source feeds a fixed number of gems and then stops, which is what makes the level winnable — you win by emptying the line, not by surviving forever. Except that when I wired that up, the game froze the instant the source ran dry. The line just sat there.

The cause was a single condition in the wrong place. The flow increment — the thing that makes the line creep — was gated on there being gems left to spawn. Running out of supply stopped the spawning and the creeping together. Only the spawning should have been gated.

Fixing it accidentally produced the best part of the game. Once the source is spent, the remaining gems keep flowing toward the pit with nothing behind them, and the whole thing turns into a race you can actually see the end of. The level stops being a war of attrition and becomes a countdown.

The infinite-ammo loophole

The cannon never runs out. That seemed generous rather than dangerous until I noticed you could stand there and win any level by doing nothing clever at all.

The shooter was drawing its colors only from colors currently on the track, which is a sensible rule that stops the endgame becoming unclearable. But as a track depletes, its variety collapses. Near the end there might be two colors left, so the cannon could only offer those two, so every other shot matched something, forever. A free win loop.

Now the rule changes halfway through. While the source is still feeding, the cannon draws from the full palette — including colors that are not on the track, which is how the line grows when you miss. Once the source is spent, it switches to on-track colors only, so the endgame stays solvable. One branch, two completely different feels: pressure first, then a clean run at it.

Two bugs wearing the same coat

A fired gem should insert on the side of the gem it actually hit. Mine always went in front, because the index maths rounded to the nearest slot instead of choosing a side. I changed the rounding, tested it, and it was still wrong.

The second bug was underneath the first. The function reporting where a shot met the tunnel returned the ray's first entry into the tube, not its closest approach to the centre line. With the cannon sitting off to one side, those two points are roughly a gem apart — so the side was being decided against a position the ball never occupied. The gems bunched. Correcting the rounding alone had simply swapped one wrong answer for another.

Once the contact point reported the true aim point, both fixes became visible at once, front and back, on every level I could throw at it. I have since become suspicious of any bug that survives a fix I am certain about.

Shots that hit nothing

A related one, and the most satisfying to measure. Aiming over a long stretch of empty tunnel at a distant line, the shot would stop at the nearest empty bend instead — because the ray tested the whole path, occupied or not, and a bend is geometrically close even when there is nothing in it.

The ray now only sees the stretch of path that actually has gems on it. On a short line in one of the S-bend levels, 54 of 66 possible aim angles used to land in empty pipe. Afterwards, none did; the rest are honest misses, which cost you nothing because a miss keeps your gem.

Proving the levels are beatable

Twelve hand-built levels, twelve kinds of gem, and no way to know by eye whether any given one is actually winnable. So there is a small greedy solver that plays every level the dumb way — extend the nearest run, otherwise make a pair, otherwise park the gem somewhere harmless — and reports whether it emptied the line and how close it let the head get to the pit.

If the stupidest possible player can win, a real one can. If it wins with the head still at 18% of the way down, the level is too easy; at 60%, it is tense. That number is now how levels get tuned, and it runs alongside the 47 tests on every change.

Making it feel like something

All of the above is correctness, and correct is not the same as good. The last stretch was spent on things with no logic in them at all: gems ease into their new positions instead of snapping, using stable ids so a gem keeps its identity across a clear; the steady creep passes straight through the easing so only structural jumps glide. Cleared gems pop in their own color with a spray of sparks. A gem that lands without matching squashes and rebounds. The cannon recoils. All of it turns off if the system asks for reduced motion.

The sound is synthesised in the browser rather than loaded — oscillators and envelopes, a noise burst for the cannon, and a rising arpeggio for clears that adds notes as the combo grows. No audio files to download at all.

What is still not right

The pace is constant. The end-game race would be better with a ramp — the last few gems accelerating toward the pit — and that is not built yet. Two of the twelve gems ended up close enough in color that they are easier to tell apart by their sprite than by their disc. Neither is going to ruin anyone's afternoon, but both are on the list, and I would rather say so than pretend the thing came out finished.

icon for game Chimp Pop
Chimp Pop
  • About Us
  • Privacy Policy
  • Terms and Conditions
  • Contact Us

♻️ Made from 100% recycled electrons! ♻️

    Recently Played

      Games you open show up here.