Burrow Bunk

By (@eula) ·

Burrow Bunk - image 1

just a childhood game i made

Tech stack

  • Claude

Prompt

BURROW BONK
You're about to make a small game that looks like it was cut out of paper by hand and glued onto cardboard. Whack-a-mole is the oldest trick in the arcade. The point here is to make it feel like a tiny stop-motion paper theater: crunchy, handmade, a little silly, and impossible to put down for "just one more round".

Make the whole thing in one sitting. Don't check in halfway. Test it yourself, fix what's wrong, and hand it over finished. When you're done, tell me honestly what you checked and what you couldn't.

1. The pitch
Critters pop up out of paper holes in a garden. You bonk them with a cardboard mallet. Don't bonk the porcupines. A fat bear shows up now and then and needs a few hits. Sixty seconds on the clock, a combo meter that makes you greedy, and a score you'll want to beat.

It must make sense in one second to someone who has never seen it, work great one-handed on a phone, and give a satisfying bonk within the first three seconds of opening the page.

2. The world (the look is the whole personality)
Everything on screen is layered paper. Nothing is a smooth gradient, nothing is neon, nothing is glassy.

Palette: warm, earthy craft colors. Kraft brown card (#B98B5E), cream paper (#F4E8D0), tomato red, mustard yellow, olive and moss green, teal, and deep chocolate for the holes. Saturated but matte, like printed craft paper.
Materials: every surface has visible paper fiber texture and a tiny noise grain, generated in code. Edges are cut with scissors: slightly wobbly, with the occasional zig-zag, never perfectly smooth. Layers sit above each other with soft, short drop shadows, so the whole scene feels like a diorama you could touch.
The scene: a back wall of kraft card with a paper sun hanging on a visible string, a couple of cut-out clouds, three rolling layers of green paper hills, and the playing field in front: a 3 by 3 grid of holes cut into a green paper lawn. Each hole is a dark brown paper ellipse with a cardboard rim and a small paper dirt flap that the critters slide up from behind.
Critters: each one is built from a few cut paper pieces with googly eyes made of white and black paper circles. Make them from simple shapes, with a distinct silhouette each:
Mole: round, brown, pink nose. The common one.
Rabbit: tall ears, pops up fast and leaves fast. Worth more.
Golden mole: shiny gold foil look (a flat gold with a few lighter paper strips for sparkle). Rare.
Porcupine: spiky triangle quills, a grumpy face, and a small red "NO" tag. Don't bonk it.
Bear: big, round, takes up most of a hole. Needs three hits.
The mallet: a cardboard cutout hammer with a wooden handle and a red paper head. On desktop it follows the pointer and swings when you click. On touch it swings down at the tap point.
Stop-motion feel: animate some things at about 12 frames per second on purpose (critter wobble, sun sway, cloud drift), so the whole game has a hand-moved, stop-motion jitter, while the bonk itself stays crisp and instant. A tiny random rotation of 1 or 2 degrees on cut pieces sells it.
Type: big chunky cut-out letters for titles (try "Bowlby One" or "Titan One"), where each letter is its own paper piece with a slightly different tilt, a cream paper outline and a drop shadow. A handwritten marker font ("Caveat Brush" or a safe fallback) for little notes and tags.
HUD: a paper tag clipped to the top with a paperclip for the score, and a paper clock or a sun that slowly slides down a string for the time. The combo shows as a stack of little paper stars. Everything looks stuck on, not floating.
Effects: a bonk makes the critter squash flat, spin a few paper stars around its head, and flop back into the hole. Little paper confetti scraps burst out. A missed whack kicks up a puff of paper dust. Big combos make the hills shake and the sun grin.
3. How the game plays
Thing	Rule
Round	60 seconds. Starts with a 3-2-1 countdown that looks like paper cards being flipped.
Holes	3 by 3. Up to 3 critters can be up at once later in the round.
Mole	1 hit. 10 points.
Rabbit	1 hit. 20 points. Up for a shorter time.
Golden mole	1 hit. 50 points and adds 3 seconds to the clock. Appears rarely.
Porcupine	Don't hit it. Hitting it costs 15 points, 2 seconds and your combo. About one in seven spawns.
Bear	Needs 3 hits within 2.5 seconds. 100 points. Appears roughly every 20 seconds. If you fail, it stomps away.
Whiff	Tapping an empty hole breaks your combo. No other penalty.
Escape	A critter that stays up too long just ducks back. Breaks your combo.
Combo	Each consecutive successful bonk raises the multiplier: x1, then x2 at 5, x3 at 10, x4 at 20, x5 at 35.
Ramp	Critters stay up for less time as the round goes on (about 1.1 seconds down to about 0.5), and more of them pop at once. It must always feel fair, never random.
Controls: tap or click a hole. React on pointerdown, not click, so it feels instant. On a keyboard, use the number row 1 to 9 laid out like a phone keypad to match the grid. No double-tap zoom, no scroll, no text selection. Multi-touch should work: two thumbs, two bonks.

Modes:

Free play: a random seed.
Daily lawn: the exact same spawn schedule for everyone that day, from a seed based on the UTC date, with its own personal best.
4. What it sounds like
All sound is generated in code. No audio files. The vibe is foley: paper, wood and cardboard.

Bonk: a short wooden knock (a sine that drops fast in pitch plus a click of noise), a different pitch each time within a small range so it never repeats exactly.
Critter pop: a quick paper rustle (filtered noise burst) with a tiny squeak.
Porcupine hit: a rubbery boing and a sad little trombone slide.
Golden mole: a bright music-box sparkle.
Bear: a deep thump with each hit and a roar-like low sweep when it's beaten.
Combo milestones: a scissor snip sound and a rising pluck, like a ukulele run.
Music: a light looping tune made of plucked notes and a shaker made from noise, which speeds up slightly in the last 15 seconds. Keep it quiet under the effects.
Mute is a paper button on the HUD. Remember the setting. Audio only starts after the first tap and has to work on iOS Safari. Add a short haptic buzz on bonk if the device supports it, with a toggle.
5. How it should be built
Plain static files. No build step, no libraries, no backend, no accounts. It must work when index.html is double-clicked and on any static host. No image or audio files: paper textures, shapes, critters and sound are all drawn or synthesized in code. One Google Font is fine as long as there is a fallback.

Suggested layout:

index.html: markup, styles and the screen flow.
paper.js: the procedural paper (fiber textures, scissor-cut edge paths, shadows) and the critter drawings.
game.js: the render loop, input and the state machine.
rules.js: all the rules as pure functions with no DOM, so Node can run them.
audio.js: the synthesized sounds and music.
share.js: the share card.
test/rules.test.js: Node tests.
Render the scene on a canvas, with the static background drawn once into an offscreen canvas and reused. Use delta-time for everything so it plays the same at 60 and 120 Hz. Aim for a steady 60 fps on a mid-range phone.

The rules module (pure, tested)
A seeded random generator and a seed-from-date function.
A spawn scheduler: given the time and the seed, which critter appears in which free hole and for how long. It must never put two critters in one hole, never exceed the simultaneous limit for that moment in the round, and honor the porcupine and golden mole frequencies and the bear timing.
The scoring and the combo rules, the time bonus and penalties, and the bear hit window.
A rank function: under 200 "Sleepy Sprout", 200 to 499 "Garden Guard", 500 to 899 "Mole Menace", 900 to 1,399 "Bonk Boss", 1,400 and up "Legend of the Lawn". Adjust the numbers with the tests so a decent first round lands around Garden Guard.
The Node tests must prove: the same seed gives the same schedule, no hole is ever double-booked, the simultaneous cap is respected, porcupines are about one in seven over thousands of spawns, a bear appears about every 20 seconds, the score and combo math is right for every case in the table above, and the rank boundaries work. Have a simple simulated player (a bot with a human-like reaction time) play thousands of rounds and print the score distribution, then use it to tune the difficulty. Run the tests after every change.

6. Screens and sharing
Title: the BURROW BONK letters assembled piece by piece like a paper craft, a mole peeking out and blinking, a big paper START button, the Free play and Daily toggle, and your best score on a little tag. On the very first play (remember it in localStorage), show a one-line how-to ("Bonk the critters. Skip the porcupines.").
Game over: the clock sun sets, a paper banner drops with the rank, the score counts up, and a small stats row shows accuracy, best combo, bears beaten and golden moles caught. A NEW BEST gets a paper-confetti burst.
Share card: drawn on a canvas as a scrapbook page: kraft paper with a taped-on cream card, a handwritten score and rank, little critter stickers for the stats, and a washi tape strip. Output both 1080 by 1350 and 1200 by 630. Buttons: Save image, Copy result text, Play again.
Result text (short, for sharing): Burrow Bonk: 1,120 pts, Bonk Boss. 31 bonks, best combo x4, 1 bear beaten. Beat that: <link>
Challenge link: ?seed=<n>&beat=<score> plays the same spawn schedule and shows a "Beat 1,120" tag. At the end it says whether you did.
Play again must restart in one tap.
7. The details that make it feel finished
Respect prefers-reduced-motion: drop the stop-motion jitter, the hill shake and the confetti.
Never rely on shape or color alone: critters have different silhouettes and the porcupine always shows its red "NO" tag, so it is readable at a glance and for colorblind players.
Layout works from 360 px wide and up, in portrait and landscape, with no horizontal scrolling. Holes are large touch targets (at least 72 px).
No console errors. Pause the clock when the tab is hidden. Store scores and settings in localStorage inside try and catch, and work fine without it.
Page title, Open Graph and Twitter tags, and a small inline SVG favicon of a paper mole.
Use natural, short, punchy words in every message. Never use em dashes or en dashes anywhere, including in code comments.
8. When you hand it back
Give me:

The finished game in the project folder, tests passing, and checked at 360, 768 and desktop widths with no console errors. Include screenshots of the title, mid-round (with a bear and a porcupine on screen), and game over.
A _deploy folder with only the files the live site needs, and the exact command to deploy it to Vercel from inside that folder, as a new project named burrow-bonk. Don't try to log in or deploy it yourself.
A short write-up for sharing the game: a punchy title under 70 characters, a caption of a few lines, the tools list, a condensed version of this brief under about 1,500 characters, three realistic follow-up prompts, and a 15 to 20 second screen-recording shot list.
An honest report: what you tested, what passed, and what you couldn't verify (for example real-phone feel, two-thumb play, and how the sounds actually feel).
Don't pad it with extras I didn't ask for. If you run short on time, cut breadth, never polish. Don't claim anything works until you've run it. And if a whack ever feels late, mushy or unfair, that is the first thing to fix.

Explore more on Prompted

Loading