Appearance
Arcade › Table Break
Click the game above and it runs right here in your browser. No download, no installer, no account needed. Eleanore Hancock built it with Cinevva, so it works on a phone or a tablet too.
Nobody has said anything about Table Break yet. Play it, then tell Eleanore Hancock what you would add next.
Table Break was built by Eleanore Hancock 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 Table Break 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 responsive browser game titled “Table Break”, a simple top-down snooker/pool shooting game played on a pocket-sized green table against a dark green page background. Use a canvas with a logical playfield of 900x470 that scales to its container while preserving the table appearance. Above it, show a header with the uppercase title “TABLE BREAK” and subtitle “A POCKET-SIZED SNOOKER TABLE”. Add pill-style HUD elements for “You” with the player score, “AI” with the opponent score, the turn status (“Your turn”, “AI thinking…”, or “AI turn”), the current target (“Target: Red” initially), the number of remaining red balls (15 initially), and a Power readout with a percentage and horizontal green/yellow/red fill bar. Overlay a rounded “New rack” button at the table’s upper-right and a bottom-center translucent hint reading “Drag back from the cue ball, then release to shoot”. Render the table from directly overhead. Surround the cloth with a thick warm wooden frame and dark brown rails, with subtle gradients, highlights, rounded corners, and six black pockets: four at the corners and two centered on the short rails. The cloth is dark green with a slightly lighter gradient and faint horizontal texture lines. Draw a baulk line across the table at x=260 in the logical coordinate system, plus a semicircular baulk/D arc centered at (260,235), and small pale rail sights along the top and bottom edges. The playable table interior runs approximately from x=30 to 870 and y=30 to 440. Make balls glossy, shaded spheres with a bright upper-left highlight, dark lower edge, soft shadow, and thin light rim. At the start of every rack, place a white cue ball at (180,235), radius 11. Place fifteen red balls, radius 10, in a triangular rack toward the right: five rows with row index 0–4, using x=620 + row*22*0.88 and y=235 + (i-row/2)*22 for i from 0 through row. Place colored balls at these logical positions: pink (595,235), blue (500,235), brown (450,235), green (260,115), yellow (260,355), and black (760,235). Use recognizable colors: red, yellow, green, brown, blue, pink, black, and ivory cue ball. The core interaction is turn-based shooting. Only when it is the player’s turn, the cue ball is alive, and balls are not moving, let the player press/touch the canvas and drag. While dragging, show a dashed aiming line extending from just behind the cue ball in the direction opposite the pointer, plus a translucent aiming/power glow around the cue ball. The intended shot vector is from the pointer back to the cue ball: on release, shoot with dx = cueBall.x - pointer.x and dy = cueBall.y - pointer.y. Ignore very short drags under about 14 pixels. Cap drag power at 600 pixels; convert it to velocity using approximately 0.18 + power/600*0.50, and update the Power percentage bar from 0 to 100. Display “Balls are rolling…” while the shot is in progress. Simulate all balls with simple 2D physics: position += velocity * delta time, apply friction around Math.pow(0.994, deltaTime*60), collide balls as circles with equal-mass elastic velocity exchange and positional separation, and bounce off the inner rails with about 0.82 restitution. Six pockets are centered at (30,30), (870,30), (30,440), (870,440), (450,28), and (450,442), with pocket radius 23; remove a ball when it gets within roughly 20 pixels of a pocket. A pocketed cue ball should be temporarily removed and then respawn at (180,235) after about half a second, with the hint “Cue ball scratched — placed back on the baulk line”. Use snooker-style target scoring. Begin with target=red. If the current target is red, only pocketing a red is correct; red is worth 1 point. After a correct red, set the next target to “color”; after any red is pocketed, the implementation should then require the named color target only when target is not red; colored balls have values yellow=2, green=3, brown=4, blue=5, pink=6, black=7. When a color is pocketed, return the target to red. Score correct pocketed balls positively and incorrect pocketed balls negatively, never below zero. Apply the points to the current player’s score (You or AI). Keep the remaining-ball HUD count equal to the number of live red balls. There does not need to be a win screen or automatic rack completion; keep the rack active until the player presses “New rack”, which resets scores, target, turn, balls, and power. After the player’s shot fully stops, automatically switch to the AI. Show “Your break is over — AI is lining up…” and wait about 0.75 seconds, with the HUD saying “AI thinking…”. Then have the AI select the first live ball matching the current target (a red if target is red, otherwise the exact named color), falling back to the first live non-cue ball. Aim toward the nearest pocket using a simple direct heuristic and shoot automatically. Show “AI is shooting…” during its shot. When the AI shot stops, return to the player with “Your turn — drag back and release”. Prevent input during AI turns and while balls are rolling. Use polished but restrained arcade UI styling: dark forest-green page background, cream text, muted green HUD pills with rounded borders and shadows, warm wood/brown table rails, rich green cloth, and glossy jewel-like balls. Ensure pointer/touch controls work on the responsive canvas, the reset button works at any time, and the visual layout remains usable on narrow mobile screens.