Game review
Tiny Yurts
7 / 10
- Developer
- burntcustard
- Publisher
- burntcustard (self-published — js13kGames 2023 competition entry)
- Released
- 1 January 2023
- Platforms
- Web browser (desktop and mobile)
- Genre
- Management / puzzle
- Monetisation
- Free, open source, no ads and no in-game purchases
- Players
- Single-player only
The short version
Tiny Yurts takes Mini Motorways' core tension — connect growing demand to limited supply before one node fails and ends the run — and reskins it as yurts, farms and footpaths, in thirteen kilobytes of SVG-and-CSS with no canvas at all. It doesn't hide where the idea came from, and it doesn't need to: the loop of dragging one-cell paths between yurts and farms, rerouting settlers as demand grows, and watching the "issue" meter climb on a farm you've neglected is genuinely tense in short sessions. What earns it a place on this shelf specifically is that it gets the touch half of the job right in a way most of the candidates here do not: dragging is built on Pointer Events rather than mouse-only handlers, the layout fills a phone screen edge to edge with no letterboxing, and the one action a mouse gets for free — right-click to delete a path — has a real, separately-coded tap toggle rather than being quietly unavailable on touch.
Biggest strengths
- Dragging is implemented with unified `pointerdown`/`pointermove`/`pointerup` handlers in `pointer.js` rather than separate mouse and touch code, which is exactly the approach that makes a game work identically on both inputs instead of "mostly" working on one of them
- The right-click-to-delete action every mouse-only clone of this genre leans on has a real alternative: `grid-toggle.js` wires a `Delete: RMB` button to a genuine `click` handler that flips a `gridRedState.locked` flag, and confirmed directly — tapping it with a real emulated touchscreen tap changed the label to `Delete: On` and routed subsequent primary-pointer drags into delete mode, exactly as the desktop right-click does
- The page ships a proper `<meta name="viewport">` tag and a layout that fills the full device screen with no dead space — confirmed on a 390x844 simulated phone, where the menu, the HUD icons and the game board all rendered edge to edge rather than letterboxed into a strip
Biggest weaknesses
- The idea is not original and the author doesn't pretend otherwise — this is Mini Motorways' demand-versus-capacity loop with paths instead of roads and yurts instead of houses, and nothing in the systems asks a question that game didn't already ask
- There's one mode: an endless, procedurally-laid-out map scored by settlers and animals, with no separate levels, no campaign and no meta-progression beyond a local high score — sessions are short by design, but there isn't much reason to come back once the shape of a run has been seen a couple of times
- The author's own README admits mobile play is "a little fiddly" and recommends fullscreen for it; the game doesn't prompt for fullscreen itself; the Fullscreen button has to be found and tapped first
Who it's for: Fans of Mini Motorways-style resource routing who want a five-minute version that runs in a browser tab and genuinely works on a phone
Our recommendation: Worth playing, especially on a phone in landscape or fullscreen — just don't expect the idea underneath the presentation to be a new one
7 / 10
Tiny Yurts is upfront about its influence in its own README: it's a Mini Motorways-style routing puzzle, built for js13kGames 2023, with the whole thing — a full simulation, procedural map generation, three animal types and an SVG rendering pipeline with no canvas anywhere — packed under 13,312 bytes. The pitch is not new. What makes it worth a slot on a shelf built specifically around whether a browser game survives contact with a thumb is that it was built touch-first where it counts, in a way most of the other js13k candidates that came through this queue were not.
Dragging paths, and losing farms
The loop is simple to state and genuinely tense to play: yurts house settlers, farms need settlers to work them, and every farm has an "issue" meter that climbs as its animals' demand goes unmet. Drag a path between a yurt and a farm — one grid cell at a time, extending as you keep dragging — and settlers start walking the route automatically. Ignore a farm too long and its issue meter fills, the farm is lost in a small, well-animated zoom-and-tilt sequence, and the run ends. Score is settlers (worth two points each) plus animals, tracked against a local high score. Reading farm.js and the README's own "tips and tricks" section together confirms this has real mechanical depth for something this small: a farm's demand scales with animal type, animal count and a difficulty curve that ramps over in-game months (shown on a small clock icon), and diagonal paths cover more distance per tile at the cost of longer travel time for the settlers using them. Three animal types — goats, oxen and fish, the last needing a path built out to stepping stones since paths can't cross open water — give the routing puzzle some actual variety instead of being one mechanic reskinned three times.
The part that matters for this shelf: it's actually built for touch
Where most candidates in this queue either ignore touch entirely or handle it as an afterthought, Tiny Yurts' pointer.js drives its dragging through the unified Pointer Events API — pointerdown, pointermove, pointerup — rather than separate mouse and touch handlers. That matters because Pointer Events are specified to behave identically regardless of whether a mouse or a finger produced them, which is the correct way to build this and not something most jam entries bother doing. The layout backs it up: the page carries a proper viewport meta tag and fills a 390x844 simulated phone screen edge to edge, with the menu, HUD icons and game board all rendered at full size rather than letterboxed into a strip — a real problem seen elsewhere in this review queue.
The detail that mattered most to check directly was the delete action. Every Mini Motorways-style game needs a way to remove a bad path, and the desktop-native way to do that is right-click — an input touchscreens don't have. Reading grid-toggle.js shows a Delete: RMB button wired to a genuine click handler that flips a gridRedState.locked flag; pointer.js checks that flag on every pointerdown and routes an ordinary primary-pointer drag into delete mode when it's set. Tested directly with a real emulated touchscreen tap rather than assumed from the code: tapping that button changed its label to Delete: On, and subsequent drags removed paths instead of placing them. That's a genuine, working touch equivalent for the one action this genre usually gets away with locking to a mouse.
One caveat is worth naming honestly rather than smoothing over. A sustained, multi-step drag driven through Chromium's raw touch-injection pipeline (CDP Input.dispatchTouchEvent, sending a touchStart, several touchMove steps and a touchEnd) reliably produced a pointercancel after only one or two move events in this shelf's own test harness, regardless of timing or touch identifiers. That sounds damning until it's compared against three other results: the identical drag driven through mouse-emulated pointer events completed perfectly, with 24 clean pointermove events and a proper release; a real discrete touch tap worked flawlessly on both the Start button and the Delete toggle; and touch-action: none is correctly set on the interactive layer, ruling out the browser's own scroll-gesture cancellation as the cause. Taken together, that points at a Chromium headless synthetic multi-touch limitation rather than a defect in the game — but a fully clean, end-to-end sustained touch drag could not be captured directly in this testing environment, so it's recorded here rather than asserted away.
Not much reason to stay
There's exactly one mode: an endless, procedurally generated map, scored and chased against a local best. That's an honest, appropriately-scoped choice for a 13kb jam game, and the difficulty curve gives early sessions real shape. But there's no campaign, no unlockable content and no second system to learn once the first run's shape has been seen — a handful of sessions is probably the natural lifespan for most players, which is fine for a five-minute browser diversion and a real limit on how often anyone will come back.
GitHub currently shows 59 stars and 16 forks for the source repository, solid numbers for a solo js13k entry, and the competition's own listing places it in the middle of the 2023 Mobile category's rankings — consistent with a game that clearly tried to get touch right rather than one that stumbled into working by accident.
Verdict
Tiny Yurts doesn't bring a new idea to the table, and it shouldn't be recommended on the strength of its concept. What it does well enough to earn its place here is the harder, less visible work: building its core interaction on the API that actually supports both mouse and touch, giving a mouse-only convention a real tap-based equivalent instead of quietly dropping it, and filling a phone screen properly instead of leaving most of it black. That's a real demonstration of what this shelf is asking every candidate to do, even if the game wrapped around it is a modest, openly derivative five-minute diversion rather than something with lasting pull.
Pros and cons
Pros
- Dragging is implemented with unified `pointerdown`/`pointermove`/`pointerup` handlers in `pointer.js` rather than separate mouse and touch code, which is exactly the approach that makes a game work identically on both inputs instead of "mostly" working on one of them
- The right-click-to-delete action every mouse-only clone of this genre leans on has a real alternative: `grid-toggle.js` wires a `Delete: RMB` button to a genuine `click` handler that flips a `gridRedState.locked` flag, and confirmed directly — tapping it with a real emulated touchscreen tap changed the label to `Delete: On` and routed subsequent primary-pointer drags into delete mode, exactly as the desktop right-click does
- The page ships a proper `<meta name="viewport">` tag and a layout that fills the full device screen with no dead space — confirmed on a 390x844 simulated phone, where the menu, the HUD icons and the game board all rendered edge to edge rather than letterboxed into a strip
- `touch-action: none` is set on the interactive layer specifically to stop the browser's own scroll/zoom gestures from stealing a drag mid-path, a detail that's easy to skip and expensive to skip badly
- Three animal types (goats, oxen, fish) with different farm shapes and different "needyness" math (documented candidly in the README's own tips section) give routing decisions some real texture rather than being one puzzle repeated with new art
Cons
- The idea is not original and the author doesn't pretend otherwise — this is Mini Motorways' demand-versus-capacity loop with paths instead of roads and yurts instead of houses, and nothing in the systems asks a question that game didn't already ask
- There's one mode: an endless, procedurally-laid-out map scored by settlers and animals, with no separate levels, no campaign and no meta-progression beyond a local high score — sessions are short by design, but there isn't much reason to come back once the shape of a run has been seen a couple of times
- The author's own README admits mobile play is "a little fiddly" and recommends fullscreen for it; the game doesn't prompt for fullscreen itself; the Fullscreen button has to be found and tapped first
- A sustained, multi-step touch drag driven through Chromium's raw CDP touch-injection pipeline reliably produced a `pointercancel` after one or two `pointermove` events in this shelf's own headless test harness. The same drag driven through mouse-emulated pointer events completed cleanly (24 moves, one clean release, zero cancels), and a real discrete touch tap on the Delete toggle worked perfectly, which together point to a Chromium headless synthetic-touch limitation rather than a fault in the game — but a fully clean, end-to-end sustained touch drag could not be captured directly in testing, and that residual gap is worth naming rather than glossing over
- Grid cells are small relative to a fingertip on a phone-sized viewport, and a mis-dropped path costs a path tile from a limited supply, so precision matters more on touch than the "little fiddly" README note fully prepares you for