Appearance
Arcade › Race to 21
Click the game above and it runs right here in your browser. No download, no installer, no account needed. Duncan speakmanprice built it with Cinevva, so it works on a phone or a tablet too.
Nobody has said anything about Race to 21 yet. Play it, then tell Duncan speakmanprice what you would add next.
Race to 21 was built by Duncan speakmanprice with the Cinevva game creator: describe the game you want in chat, watch it get built, and play it in your browser minutes later.
Remix Race to 21 opens the real game in the creator and forks its actual files, chat and design doc, so you start from the code rather than from a description.
Cinevva's analyzer read this game's design doc and its source, then wrote the brief below. "Make your own" hands it to the game creator as your opening message, so you start from a real spec rather than a one-line idea.
Create a playable browser game titled “Race to 21,” a fast two-player-turns number game against an AI. The player and AI alternately add 1, 2, or 3 to a shared running total that starts at 0. This is the misère version: landing exactly on 21 loses. If the player reaches 21, show “You lose — you hit 21.” If the AI reaches 21, show “AI loses — it hit 21. You win.” Stop input after the game ends. The player goes first. On the player’s turn, allow clicking large on-screen “+1”, “+2”, and “+3” buttons or pressing keyboard keys 1, 2, and 3. Disable those controls during the AI turn and after game over. Press R or r to restart the game to total 0, the player’s turn, and the instructional message “Don’t hit 21 — whoever lands on 21 loses.” If a move would exceed 21, do not apply it and briefly show “Too high — pick a smaller move.” Implement the AI as a short-delay opponent: after the player moves, wait roughly 480–900 ms, show a brief message such as “AI plays +2,” then make one move. The AI must never choose a move that lands on 21 when legal alternatives exist. Prefer moving to 20, otherwise prefer leaving the opponent at a multiple of 4, and otherwise choose randomly from legal moves. Return control to the player if the game continues. Use a full-screen dark neon 3D presentation rendered on a transparent WebGL canvas. The background is nearly black with a subtle blue radial gradient and faint fog. Build a circular dark arena floor with a glowing electric-blue torus ring around its edge. In front of the camera, arrange 21 small floating dark-blue rectangular number tiles in a broad arc, labeled 1 through 21 in white. The tiles should have thin blue borders, lightly emissive blue materials, and gently bob and rotate over time. Highlight all tiles up to the current total with a subdued blue glow and make the tile matching the current total glow much brighter; tiles beyond the total remain dim. Add approximately 180 tiny pale-blue spark particles scattered above and around the arena, with a subtle shimmering opacity. Use a perspective camera positioned above and in front of the arena, with very slight continuous camera breathing/bobbing, a pulsing ring glow, and cool blue/white ambient, key, and rim lighting. The overall style is clean, futuristic, minimal, and stream-safe rather than busy. Overlay the game UI above the canvas. At the upper left display spaced uppercase text “RACE TO 21,” with a small hint beside it: “Press 1/2/3 (or click) — R to restart”. Beneath it place two translucent dark rounded status pills reading “Total: 0 / 21” and “Turn: You”; update the total and turn label to “You” or “AI” during play. Place the three rounded dark translucent action buttons along the lower left, labeled +1, +2, and +3, with subtle blue borders, white text, hover/active states, and disabled dimming. Show transient bold messages near the upper right, fading and sliding slightly into view for the restart instruction, AI moves, invalid moves, and win/loss results. At the lower right show the small muted footer “Tip: first click enables audio.” Keep the UI responsive and avoid scrolling. Add optional browser audio using Tone.js, initialized on the first click or key press. Use quiet triangle-synth blips for moves, with notes rising from C4 toward C5 according to the total, a short pink-noise tick for invalid moves, and paired tones for the win/loss result. Throttle sounds so rapid events do not overlap excessively. Make the game immediately playable with the initial state total 0 and turn You, and preserve the polished neon arena appearance throughout.