A wall hands every marble back
The two-player levels lost their walls, gained open rail, and doubled in size. The arithmetic of the kit picked most of the routes.
The arena pictured in the two-player entry is the one from that commit, and it lasted six days. On 4 September its fence came out, its cover came out, its floor doubled, and a second way to play it turned up that needs no Apple TV at all.
The fence is the change that matters.
A bank is a filter
A vertical wall returns every marble that touches it, at any speed. So on a knockout map the only way out was a gate, and the wall itself was neutral.
Both two-player boundaries are now 45-degree banks, and a bank asks a question: it returns the slow marbles and throws the fast ones over. That is a rule change wearing a geometry change’s clothes. The arena is now a knockout mode that is easier to get knocked out of, which the commit message records as “the interesting direction but was a choice.”
The new rim had one arithmetic consequence. It tiles in two-cell pieces, so a five-cell gate leaves a remainder no piece fits. The gates went to six, and to twelve when the arena doubled.
The heights chose the route
Twin Explore gets an open trestle from the mountain summit across the basin to the north-east hill: twelve cells of exposed rail, three units over open ground. Nobody picked that hill for the view.
The incline piece rises exactly two units, so connected track heights must differ by a multiple of two. The hill’s upper shelf is one unit off, which makes it unreachable from the summit by this family of pieces at all, however the run is drawn. The lower terrace works. That is the whole design discussion.
Battle Royale gets a flyover instead: an on-ramp off the slab, three sides of the arena on rails two units up, and an off-ramp back down. It is deliberately not a closed ring, because a loop nobody can get onto is scenery.
Two rules came out of laying these:
- Cut what the rails pass through, never what they pass over. Only the trestle’s mouth is cut out of the terrain. Cutting anywhere else punches holes in ground the players stand on.
- Assert against the baked mesh, not the algebra. Reading the transforms had
the turn as a one-way piece of fixed handedness.
TrackCompositionTestsderives its tables from the collision mesh instead, and the turn is a bidirectional bend usable in all four orientations.
A stack of cubes is a full stop
The slab went from 36 cells square to 72, and the loose cover cubes became nine stepped mounds: a four-tier great mound in the middle topping out at y=5, four two-tier mounds toward the corners, and four low mesas on the axes.

f609a5c, drawn by marble-ci-renderer.
Orange is ramp, so every mound announces that it can be climbed. The hairline
around three sides is the flyover: at this scale, two rails are barely two
pixels.A cube breaks a charge, and the only thing left to do with it is hide behind it. A mound of the same height climbs at 45 degrees from all four sides and both diagonals, so the same blocks are now cover, a vantage point, a launch ramp and somewhere to be shoved off.
It builds from cornerOut1x1 at the corners, the only kit piece that climbs on
both axes at once, and slope2x1 along the runs between, which is why a
mound’s width and length must be even. One test walks in along eight
headings on every mound and fails on any rise steeper than one unit per cell: the
check that a wall has not crept back in.
The TV that was never required
Battle Royale’s netcode was never tvOS-specific. BattleRoyaleHost knows
nothing about what box it runs on. It was sealed behind #if os(tvOS) anyway, and
the phone half could only be reached by scanning an Apple TV’s QR code, so
nobody without a paired TV could test the feature.
So the gate came off, and the host controller is now one implementation shared by both platforms. Three things differ and are gated individually: the local input source, how the room is advertised (a QR code across a room, or a code printed for the person beside you), and how you leave. A joining phone picks a room from a browsed list.
A phone-hosted room seats exactly two, because the title entry says 2 PLAYER, and a room that quietly seats a passing third phone is a menu telling the player something untrue.
That path is verified across two simulators: advertise, browse, tap to join, seat assignment, snapshot relay, both marbles drawn on both screens. Two simulators on one Mac have no idea what latency is.
Unmeasured
The follow camera was deliberately left alone, so a player now sees a much smaller share of the arena than before. Whether that reads as room to explore or as being lost takes a device playtest, and so does whether the flyover is worth riding when a rival can shove you off it. Neither has happened.