You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Mythic Masters: friends walk the open world together, cheap by design, hill climb to 8/10, rounds 20+ (from #4063) #4081
Score: 4.5/10 (target 8, on the owner's scale: agent judges halve their number, per the 2026-11-05 reset)
Carries the climb on from #4063 (round 19, PR #4078: a lair's creature is one creature, so every friend fighting it sees one health bar, and a late joiner finds it as hurt as it is) and before it #3862 (rounds 17-18), #3792 and the rounds listed there. Their score comments have the judges' tables. The owner's brief and the five points are in #3862's body.
Round 19's judge: 8.65 -> 9.0 raw (one world 1.75 -> 1.95, tested 1.75 -> 1.85), halved 4.3 + 0.175.
Next steps, in order:
One fight, not one health bar. Friends at one lair still each play their own fight: they share the creature's health but don't see each other's moves. That takes the 2v1 sim in Mythic Masters: co-op PvE, two friends against a wild one (needs a 2v1 sim) #3929 (teams in sim.ts and sim-rs), then lockstep for N seats (src/net/duel.ts) or one page hosting.
A share tied to the fight. The room believes a lair share no faster than a whole creature in 3 s after walking in (party.ts believeHurt), the same bound as a fight report. A lying page can still claim the whole creature 3 s in. Tighter would be a cap from the line-up's own damage per second, or the fight hashes the duel uses.
Open: MANUAL RUN #3697 (the owner's walk with a friend), #3858 (journey timing), #3706 (the Region under workerd locally), #3704 (full-party frame time), #3929 (2v1 sim).
Round 20, PR #4164. The room now keeps the contracts the party is on (at most 3, each at the furthest sign anyone read) next to the wilds it already keeps (#3859). They go out with all, so a friend who joins after the teller has left can still follow a contract to its lair. Beating the lair's creature drops the contract from the room.
Why this step and not the first two: step 1 (one shared fight) needs the 2v1 sim in #3929. That is the TypeScript sim and its Rust twin, which #3929 sizes at a day or two, too big for one round. Step 2 (a share tied to the fight) needs a cap from the line-up's own damage per second. The room never hears the line-up's levels, so any cap it could set would still be loose.
A fresh judge scored main 9.0 and this change 9.0 raw. The change counts for about +0.05 on "one world", which doesn't make a quarter point. So the score stays at 4.5 + 0 / 2 = 4.5. This is the first round with no gain. The judge also flagged a stale contract after its lair is won; that fix came after the judging, so the score doesn't count it.
Point
Before
Now
Why
Walk together
1.5
1.5
A full party still misses 60 fps (about 20.6 ms a frame), and CI's ?draw=0 skips the fps check.
One world
2.0
2.0
Up from 1.95 before rounding: a contract now outlasts whoever took it. Still missing: one shared fight, and the region's mythic isn't kept yet.
Cheap by design
1.75
1.75
$0.00125 per player-hour; a full seat is 2,010 of its 2,048 attachment bytes. Never priced live (#3697).
Honest offline
2.0
2.0
Unchanged.
Tested the way people play
1.75
1.75
The two-socket test covers the late joiner, the furthest sign, and a won lair closing its contract. The two-page journey doesn't.
Price: $0.00125 per player-hour with six together (bun scripts/cost.ts 6 60), before and now. Target: under $0.005.
Bytes per second per player (six together): 90 up, 1,181 down; no change from main.
Frame time: the page's per-frame code is unchanged. This round wasn't measured on the builder, which ran out of battery.
Open in the change: the room checks that a contract's teller is by the board, but not which sign they read, so a page there can claim sign 3. That gap was already there for the live relay; now the claim is kept. It's in the next issue's steps.
Next: one shared fight (the 2v1 sim, #3929), then a full party's frame cost (#3704 / #3796), which the judge ranks as the lowest point.
Activity
QuinnsCode commentedon Nov 10, 2026
Score: 4.5/10 (target 8)
Round 20, PR #4164. The room now keeps the contracts the party is on (at most 3, each at the furthest sign anyone read) next to the wilds it already keeps (#3859). They go out with
all, so a friend who joins after the teller has left can still follow a contract to its lair. Beating the lair's creature drops the contract from the room.Why this step and not the first two: step 1 (one shared fight) needs the 2v1 sim in #3929. That is the TypeScript sim and its Rust twin, which #3929 sizes at a day or two, too big for one round. Step 2 (a share tied to the fight) needs a cap from the line-up's own damage per second. The room never hears the line-up's levels, so any cap it could set would still be loose.
A fresh judge scored main 9.0 and this change 9.0 raw. The change counts for about +0.05 on "one world", which doesn't make a quarter point. So the score stays at 4.5 + 0 / 2 = 4.5. This is the first round with no gain. The judge also flagged a stale contract after its lair is won; that fix came after the judging, so the score doesn't count it.
?draw=0skips the fps check.bun scripts/cost.ts 6 60), before and now. Target: under $0.005.Next: one shared fight (the 2v1 sim, #3929), then a full party's frame cost (#3704 / #3796), which the judge ranks as the lowest point.
QuinnsCode commentedon Nov 10, 2026
Moved up to #4165
Mythic Masters together round 20: the room keeps the party's contract…