Skip to content

Arcade › Brick Toss

Brick Toss

  • 2d
  • arcade
  • pixel-art
  • physics
  • skill
  • timed
0
Remix it Discord

8 plays

How to play

Click the game above and it runs right here in your browser. No download, no installer, no account needed. Isaiah Onibudo built it with Cinevva, so it works on a phone or a tablet too.

Discussion

Nobody has said anything about Brick Toss yet. Play it, then tell Isaiah Onibudo what you would add next.

Make your own game

Brick Toss was built by Isaiah Onibudo 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 Brick Toss 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.

Read the build brief for Brick Toss

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 self-contained 2D HTML5 canvas arcade game titled "Brick Toss". Use a fixed logical game world of 360x210 pixels, scaled up with nearest-neighbor/pixelated rendering to fit the browser while preserving the aspect ratio and centering it against a dark navy background (#111827). The presentation is crisp low-resolution pixel art with no external assets.

Scene: a bright pale-blue sky fills the upper area, with two blocky white cloud formations on the left. The lower scene is a backyard: green grass from y=138 to 178, a dark green horizontal strip at the grass top, and brown dirt from y=178 to the bottom, with small lighter-brown horizontal dirt marks. On the right is a dark charcoal crate rack/back wall spanning approximately x=202-348 and y=82-178, with a darker inset panel and several horizontal/vertical beams forming shelves. On the left stands a small pixel-art thrower at approximately x=55, y=158: dark blue legs, a teal-blue rectangular shirt/body, a peach face and arm, dark brown hair, tiny dark eyes, and a simple mouth. The character’s arm aims according to the current throw direction.

At the start of each round, place exactly 8 intact wooden crates as targets, each about 25x20 pixels, on the rack at these world positions: (250,157), (293,157), (328,157), (268,126), (315,124), (287,94), (336,96), and (230,118). Draw them as warm brown pixel rectangles with lighter inner faces and darker cross-like plank details. Targets have one hit point and disappear when hit.

Core interaction: support mouse, touch, and pointer input. The player can press/touch anywhere on the canvas, drag, and release to throw a brick; it is not necessary to start directly on the character. While dragging, calculate the pull vector from the current pointer position back to the initial press position. Show a short dotted pale-yellow trajectory guide from the character’s hand in that direction, with a faint line connecting the press and current pointer positions. On release, if the pull distance is at least 7 world pixels, spawn one small red brick at roughly (player.x+16, player.y-38), increment the throws counter, and launch it along the pull direction. Launch speed is pull distance times 8.4, capped at 520; use gravity 760 pixels/sec². The brick is a 16x10 pixel red brick with lighter top highlight and dark vertical detail, rotates while flying, and bounces on the dirt/ground at y=174 with reduced vertical and horizontal velocity. Let bricks persist for about 4 seconds and remove them when expired or well outside the world.

Collision/gameplay: detect axis-aligned overlap between each flying brick (approximately 16x10) and each living crate. A crate hit destroys that crate, marks the brick as having hit so it cannot hit further targets, reverses and damps the brick velocity, increments a combo counter, and awards 100 + 25*combo points. Emit a burst of around 22 small brown/orange square particles from the crate, with gravity and short lifetimes, and briefly shake the playfield. Reset combo to zero whenever a new brick is thrown. When all eight crates are destroyed, award an additional ceil(time remaining)*10 points, show the cleared result, and end the round. Also end the round when the 45-second timer reaches zero; show a time-up result in that case. Store the best score in localStorage under a suitable key such as brickTossBest and update it when a round ends with a higher score.

Round flow: initially show a ready overlay and do not count down until the first valid throw starts the round. The initial overlay is a translucent dark panel around x=57,y=47,w=246,h=63 containing pixel/monospace text: "BRICK TOSS", "drag back from anywhere", and "release to chuck a brick at the crates". Once started, the message should say "Break every crate before time runs out" initially, then briefly describe events such as "brick away", "+125 crate cracked", "yard cleared", or "time up". If the round is ended, show a translucent dark panel around x=56,y=48,w=248,h=72 with either "YARD CLEARED" in pale green or "TIME UP" in peach, a score and throws line, and "tap and drag to play again". A valid drag after ready or after game over starts/resets a fresh round and launches the brick. Also support the R key to reset/restart.

HUD: draw a translucent dark top bar from (8,8) to (352,32). In small cream monospace pixel-style text show "score <number>" at the left, "throws <number>" near x=149, "time <ceil seconds remaining>" near x=265, and "best <number>" right-aligned at x=346 in a slightly golden color. Display the current status message centered near the bottom at y=192. Use a 45-second round, score initialized to zero, throws initialized to zero, and best score persisted between sessions. Add subtle target wobble when hit (even though the crate is removed), particle effects, and brief screen shake for impact, while retaining the minimalist pixel-art look. Make the canvas responsive, disable page scrolling/text selection, and use crisp pixelated scaling.

More free browser games

Browse the whole Arcade →