Ready-to-use AI prompt: brick breaker with power-ups
- TtsetNov 4, 2026, 12:38 PM
Brick breakers are easy to build and play, and they're great for experimenting with game feel. This prompt asks for handcrafted levels as text, so you can design new ones yourself without touching the code.

The prompt
Build a complete browser game as ONE self-contained index.html file (inline CSS and JavaScript, no external libraries, no asset files: canvas drawing only, sounds with the Web Audio API). Game: a brick breaker with power-ups. - The paddle follows the mouse or finger horizontally; the arrow keys / A and D also work. Click, tap or Space launches the ball. - The bounce angle depends on where the ball hits the paddle (edges = sharp angles), so the player can aim. - Bricks: normal (1 hit), strong (2 hits, cracks after the first), steel (unbreakable). Levels are defined as arrays of strings at the top of the script, one character per brick ('.' empty, '1' normal, '2' strong, '#' steel). Include 5 levels that get harder. A level is cleared when all breakable bricks are gone. - 15% of broken bricks drop a power-up capsule: WIDE (wider paddle for 10 s), MULTI (+2 balls), SLOW (slower balls for 8 s), LIFE (+1 life, rare). - 3 lives. Score: 10 points per brick, x2 combo while the ball hits several bricks without touching the paddle. - Juice: a short flash and particles when a brick breaks, a ball trail, a tiny screen shake on steel hits, a pitch that rises with the combo. - Screens: title, playing, level clear, game over / victory with the score and the best score (localStorage). Technical: - Fixed-timestep update at 120 Hz with swept (continuous) ball-vs-brick collision, so a fast ball never passes through bricks. - A 960x540 virtual resolution, scaled and letterboxed to the window; handle devicePixelRatio. No page scrolling on touch. - Pause when the tab is hidden. - Leaderboard: add <script src="https://gamero.gg/sdk/gamero.js"></script> before your script. On game over or victory: if (window.Gamero?.available) Gamero.submitScore(score).catch(() => {}). The game must work fully without it. Reply with the full file in one code block, then explain the level string format so I can add my own levels.Make it stand out
Brick breakers are a well-worn genre, so the twist is everything. Some ideas: bricks that move down every 10 seconds, a paddle that is also a gun, a level that is a pixel-art picture revealed as you break it, or two paddles (top and bottom) for split attention.