Repository navigation
Description
Carries the climb on from #3511 (round 3), which carried it from #3493 (round 2) and #3465 (round 1). Part of #2945 (orbit-and-commit combat, weighty attacks). The attacks redesign in #3268 (shapes, tempos, field kits, then telegraphs and effects) is the main thing this climb judges, so rounds follow its steps rather than racing them.
The goalpost
Target 7/10 for how a fight feels to watch and to play: weighty, committed melee where the fighters circle but never stand and trade, hits you can see land (squat, stagger, camera shove, shockwave), and wind-ups you can read and punish.
Agent judges run about 2 points high on visual climbs (#2943: judges 5, owner 3), so the owner's score at the target decides it, through one MANUAL RUN.
Rounds so far
| Round | PR | Change | Judge BEFORE to NOW |
|---|---|---|---|
| 1 | #3492 | heavies circle a ring 0.8 m outside their reach, step in only to swing, back out after; balance.json re-fit |
4 to 5 (main alone: 4.5) |
| 2 | #3510 | heavy swings lock (stop tracking) halfway through the wind-up; a reach wedge on the ground whose rim flares at the lock; the coil holds from 40% of the wind-up; bots sometimes dash out of a locked sweep; balance.json re-fit (44-56%) |
4.5 to 5.5 |
| 3 | #3687 | bots dash out of a locked sweep most ticks (sim: 21% to 39% of locked swings dodged) and punish the whiff's recovery (2% to 15%); sim-rs and sim.wasm match; balance.json re-fit (44-57%); a dodge burst in --combat |
4 to 4.5 |
Scores are on the owner's halved scale since 2026-11-05: each round adds half the judge's gain. Now at 3/10.
One round
One worker, from main:
- BEFORE:
cd apps/mythic-masters && bun scripts/burst-shots.ts docs/shots-<date>-combat before --combat(one fight per archetype, a wind-up burst, a dodge burst cued on a locked swing, and a hit burst, side camera). - The change the newest
Next:line names. - NOW: the same command with
now. Then a fresh judge agent scores BEFORE vs NOW out of 10 without the worker's reasoning. Keep the change only if the score went up. - Balance must hold:
bun scripts/tune.ts --each 6 --rustbefore and after, every creature within 40-60% (mainsits at 44-56%). If the change shifts it,bun scripts/tune.ts --fit 6 3 --rustre-fitssrc/balance.json. Then checkbun test test/journey.test.ts, because its Jersey Devil wall is sensitive to that creature's edge.
Carried over (each has its own issue)
- Owner feel on a controller: MANUAL RUN MANUAL RUN: feel of weighty hits on a controller (Mythic Masters, PR #2946) #2947 (weighty hits) and MANUAL RUN: Mythic Masters orbit feel check on a controller (about 5 min) #2964 (orbit). Ask for them again once this climb reaches its target, not before.
- Animation rounds: Mythic Masters: animation hill climb, rounds 5+ (a real meet, billowing membranes, lag) #3219. Graphics: Mythic Masters: animation and graphics hill climb to 9/10, rounds 13+ (from #3441) #3455. Both are their own climbs; this one is the fight's feel only.
Ending a round
Comment here, first line Score: x/10 (target 7), then the shots, then Next: <the judge's top gap>. The PR says "Part of #", never a closing word. Then hop forward (the baton text is in scripts/climbs.ts).
Learned in round 3
- The fight plays on the wasm sim (Mythic Masters: the page plays its fights on the wasm sim (sim-rs) #3668). A bot or sim change goes in
src/bot.ts/src/sim.tsandsim-rs/src/, statement for statement with everyrnd()in the same place. Thenbun scripts/sim-rust.tsrebuildssrc/sim.wasmand checks 24 fights hash for hash. Run it again after abalance.jsonre-fit, since the data is written from the TS. - The shot counts and the sim's counts can disagree. Measure what changed in the sim (a scratch loop over
newMatch/stepwith both bots) before blaming the change, and fix the cue so the shots catch it. - A burst after the fight ends shoots the result page (now-skirmisher in round 3).
Learned in round 2
- In the sim a walking sidestep can't leave a heavy body's sweep inside the locked beat (lock 0.35-0.5 and sweep cos 0.5-0.8 all tried); a dash gets out at any frame. Making a walk-out possible would mean a faster sideways step while a swing is locked on you, or a longer locked beat.
mythicMasters.state().fighters[n].swingistracking,lockedor null: cue a shot on a locked swing with it.- The BEFORE shots must come from
mainwith no edits in the tree:burst-shots.tsserves the working tree through Vite, so a mid-run edit leaks into BEFORE.
Activity
QuinnsCode commentedon Nov 5, 2026
Score: 3/10 (target 7)
Round 3, PR #3687. A fresh judge scored BEFORE (
main) 4/10 and NOW 4.5/10, so on the halved scale the climb goes from 2.75 to 3. Its words: "Wind-ups read better: lunge plus motion trails plus wedge ... hits land clearly with a shockwave ring and launch."The change: a bot inside a locked heavy swing's sweep dashes out far more often (each tick, skirmisher 0.3, flyer 0.25, bruiser 0.2, tank 0.05). After a dodge, once the whiff is recovering, it comes straight back in and swings: a heavy if that lands before the swinger recovers, else a light. The Rust copy (
sim-rs) matches it andsim.wasmis rebuilt: 24 fights, every hash the same assim.ts.balance.jsonwas re-fit and every creature is at 44-57%.Measured over 160 fights a side on the four shot pairings, for every heavy swing that locks with the other fighter in its sweep:
Shots:
apps/mythic-masters/docs/shots-2026-11-05-combat-r3/(before-*,now-*) on the PR branch.burst-shots.ts --combatnow adds a six-framedodgeburst, cued on a locked swing near the other fighter.The judge's next gaps, in order:
Next: make the dodge show. Cue the
dodgeburst only on a locked swing whose target is free (not stunned, not attacking), and cut a burst short if the fight ends. Then raise how often a free defender gets out: most of the 61% that still land are on fighters busy with their own swing, so they need a reason not to swing into a locked wedge. Then footwork between exchanges.QuinnsCode commentedon Nov 6, 2026
Phase done: #2945 (the orbit-and-commit umbrella) triaged. Its four areas are in #2959 and its feel goal is this climb's. Its owner checks stay as #2964 and #2947.
QuinnsCode commentedon Nov 6, 2026
Phase done: #2953 (before/after shots and a feel check for the weighty attacks of #2950, which landed through #2959). This climb's per-round fight shots and its closing MANUAL RUN cover it.
QuinnsCode commentedon Nov 6, 2026
Score: 3/10 (target 7)
Round 4, step 1, PR #3856 (tooling only, so the score holds). The
dodgeburst now waits for a locked heavy swing within reach of a free fighter, and every burst stops at the fight's end, so no more result-page shots. Bruiser and flyer dodge bursts were cued; in the bruiser's, the Sasquatch is outside the Rougarou's locked wedge and then back in to punish (docs/shots-2026-11-06-combat/).Next: raise how often a free defender gets out of a locked wedge, and give a fighter busy with its own swing a reason not to swing into one (
bot.tsandsim-rs, then abalance.jsonre-fit). Then footwork between exchanges.Mythic Masters: the dodge burst waits for a locked swing on a free fi…
QuinnsCode commentedon Nov 9, 2026
Score: 3.25/10 (target 7)
Round 4, step 2, PR #4044. A fresh judge scored BEFORE (
main) 4/10 and NOW 4.5/10, so on the halved scale the climb goes from 3 to 3.25. In the judge's words: "NOW fighters fight at closer range and stay engaged", while BEFORE's hit bursts end "two bodies apart, doing nothing" (before-bruiser-hit-b0..b3, before-skirmisher-dodge-b0..b5). In now-tank-dodge-b0..b2, the Yeti hits the Hodag inside the locked wind-up and steps away.The change: most of the locked swings that landed on a busy defender were same-tick trades. Two heavies stepping in on a commit cross the striking distance together, and both swing. Now a heavy that sees the other closing in and facing it holds its swing half the time and backs out past the other's heavy sweep, with its punish armed for the whiff's recovery.
sim-rsmatches,sim.wasmis rebuilt (24 fights hash for hash), andbalance.jsonis re-fit (44-57%;mainhad five tanks at 36-39%).Over 80 fights a side on the four shot pairings, for every heavy swing that locks with the other fighter in its sweep:
Shots:
apps/mythic-masters/docs/shots-2026-11-08-combat-r4/(before-*,now-*) on the PR branch.The judge's next gaps, in order:
Next: make the dodge show. The sim dashes out 49% of the time, but no burst catches one: cue the
dodgeburst on a locked swing whose defender dashes within the beat (or shoot two and keep the one with a dash), and check that the punish after it reads. Then hit weight on the struck body (squat, stagger, a shorter flash).QuinnsCode commentedon Nov 9, 2026
Moved up to #4046
Mythic Masters: a heavy that sees the other step in holds its swing a…