Brickwork
A brick-breaker across fourteen material worlds. Dismantle ceramic arches, fracture linked glass, and unfasten timber frames. Includes 168 authored boards, daily challenges, repeatable endless runs, and a local editor. The fewer bricks remain, the faster the ball gets.
Version: 1.0
Type: 2D Arcade Game / Single Page Application (SPA)
Domain: Precision Play / Procedural Levels / Local Authoring
Purpose & Origins
Brickwork started with wanting a proper browser brick-breaker: move the paddle, choose the return angle, and keep the ball alive. I wanted the familiar controls with enough variation to sustain a full game, without advertisements, accounts, or anything trying to turn a missed shot into a purchase.
The materials became the organizing idea. A ceramic arch, a woven seam, and a connected glass panel should give you different reasons to aim at a particular brick. That carries through the layouts, surfaces, structural markings, impact sounds, and menus. The game can change worlds without changing the meaning of its controls.
Pace became equally important. Early versions were too forgiving, particularly once a board was nearly empty. New runs start faster and build speed as bricks disappear, with wider paddle shots receiving a modest speed bonus. The intention is a threatening rally and a brisk finish, rather than a long wait for the final brick.
Architecture & Technology
The application is written in TypeScript and compiled into a single HTML entry containing its JavaScript and CSS. Canvas 2D draws the playfield, board previews, and editor; the Web Audio API synthesizes the music and effects locally. It downloads no framework, web font, texture pack, or recorded soundtrack.
A fixed 120 Hz simulation handles movement and chronological collisions separately from rendering. Display frames interpolate along the resolved movement paths. Each ball carries its own pacing state, so a structural cascade can raise the board’s speed target without abruptly accelerating another ball already approaching the paddle.
Progress, preferences, and local records use browser localStorage. My boards has its own IndexedDB library. Both have file export and import for backup and manual transfer. Published boards, rules, and generated courses retain versioned identities, so an older saved run continues the version it started rather than silently adopting new physics or a changed route.
Deployment is static: the compiled entry and supporting icons, manifest, build metadata, and service worker. The worker provides optional offline caching. There is no application backend, account system, cloud synchronization, or online leaderboard.
Scope & Uniqueness
The authored collection contains fourteen worlds with twelve boards each. Kiln District uses reinforced masonry and release points; Joinery uses pegs that weaken braces; Cut Glass carries fractures through linked panes; Loom Room rewards following a seam. Circuit Foundry organizes components around service channels, while Bamboo Canopy uses open flanks and suspended spans.
Five modes give those structures different purposes. Standard follows a world’s boards; Practice removes the life limit; Challenges supplies 42 authored objectives and a dated local selection; Arcade offers fourteen six-board routes with shared lives; Endless generates repeatable courses from run codes. Daily asks for no attendance streak, and a run code reproduces its course without contacting a server.
Eight powerups change how a rally develops. There is one deliberate fairness rule: when a timed power expires, it remains effective through the next valid paddle contact. A final Catch still holds the ball until you launch it. The benefit does not disappear just before the return it was supposed to help you make.
My boards turns the same materials into a local construction kit. Place bricks on a nine-by-eight grid, define structural links and pickups, undo changes, and playtest with the actual game engine. Return to the same workspace or export the board as a portable file. Custom play does not overwrite ordinary scores or the saved Standard, Arcade, and Endless runs.
Mouse, remappable keyboard, touch, and standard-mapped controller inputs are implemented, alongside Relaxed pace, high contrast, reduced motion, and adjustable graphics.
Screenshots




