Repository navigation
Description
Score: 4.25/10 (target 8, on the owner's scale: agent judges halve their number, per the 2026-11-05 reset)
Carries the climb on from #3785 (round 15, PR #3789: the speed check from a trusted anchor, a second tab keeps the flag, vouch retells contracts), #3764 (round 14, PRs #3776, #3778, #3782: a pose speed check, stones and arenas by distance, trailheads and trail dens over the clock), #3722 (round 13, PR #3761: dens checked against the world seed), #3707 (round 12, PR #3716: the room under workerd), #3703 (round 11) and rounds 3 to 10 (#3699, #3698, #3696, #3695, #3690, #3684, #3679, #3674), all in PR #3676, and rounds 1 and 2 (#3670, #3663, PR #3669, merged); their score comments have the judges' tables. Open: MANUAL RUN #3697, #3790 (vouch retells dens; trust returns when a trusted friend walks up), #3791 (a jump believed only at a landing spot you could reach), #3706 (the lobby end to end), #3704 (full-party frame time).
The owner's brief (2026-11-05): make Mythic Masters' open world multiplayer, and make it awesome, performant and cheap. Today the whole game runs in the page on an assets-only Worker (apps/mythic-masters/rustybuns.config.ts); nothing online but eqosys sign-in (src/account.ts). The 77 × 51 km continent, its regions, trails, dens and hunts are in src/world/ and docs/WORLD-EXPANSION.md. The sibling climb for frame time is #3664.
What awesome means here
You see your friends walking the same land with their bound beasts beside them, you meet them at a den, a mythic you both chase is the same mythic, the Book heckles the party as one, and joining takes one code. Not an MMO: a party of up to six on one region at a time, like a hunting trip.
Goalpost: 8/10 from the owner
- Walk together. Through an eqosys party code (
partyin@rustybuns/util/eqosys, Qollab is the connecting layer, eqosys the account) friends land in the same region and see each other move, with their lead beast beside them, at a smooth 60 fps: interpolation and dead reckoning on the page, a low send rate (5 Hz or less, deltas, quantised positions), never a per-frame message. - One world. Dens, wild food, flocks and the region's mythic are the same for everyone there: seeded by the room, not by each page, so a hunt one player starts the others can join; a fight is still the page's own sim, its result reported and checked for plausibility.
- Cheap by design, priced before it ships. One Durable Object per occupied region (never per player) using
Socketsfrom@rustybuns/util/roomwith WebSocket hibernation, token-checked joins (@rustybuns/util/token),TokenBucket,RoomMintGateandoriginAllowedfrom@rustybuns/util/limits, no storage writes per tick (the room keeps state in memory, a save is the player's own page). A cost model in the repo (apps/mythic-masters/scripts/cost.ts) that runs the stress script, counts messages, wake time and storage ops, and prints a price per player-hour from Cloudflare's published Durable Object rates. Target: under $0.005 per player-hour at a full party, printed in every round's comment. No deploy by a worker: the owner runsbun run deployafter a plan (DEPLOYS=1 AGENTS=1 CHECKS=1). - Honest offline. Alone, nothing changes: no socket, no cost, the save stays local. A dropped connection degrades to solo play and rejoins without losing the trip.
- Tested the way people play. One journey test through the running app (
local()fromtest/app-kit.ts) with two pages in one room: both see each other, one leaves and rejoins, a hunt stays shared. A stress script (scripts/stress.ts) that runs six bots walking a region for a minute and prints messages per second and the price.
The loop
Each round is one PR against main that says "Part of #N". Shots and numbers: bun run probe mythic-masters with the mythicMasters handle, two headless pages in one room, frame time and bytes per second per player in the comment. A fresh judge scores the five points, halves it, and the comment starts Score: x/10 (target 8) and ends Next: ...; then open "rounds N+ (from #N)", close this one with "Moved up to #new". At the target, a MANUAL RUN: for the owner's own play with a friend. No Vectorize, no third-party realtime service, no new paid binding without an issue for the owner first.
Activity
QuinnsCode commentedon Nov 6, 2026
Score: 4.25/10 (target 8)
Round 15: PR #3789 (open, CI green on its first commit). It closes the three holes in #3784:
vouchand the page tells its contracts again.A fresh judge gave 8.5/10, against 8.75 last round. So the score is 4.375 + (8.5 − 8.75) / 2 = 4.25. The judge's top gap was one this round made: a network stall followed by a burst of poses flagged an honest fast runner. It is fixed in the same PR (time banked during a stall carries through the burst, with a test row), after the judging, so the score doesn't count the fix.
?room=has never run end to end (#3706).vouchretells contracts and not dens, and a jump to any landing spot on the map is believed, even in a locked region.vouchis a few bytes, sent only when trust changes, and nothing new is stored.vouchruns only against a stand-inonCompany, never the real page, and the Chrome journey is still skipped on CI and skips the lobby.bun scripts/cost.ts 6 60), before and now. Target: under $0.005.test/together.test.ts):Leftovers, each its own issue:
vouchretells dens too, trust returns when a trusted friend walks up to you, and a test through the real page: Mythic Masters walk together: trust coming back retells dens, and returns when a trusted friend walks up to you #3790;Next: #3790,
vouchretells the den you are at, and trust returns when a trusted friend walks up to you, with the Chrome journey taking a contract while untrusted. Then #3791.Mythic Masters: the party lobby runs end to end, and the lobby and th…
QuinnsCode commentedon Nov 6, 2026
Score: 4/10 (target 8)
Round 16. Round 15's two Next items merged without a score of their own: #3797 (a jump is believed only at a landing spot in a region the save has opened, #3791) and #3801 (trust coming back retells the den, and a trusted friend walking up brings it back, #3790). The lobby end to end landed too, in #3806. This round scores main with all three, then builds the judge's second gap in PR #3860. The top gap, a full party's frame cost (#3704), is the frame-budget climb's (#3796), so it stays there.
A fresh judge gave 8.0/10, against 8.5 last round. So the score is 4.25 + (8.0 − 8.5) / 2 = 4.0. The judge looked harder at "one world" this time: the room relayed
seenandlifefrom anyone, anywhere. PR #3860 closes that half after the judging (a pick or flush is told only from beside it, by someone the room vouches for), so the score doesn't count it.Ghostinterpolation and coasting, and the lead beast are all there. A full party still misses 60 fps, and the test only asserts under 50 ms.plausible. But the room only relays page claims. Picks and flushes were believed from anyone (fixed in #3860), and nothing keeps the region's wilds or its mythic once their teller has left (#3859).startViteandservePartyrather thanlocal(), and checks the hunt as a contract, not a fight joined together.bun scripts/cost.ts 6 60), before and now. Target: under $0.005.test/together.test.ts, on the builder): before, 16.7 ms with one friend drawn and 22.2 ms with a full party. Now, 16.5 ms and 21.3 ms. The page's per-frame code is unchanged; the full party is down from round 15's 29.9 ms thanks to the frame-budget climb (Mythic Masters: party-of-six walk, flame-graph runs, friends' IK every other frame (#3709 round 5) #3794).Leftovers, each its own issue:
Next: #3859, the room keeps what the region's wilds are doing (picks, flushes, busy dens) on a socket attachment and sends it with
all, so a late joiner hears it after the teller has left.QuinnsCode commentedon Nov 6, 2026
Moved up to #3862
Mythic Masters walk together, round 16: a picked bush or a flushed fl…
QuinnsCode commentedon Nov 6, 2026
Issue-runner check (2026-11-06). Rounds since the last score: #3790 (#3801, trust coming back retells the den, and a trusted friend walking up brings it back) and #3791 (#3797, a jump is believed only at a landing spot in an opened region) both merged.
Found while measuring: the two-page Chrome journey (
test/together.test.ts, skipped on CI) failed on main at #3801's step. B met a wild one on its walk to A, lost, and the Book's talk held its poses back, so the room never vouched for A. The trust code was fine. PR #3861 has both pages walk in peace, and the journey passes again (65 s).Price, unchanged:
bun scripts/cost.ts 6 60is $0.00125 per player-hour; 89.2 B/s up and 1168.4 B/s down per player with six together.No new judge score this pass (the last is 4.25/10). Next: a fresh judge on the five points with #3801, #3797 and #3861 in. The judge's "Tested the way people play" gap still holds: the Chrome journey never runs on CI.
Mythic Masters walk together: the trust journey walks in peace, so a …