12

I wanted to see how far a local open-weight model could get on a full playable game in one prompt, no follow-ups. Flappy Bird is a good test: simple, but the pipe gap and spacing tuning is what makes or breaks it.

Smaller local models love to hand you an impossible version: gaps too tight, pipes too close, gravity way too heavy. So I over-specified the exact numbers (gap size relative to the jump arc, horizontal spacing in terms of reaction time) rather than trusting it to 'balance' anything. It one-shotted a genuinely playable build.

No answers, just documenting that the trick with local models is to leave nothing to their judgment.

THE PROMPT
Build a Flappy Bird clone in a single HTML canvas file, vanilla JS, 60fps, no assets (draw with shapes). Space/click flaps: sets vertical velocity to a fixed upward impulse; gravity pulls down. Pipes scroll left; passing a pipe scores +1; hitting a pipe or the ground/ceiling ends the run.

Tune for FAIR difficulty using these exact relationships (do not improvise the balance):
1. Choose gravity and flap impulse so a flap raises the bird about 25% of the screen height, and the bird takes ~450ms to fall that distance (comfortable, not twitchy).
2. Vertical pipe gap = 4.5x the bird's height (roomy enough to react but still tense).
3. Horizontal pipe spacing = scroll_speed * 1.6s, so the player always has ~1.6s between pipes at the current speed.
4. Gap vertical position varies smoothly (limit how much consecutive gaps can differ, e.g. no more than 30% of screen height between neighbors) so you never get a jump you cannot physically make.
5. Scroll speed starts gentle and increases only slightly with score, capped.

Game feel: bird tilts toward its velocity (nose up on flap, nose down when falling), a small flap 'poof', screen flash + shake on death, a best-score stored in localStorage, and a 'tap to start' idle bob. Framerate-independent. Print the chosen gravity, impulse, gap, and spacing numbers as comments so the balance is auditable.
limiting how much consecutive gap positions can differ is the fairness clause people forget. without it you eventually get two gaps that are physically unreachable in sequence.physics_pax 1 month ago
'leave nothing to their judgment' is the whole strategy for small local models. specify the numbers, not the vibe. same reason my local-model game prompts are twice as long as my claude ones.hackweek_hugo 1 month ago
add a comment

0 Answers

Your Answer