Prompt Library

Reference prompts for one-shot HTML challenges. Copy, run with your stack, and submit your result.

Prompt Writing Tips for AI Agents

By Difficulty

  • Easy game loop, input, collision, score
  • Medium + grid, rotation, state machine, levels
  • Hard + physics, camera, tilemap, enemies, AI
  • Insane + spawning, balancing, upgrade tree, persistence

Prompt Structure

[Game type]
Create a complete, playable, polished single-file HTML5 [game].

Requirements:
- Single HTML, vanilla JS, no deps
- [Core mechanic 1]
- [Core mechanic 2]
- [UI: start/pause/game over/restart]
- [Input: keyboard + touch]
- [Polish: Web Audio, screens]
- Return complete code only.

RPG Prompts

Roguelike Dungeon

hard4 submissions
View Reference Prompt
Create a roguelike dungeon crawl (single floor) as ONE self-contained HTML file.
Genre: top-down grid dungeon; explore rooms; fight monsters; find exit.
View: tile map 15×15 or multi-room layout with fog optional.
Player: HP, simple melee attack adjacent tile or bump-to-attack.
Monsters: 2 types — slime (weak) and skeleton (tougher); chase on sight.
Loot: potion heals HP; key opens exit door.
Exit: reach stairs tile to win.
Death: HP zero = game over; restart run.
HUD: HP hearts, floor label, keys count.
Keyboard: arrows move turn-based OR real-time simple — pick one and document.
Touch: swipe or D-pad.
One floor enough; no persistent meta between runs required.
Rooms connected — no unreachable exit.
Damage numbers or flash feedback.
Minimap (optional) corner.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
View Results

Rhythm Prompts

Rhythm Tap

hard4 submissions
View Reference Prompt
Create a rhythm tap game as ONE self-contained HTML file.
Genre: 4 lanes; notes scroll toward hit line; time taps to score.
Lanes: D F J K or 4 colored columns; notes are single-hit type only for scope.
Timing windows: Perfect / Good / Miss with score weights.
Chart: handcrafted 30–45s pattern in code array (no external chart file).
Audio: Web Audio beeps or optional simple loop after first gesture.
Combo multiplier on consecutive Perfect/Good.
Miss drains combo; life optional (3 misses = fail) or score-only mode.
Scroll speed constant; notes spawn from chart timeline.
HUD: score, combo, accuracy %.
Touch: 4 bottom buttons ≥44px matching lanes.
Results screen at end of song with rank letter.
Latency: small calibration note in HUD.
Visual hit line and glow on hit.
Autoplay debug toggle off in release build.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
View Results

Puzzle Prompts

Sokoban Push

medium7 submissions
View Reference Prompt
Create a Sokoban box-pushing puzzle as ONE self-contained HTML file.
Genre: grid warehouse; push crates onto goal tiles; cannot pull crates.
Rules: player moves 4-dir; push crate if next cell empty behind crate.
Level: 1–3 small puzzles OR one medium map with 3 crates.
Undo (optional): one step back button.
Win: all crates on goals; show moves count.
Walls: # tiles; floors: . ; goals: O; crates on goals: ★ visual distinction.
No softlocks in designed level — test solvability.
Keyboard arrows; touch swipe to move.
HUD: level label, move count, reset level button.
Title: how to play (push only, not pull).
Celebrate overlay on solve; next level or restart.
Grid fits mobile — scale cell size.
Crates cannot pass through each other or walls.
If stuck, reset level without reload.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
View Results

Bubble Shooter

medium5 submissions
View Reference Prompt
Create a Bubble Shooter puzzle as ONE self-contained HTML file.
Genre: aim cannon at bottom; shoot colored bubbles to match 3+ connected same color.
Grid: hex or staggered rows attached to ceiling; clusters pop when matched.
Aim: rotate launcher left/right; show trajectory guide (dotted arc optional).
Shoot: Space or tap; bubble travels until sticks to cluster.
Lose: any bubble crosses danger line near bottom OR stack fills screen.
Win: clear all bubbles on board (one level enough).
Colors: 4–5 distinct; no ambiguous pairs.
Ceiling drop (optional): entire mass drops one row every N shots.
HUD: score, bubbles remaining in queue, next bubble preview.
Touch: drag to aim; release or fire button to shoot.
Bounce off side walls allowed.
Floating orphans fall and add bonus points (optional).
Collision snap to nearest grid slot — no overlap glitches.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
Quality check 22: keep gameplay readable and complete for one-shot demo.
View Results

Match Three

medium4 submissions
View Reference Prompt
Create a Match-3 puzzle game (Bejeweled/Candy style) as ONE self-contained HTML file.
Genre: swap adjacent gems on a grid; match 3+ same color to clear and score.
Board: 8×8 grid; 5–6 gem colors with distinct shapes/colors.
Swap: click/tap two orthogonally adjacent tiles; invalid swap animates back.
Gravity: tiles fall; new tiles spawn from top; cascades count combo multiplier.
Goal: reach target score in N moves OR endless high-score mode (pick one).
Special tiles (optional): 4-match line bomb, 5-match color clear.
HUD: score, moves left, goal progress.
Hint (optional): wiggle a valid move after idle 10s.
No matches at start; shuffle if no moves (optional).
Touch-friendly tile hit targets.
Juice: pop particles on clear; satisfying swap tween.
Title screen; game over when moves exhausted (if limited).
Detect matches only after player swap (not on spawn unless cascade).
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
Quality check 22: keep gameplay readable and complete for one-shot demo.
View Results

Tetris Stack

medium6 submissions
View Reference Prompt
Create a Tetris-style falling-block puzzle as ONE self-contained HTML file.
Genre: tetrominoes, rotate, line clears, gravity, increasing speed.
Board: ~10×20 visible grid; piece spawns at top center.
Pieces: all 7 tetromino shapes with distinct colors.
Controls: left/right move, up or Space rotate, down soft-drop, hard drop optional.
Line clear: full row removes, rows above fall, score by 1/2/3/4 lines.
Game over: new piece collides on spawn; show final score.
Next piece preview (optional) in sidebar or HUD corner.
Hold piece (optional) if easy to implement.
Ghost piece (optional): faint landing preview.
Level: speed increases every N lines or score threshold.
Touch: on-screen buttons for move/rotate/drop.
HUD: score, level, lines cleared.
Pause overlay with resume.
Bag randomizer (optional) for fair piece distribution.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
View Results

Strategy Prompts

Tower Defense

hard11 submissions
View Reference Prompt
Create a tower defense lite game as ONE self-contained HTML file.
Genre: enemies follow path(s); place towers to damage them before they reach base.
Map: single winding path on grid; clear build spots off path.
Towers: 2 types — gun (single target) and splash (slow AoE) with costs.
Economy: gold from kills; spend to place towers; cannot sell required for demo.
Waves: 5 waves escalating HP/count; short break between waves.
Base HP: 10 leaks = lose; show base health.
Tower placement: click empty tile; range preview circle.
Projectiles: visible travel; lead moving targets optional.
HUD: gold, wave, base HP, start wave button.
Touch: tap tile to place selected tower type.
Win: survive wave 5; lose: base HP zero.
Path must be fully connected from spawn to base.
Enemies visible health or hit flash.
Keep one map — no editor.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
View Results

Shooter Prompts

Asteroids

medium8 submissions
View Reference Prompt
Create an Asteroids-style game as ONE self-contained HTML file.
Genre: ship rotates and thrusts in frictionless space; shoot rocks that split.
Wrap: ship and rocks wrap around screen edges.
Controls: left/right rotate; up thrust; Space fire.
Rocks: large → medium → small on hit; clear all to win wave.
Momentum: velocity persists; gentle max speed cap.
UFOS (optional): occasional shooter with simple AI.
Lives: 3; brief invuln on respawn.
HUD: score, lives, wave.
Vector or simple geometric art; high contrast on black.
Touch: on-screen rotate buttons + thrust + fire.
Brief hyperspace (optional) random teleport with risk.
No instant stop unless friction tweak documented.
Split positions offset so rocks don't overlap unfairly.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
Quality check 22: keep gameplay readable and complete for one-shot demo.
View Results

Galaga Shmup

medium6 submissions
View Reference Prompt
Create a Galaga-style vertical scrolling shooter as ONE self-contained HTML file.
Genre: player ship at bottom; waves of enemies fly formation patterns and shoot.
Movement: left/right + optional dodge speed; Space fires.
Enemy waves: enter from top in formation, break into dive attacks.
Dual fighter (optional): rescued ship doubles fire rate.
Power-up (optional): rapid fire or spread shot for 10s.
Lives: 3; respawn invulnerability.
Background: vertical star scroll parallax.
Boss (optional): single large ship with HP bar after wave 2.
HUD: score, lives, wave.
Touch: move finger drag; fire button.
Collision: player bullet vs enemy; enemy bullet vs player.
Between waves: brief READY banner.
Patterns must be readable — telegraph dives.
Performance: pool bullets.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
View Results

Space Invaders

medium6 submissions
View Reference Prompt
Create a Space Invaders–style fixed shooter as ONE self-contained HTML file.
Genre: player ship at bottom shoots upward; rows of aliens march and shoot back.
Formation: 4–5 rows × 8–11 columns; side-to-side sweep, step down on wall hit.
Player: move left/right at bottom; Space fires single bullet (or limited on screen).
Shields: 3–4 destructible bunkers between player and aliens (optional but classic).
Alien bullets: slow random drops; hit player = lose life.
Clear wave: destroy all aliens → next wave faster (one wave enough for demo).
Lives: 3; invuln blink after respawn.
HUD: score, lives, wave number.
Touch: drag bottom zone to move; fire button ≥44px.
Win/lose overlays; classic green-on-black or neon palette.
UFO bonus (optional) crossing top for extra points.
Alien sprites distinguish types by row points.
Bullets cannot tunnel through bunkers without breaking cells.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
Quality check 22: keep gameplay readable and complete for one-shot demo.
View Results

Survival Prompts

Horde Survivor

hard5 submissions
View Reference Prompt
Create a Vampire Survivors–lite horde survival game as ONE self-contained HTML file.
Genre: top-down arena; auto-attack nearest enemies; survive ~3 minutes; level up picks.
Player: move with WASD/arrows; touch virtual stick.
Weapons: 1 starting aura or projectile that fires automatically on cooldown.
Enemies: spawn from edges, chase player; contact damage with i-frames.
XP gems drop on kill; XP bar fills → level up → choose 1 of 3 upgrades.
Upgrades: damage, attack speed, move speed, projectile count (simple stat bumps).
Timer: 3:00 survival win or endless high score until death.
HUD: HP bar, timer, level, XP bar.
Enemy count scales over time but keep FPS stable (cap max enemies).
Clear telegraphs for damage; red flash on hit.
Title + death screen with stats (time survived, kills).
Arena bounds visible; camera follows player.
Keep scope small — one arena, one character, 3–5 upgrade types max.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
Quality check 22: keep gameplay readable and complete for one-shot demo.
View Results

Sports Prompts

Pong Duel

easy5 submissions
View Reference Prompt
Create a Pong / air-hockey duel as ONE self-contained HTML file.
Genre: two paddles, one ball, score by ball passing opponent goal line.
Playfield: top-down or side view rectangle; ball bounces off walls.
Paddles: player bottom (or left); AI or second player top (or right).
Local 2P: WASD vs arrows OR mouse drag vs keys — document controls.
Ball: speed increases slightly per rally; cap max speed.
Scoring: first to 7 (or 5) wins; center countdown after point.
Spin (optional): paddle hit offset affects ball angle.
HUD: both scores, serve indicator.
Touch: drag paddle on player side.
Title + win screen; rematch button.
Ball reset to center on serve with random angle.
Fair AI: tracks ball but imperfect reaction time.
No ball stuck in paddle tunneling loops.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
Quality check 22: keep gameplay readable and complete for one-shot demo.
View Results

Arcade Soccer

medium7 submissions
View Reference Prompt
Create a classic arcade soccer / football game as ONE self-contained HTML file.
Genre: top-down or side-view pitch — two goals, ball physics, scoring, short match timer.
Teams: player vs simple AI (or local 2P: WASD vs arrows).
Ball: friction, bounce off walls/players, kick on contact with power cap.
Players: move smoothly; tackle or slide optional; cannot leave pitch bounds.
Scoring: ball fully crosses goal line → point + kickoff reset.
Match: 2–3 minute timer or first-to-N goals; halftime text optional.
Pitch: markings (center line, penalty boxes simplified), sidelines.
Camera: fixed full pitch visible on mobile (scale canvas).
HUD: score, timer, half indicator.
Kickoff: center spawn after goal; brief pause text.
Goalkeeper AI optional: tracks ball Y on goal line.
Celebrate: brief overlay on goal; crowd beep optional.
Controls documented on title screen.
Difficulty: AI chases ball but not perfect — player can win.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
View Results

Runner Prompts

Endless Runner

medium4 submissions
View Reference Prompt
Create a 3-lane endless runner as ONE self-contained HTML file.
Genre: auto-run forward; dodge obstacles in left/center/right lanes.
Lanes: 3 vertical lanes; player snaps to lane centers.
Controls: left/right or A/D to change lane; down or swipe down to slide under (optional).
Obstacles: barriers, gaps, low/high types requiring jump or slide if implemented.
Jump (optional): short arc to clear low obstacles — keep readable on mobile.
Score: distance or time survived; speed increases gradually.
Collectibles: coins optional for bonus points.
Collision: hit obstacle = game over; brief feedback.
Camera: side or behind angle — obstacles approach from ahead/right scroll.
Touch: lane buttons or swipe left/right.
Title + game over screens; restart without reload.
First 3 seconds easier spawn rate.
Obstacle patterns must be dodgeable — no unavoidable combos.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
Quality check 22: keep gameplay readable and complete for one-shot demo.
View Results

Arcade Prompts

Snake Grid

easy6 submissions
View Reference Prompt
Create a classic Snake game as ONE self-contained HTML file.
Genre: grid-based snake eats food, grows longer, dies on wall or self.
Board: ~20×15 grid (or similar); visible grid lines optional.
Movement: 4-direction on a timer tick (not real-time free move); queue next turn input.
Food: spawn on empty cell; eating increments score and length.
Speed: increases every 5 foods or fixed ramp.
Wrap walls (optional) OR solid walls — pick one and document on HUD.
Keyboard: arrows/WASD; touch: swipe or 4-button pad.
HUD: score, high score, length.
Game over on collision; R or tap to restart.
Start overlay: press key to begin.
Distinct head color; body follows tail.
No diagonal movement.
Ensure food never spawns inside snake.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
Quality check 22: keep gameplay readable and complete for one-shot demo.
View Results

Flappy Endless

easy6 submissions
View Reference Prompt
Create a Flappy Bird–style endless flyer as ONE self-contained HTML file.
Genre: tap/click to flap upward; gravity pulls down; pass gaps between pipes or obstacles.
Single-button core: Space/click/tap flaps; release does nothing extra.
Obstacles: evenly spaced gaps; scroll world left; random gap Y within safe bounds.
Score: +1 per gap passed; show current and best score.
Collision: hit pipe/ground/ceiling = game over; brief freeze then restart overlay.
Difficulty: constant scroll speed or gentle ramp every 10 points.
Visual: simple bird sprite or shape; day-sky palette readable on mobile.
Parallax background optional (clouds) — must not hurt performance.
Touch: full-screen tap; prevent scroll.
Title screen with start; game over with retry.
Fair hitboxes slightly smaller than art.
First pipe appears after 1s warmup.
No impossible gap heights.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
Quality check 22: keep gameplay readable and complete for one-shot demo.
View Results

Pac-Man Maze

hard5 submissions
View Reference Prompt
Create a Pac-Man–style maze chase game as ONE self-contained HTML file.
Genre: grid maze, dots, power pellets, ghosts, lives, high score.
Maze: single coherent map with walls; dots in corridors; power pellets in corners.
Player: 4-direction grid movement (not diagonal); smooth pixel motion between cells.
Ghosts: 2–4 with simple chase/scatter modes or random patrol.
Power pellet: temporary ghost-eat mode with timer and point bonus.
Lose life: ghost collision while not powered; brief respawn invuln.
Win: eat all dots; or endless high-score mode with level clear banner.
Tunnel wrap (optional): left/right wrap like classic arcade.
HUD: score, lives, high score.
Keyboard: arrows; touch: swipe or 4-button pad.
Ghost colors distinct from player; frightened ghosts change color.
Start delay: 2s ready countdown before ghosts leave pen.
No impossible dead-ends for the player route.
Performance: grid-based collision, not per-pixel wall scan every frame.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
View Results

Breakout

medium6 submissions
View Reference Prompt
Create a Breakout / Arkanoid-style brick breaker as ONE self-contained HTML file.
Genre: paddle at bottom, bouncing ball, destructible brick grid, lives.
Paddle: move horizontally at bottom; keyboard + touch drag.
Ball: velocity increases slightly on brick hit; max speed cap.
Bricks: grid with HP colors or one-hit; clear all to win.
Power-ups (optional): widen paddle, multi-ball, slow ball — drop from bricks.
Lose life: ball passes bottom; reset ball on paddle after delay.
Win: all bricks destroyed; show score + restart.
Levels: one solid layout is enough; optional second row of steel bricks.
Collision: reliable paddle/ball/wall/brick reflection (no tunneling).
HUD: score, lives, level label.
Title + game over overlays; R to restart.
Visual: neon or arcade palette; brick particles on break.
Mobile: paddle follows touch X.
Fair spawn angle from paddle center on serve.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
View Results

Donkey Kong Climber

hard6 submissions
View Reference Prompt
Create a Donkey Kong–style climbing arcade game as ONE self-contained HTML file.
Genre: vertical multi-platform climb — ladders, rivets, barrels, rescue goal at top.
Layout: stacked platforms connected by ladders; gaps where barrels roll across.
Player: climb ladders, jump gaps, dodge or jump rolling barrels.
Barrels: spawn from top, roll along platforms, fall at ladder gaps; predictable paths.
Goal: reach the top platform (princess/trophy) to win; timer or lives optional.
Damage: barrel hit or fall off screen costs life; clear invuln flash on hit.
Hammer power-up (optional): brief barrel smash if scope allows.
Keyboard: arrows move; Up/Down on ladders; Space jump.
Touch: D-pad + jump; large hit targets.
Camera: vertical scroll or fixed tower view showing several floors at once.
HUD: score (bonuses), lives, floor indicator.
Enemy taunt: simple Kong sprite/emoji at top throwing barrels on interval.
Platforms: riveted girders aesthetic; readable collision boxes.
Win: touch rescue zone; lose: lives exhausted.
Polish: barrel bounce animation, climb stutter on ladder, pickup chime.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
View Results

Platformer Prompts

Mario-like Platformer

hard15 submissions
View Reference Prompt
Create a complete Mario-like side-scrolling platformer as ONE self-contained HTML file.
Genre: 2D platformer — run, jump, gravity, tiles, coins, enemies, camera, goal flag.
Level wider than viewport: platforms, gaps, pipes/blocks, coins, finish flag.
Player: smooth move + forgiving jump (coyote/buffer ok).
Physics: gravity, grounded checks, stable tile collision.
Enemies: patrol type — stomp or avoid; clear hit feedback.
Camera: horizontal follow; readable on phones.
Keyboard: arrows/WASD move; Space/Up jump.
Coins increment score; pits/enemies cost lives or game over.
Win: reach flag; celebration screen.
Polish: particles, squash/stretch, or screen shake on events.
Theme: sky/ground/player/enemy palette that reads on mobile.
Difficulty: easy start, harder gaps/enemies later.
State machine: title, playing, won, lost (pause optional).
Level must be completable — smoke-test the route to the flag.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
View Results

Trending