Game review
Boxed In (JezzBall clone)
7.5 / 10
- Developer
- Brianna Rainey (tassaron)
- Publisher
- Brianna Rainey (open source)
- Released
- 1 January 2023
- Platforms
- Web browser (desktop and mobile)
- Genre
- Puzzle / Action
- Monetisation
- Free, open source, no ads and no in-game purchases
- Players
- Single-player only
The short version
The genre this belongs to only ever really had one famous example — the wall-building, ball-trapping puzzle Microsoft bundled into its Entertainment Pack decades ago — and this is a clean, unlicensed-asset, from-scratch rebuild of exactly that idea, not a reskin or a twist on it. What makes it worth including here rather than just noting as a curiosity is that its touch implementation is dedicated rather than bolted on: dragging a finger across the board moves the wall-placement paddle in real time, exactly like the mouse does, and lifting the finger commits the wall, with a second on-screen button standing in for the right-click that swaps direction. Confirmed by testing rather than by reading the code alone, a tap-and-hold drag placed a wall that grew, sealed a section, and cleared the level by a real percentage, on both a simulated phone and a desktop mouse. It arrived needing a two-line HTML fix and two missing shared assets sourced from elsewhere before it would even load standalone, but once patched, the actual game underneath is a faithful, functional copy of a genuinely well-loved design.
Biggest strengths
- The touch implementation is a dedicated build, not a mouse port with event listeners bolted on — `touchmove` drags the wall-placement paddle in real time exactly like `mousemove` does, and `touchend` commits the wall, confirmed by testing rather than by reading `ui.js` alone
- Direction-swap, which is a right-click on desktop, gets a proper first-class on-screen button on every device rather than being dropped or hidden behind a gesture a touchscreen can't reliably perform
- The core design holds up: walling off shrinking sections of a board while dodging your own unfinished walls is a genuinely tense, well-paced loop that rewards fast reads over careful planning, and it's not a design that's easy to find anywhere else today
Biggest weaknesses
- As shipped in the source repository, this would not have run at all here: `index.html` pointed at a webpack `bundle.js` that isn't checked into the repo, and referenced a stylesheet, a favicon and two images from the author's own site one directory up that don't exist in this copy — fixed here by switching to the plain ES-module entry point already written into the page (just commented out) and removing the dead references, but a candidate that needs source changes before it loads is a real gap, not a formality
- The board was a fixed 720×640px block with no responsive sizing at all; a phone-width media query had to be added here to make it fit a phone screen without horizontal scrolling, since the project's own commented-out "miniature mode" would have shrunk the board on desktop too had it been switched on as-is
- Presentation is plain even by classic-puzzle standards: solid-colour circles, a black wall, and a magenta background, with no texture, animation flourish, or sound at all
Who it's for: Anyone who remembers the original from a Windows 95 CD-ROM, or anyone who wants a real-time puzzle that rewards quick decisions over long planning
Our recommendation: Worth playing — a faithful rebuild of a genuinely good, hard-to-find classic, let down only by plain presentation
7.5 / 10
Before anything else about how this plays: the design it's rebuilding is Microsoft's, from the Entertainment Pack era, and the name it goes by is a registered trademark still technically active even though the original hasn't been sold in decades. What's here is a clean-room, from-scratch rebuild under the author's own MIT licence — no Microsoft code, no Microsoft assets — so it's genuinely fine to host, but it isn't going out under its old branding, the same way this shelf has handled other direct-title clones before. Call it what it plays like: a wall-building, ball-trapping area-denial puzzle, built from nothing but canvas and vanilla JavaScript by a solo developer who's been maintaining it on and off since 2020.
What actually shipped needed fixing first
Worth being upfront about, because it's the kind of gap a quick glance at the repo wouldn't catch: the committed index.html pointed its script tag at a webpack-built bundle.js that simply isn't in the repository, and separately referenced a stylesheet and two images from the author's own personal site — ../back_button.css, ../img/favicon.ico, ../img/back_arrow.png — that only exist in the context of that site's own folder structure, not this one. The fix turned out to be exactly as small as advertised: the page already had a plain ES-module entry point (main.js, importing nothing but its own sibling files) sitting right there, just commented out in favour of the missing bundle. Switching to it, and dropping the two dead asset references along with the "back to the list of fun stuff" navigation link that only made sense on the author's own site, was enough to get a fully working standalone copy with zero build step. None of that reflects on the actual game code, which was clean throughout, but a candidate that arrives unable to load without source changes is worth naming plainly rather than glossing over.
The other real gap: the game board was hard-coded to 720×640 pixels with no responsive behaviour at all. The author had clearly thought about this — there's a commented-out "miniature mode" block sized at 360×320 sitting right next to the bundle toggle — but switching it on as written would have shrunk the board on every device, desktop included, rather than just narrow ones. Scoping that same 360×320 size to a phone-width media query instead keeps the full-size board on desktop and gives a phone a board that fits its screen without forcing horizontal scrolling.
The touch controls are a real implementation, not an afterthought
This is the part that actually earns the game a place here. ui.js binds touchstart, touchmove, and touchend directly on the game's own canvas layer, and touchmove drives the wall-placement paddle continuously as a finger drags across the board — the exact same logic path mousemove uses, just fed touch coordinates instead of mouse coordinates. Lifting the finger, via touchend, is what commits the wall, mirroring what a mousedown does for a click. Testing this directly on a simulated 390×844 touch profile, a single tap-and-release on an open section of the board placed a wall that then grew across the screen on its own and sealed off roughly a fifth of the level, with the cleared-percentage counter updating to match. The same sequence worked identically with a mouse click on the desktop profile.
The one action a touchscreen genuinely can't do is a desktop right-click, which is how this game normally swaps which way a new wall extends. Rather than hide that behind a long-press or drop it, index.html puts a permanent, clearly-labelled "Swap Direction By Tapping This Box" button on screen at all times, wired to the same swapDirection function the right-click calls. It's a plain, unglamorous solution and exactly the right one — a dedicated control rather than a compromise.
A good design, plainly dressed
Once it's running, the actual game is worth the fixing effort. Two or more balls bounce around an otherwise empty rectangle, and the only tool available is drawing a wall — horizontally or vertically, direction chosen by whichever way you last swapped it — that grows from a fixed point toward both edges of the board and locks in whichever side ends up empty of balls when it completes. A wall struck by a ball before it finishes breaks and costs a life. That's the entire design, and it holds up: because the walls are visible and building in real time, the tension is in the decision of where to start one, not in reflexes, and the board gets meaningfully harder as it fills in and the remaining bounce paths for the balls narrow. It's a genuinely well-built puzzle idea that most players under a certain age have simply never had the chance to play, because the original hasn't been sold or bundled with anything in a very long time.
What it doesn't have is any visual ambition to match the design: solid-fill circles for balls, a plain black bar for walls, and one flat magenta background colour throughout, with no sound at all. That's a legitimate, honest trade a solo hobby project is allowed to make, and it doesn't get in the way of playing, but it does mean this earns its place on craft and control rather than presentation.
Where that leaves it
A 7.5 reflects a genuinely good, well-loved design rebuilt faithfully and with real attention to making it work on a touchscreen — exactly the profile this shelf is built to surface — held back by presentation that doesn't try for more than function, and by the fact that nothing here is a new idea, only a well-executed old one made accessible again.
Pros and cons
Pros
- The touch implementation is a dedicated build, not a mouse port with event listeners bolted on — `touchmove` drags the wall-placement paddle in real time exactly like `mousemove` does, and `touchend` commits the wall, confirmed by testing rather than by reading `ui.js` alone
- Direction-swap, which is a right-click on desktop, gets a proper first-class on-screen button on every device rather than being dropped or hidden behind a gesture a touchscreen can't reliably perform
- The core design holds up: walling off shrinking sections of a board while dodging your own unfinished walls is a genuinely tense, well-paced loop that rewards fast reads over careful planning, and it's not a design that's easy to find anywhere else today
- Small and fast: a 316KB install, instant load, and zero console errors, page errors, or failed requests across both device profiles tested
- The score-submission code for the author's own arcade site checks for a DOM element that isn't present on this standalone install before doing anything, so no dead network calls or broken UI fire on this copy
Cons
- As shipped in the source repository, this would not have run at all here: `index.html` pointed at a webpack `bundle.js` that isn't checked into the repo, and referenced a stylesheet, a favicon and two images from the author's own site one directory up that don't exist in this copy — fixed here by switching to the plain ES-module entry point already written into the page (just commented out) and removing the dead references, but a candidate that needs source changes before it loads is a real gap, not a formality
- The board was a fixed 720×640px block with no responsive sizing at all; a phone-width media query had to be added here to make it fit a phone screen without horizontal scrolling, since the project's own commented-out "miniature mode" would have shrunk the board on desktop too had it been switched on as-is
- Presentation is plain even by classic-puzzle standards: solid-colour circles, a black wall, and a magenta background, with no texture, animation flourish, or sound at all
- It's a direct, unmodified reconstruction of an existing design with nothing new added to the formula — faithful rather than original
- No difficulty settings or level select — the only way to see later, harder boards is to clear the earlier ones first