diff --git a/session-server/oskiewar-live-manager.mjs b/session-server/oskiewar-live-manager.mjs index 5e63c09437..1738d27ff0 100644 --- a/session-server/oskiewar-live-manager.mjs +++ b/session-server/oskiewar-live-manager.mjs @@ -71,6 +71,37 @@ function ball(value) { finite(value.y) && finite(value.z) && finite(value.radius, 10000); } +// Projectiles, as the flat number rows the game packs (see spectatorState). +// A watcher positions render objects straight off these, so they are bounded +// here the same way a fighter is: an exact row length, finite coordinates, an +// owner that is one of the two seats, and a flag word with no spare bits. The +// counts are the game's own caps — 24 rounds in the air, 12 lobs. +// +// shot: x y z previousX previousY vx vy owner flags(spit|heavy|rubber) +// lob: x y z vx vy owner flags(rocket|exploding) blastRadius fuseMs +const projectileRows = (value, count, length, check) => { + if (value === undefined) return true; + return Array.isArray(value) && value.length <= count && + value.every((row) => Array.isArray(row) && row.length === length && + row.every((entry) => finite(entry, 10000000)) && check(row)); +}; + +const shots = (value) => projectileRows(value, 24, 9, (row) => + integer(row[7], 0, 1) && integer(row[8], 0, 7)); + +const lobs = (value) => projectileRows(value, 12, 9, (row) => + integer(row[5], 0, 1) && integer(row[6], 0, 3) && + finite(row[7], 100000) && row[7] >= 0 && finite(row[8], 600000) && row[8] >= 0); + +// The host's impact track: +// mark: id x y z durationMs lifeMs flags(death|explosion) +// A watcher spawns render objects off these and keys duplicate suppression on +// the id, so the id has to be a real ascending integer, not any finite number. +const marks = (value) => projectileRows(value, 12, 7, (row) => + integer(row[0], 0, 2147483647) && + integer(row[4], 0, 60000) && integer(row[5], 0, 60000) && + integer(row[6], 0, 3)); + // How fast the publishing client is actually drawing. @jeffrey plays in a // browser on an Xbox, which has no devtools, so this is the only way to read a // console's frame rate from anywhere else. Every field is optional because a @@ -117,8 +148,13 @@ export function validateOskiewarLiveState(value) { !integer(value.wind.mph, 0, 200))) return "Invalid wind"; if (!value.round || typeof value.round !== "object" || !integer(value.round.remainingMs, 0, 3600000) || + (value.round.elapsedMs !== undefined && + !integer(value.round.elapsedMs, 0, 3600000)) || typeof value.round.result !== "string" || value.round.result.length > 80) return "Invalid round"; + if (!shots(value.shots)) return "Invalid shots"; + if (!lobs(value.lobs)) return "Invalid lobs"; + if (!marks(value.impacts)) return "Invalid impacts"; if (!perf(value.perf)) return "Invalid performance"; if (value.replayUrl !== undefined && !/^\/api\/oskiewar-replays\?id=ow-[a-z0-9-]+$/.test(value.replayUrl)) @@ -132,6 +168,15 @@ function send(ws, type, content) { catch { return false; } } +// A frame already serialized. The state fan-out is the one place in this file +// where the same bytes go to up to sixty-nine sockets, and stringifying the +// whole 2 KB payload once per watcher was most of the cost of a full room. +function sendRaw(ws, frame) { + if (ws?.readyState !== 1) return false; + try { ws.send(frame); return true; } + catch { return false; } +} + export class OskiewarLiveManager { constructor({ now = () => Date.now(), @@ -181,7 +226,8 @@ export class OskiewarLiveManager { room = { matchId, publisher: null, publisherSurface: "unknown", challenger: null, viewers: new Set(), agents: new Set(), state: null, liveStarted: false, updatedAt: this.now(), publishedAt: 0, - nudgedAt: 0, flaggedAt: 0, inputAt: 0 }; + nudgedAt: 0, flaggedAt: 0, inputAt: 0, inputDown: null, + flushTimer: null, flushedSeq: -1 }; this.rooms.set(matchId, room); } if (role === "publisher") this.addPublisher(room, ws, surface); @@ -220,6 +266,11 @@ export class OskiewarLiveManager { room.state = null; room.publishedAt = 0; } + // A frame still waiting on the trailing flush belongs to the host that + // just left. It must not land on the room after the successor's first. + clearTimeout(room.flushTimer); + room.flushTimer = null; + room.flushedSeq = -1; room.publisher = ws; room.publisherSurface = surface; room.updatedAt = this.now(); @@ -354,7 +405,15 @@ export class OskiewarLiveManager { if (input.colors !== undefined && (!Array.isArray(input.colors) || input.colors.length > 4 || !input.colors.every(color))) return; const now = this.now(); - if (now - room.inputAt < MIN_INPUT_INTERVAL_MS) return; + // The 15 ms floor exists to pace a stick, which moves continuously. A + // button edge is a discrete event and must never be the thing it drops: + // the client marks a frame as sent the moment the socket takes it, so a + // press the relay swallowed here was invisible to both ends until the + // next change or the idle heartbeat. + const buttons = input.down.join(" "); + const held = buttons === room.inputDown; + if (held && now - room.inputAt < MIN_INPUT_INTERVAL_MS) return; + room.inputDown = buttons; room.inputAt = now; room.updatedAt = now; send(room.publisher, "oskiewar:input", { seq: input.seq, @@ -430,11 +489,43 @@ export class OskiewarLiveManager { const invalid = validateOskiewarLiveState(state); if (invalid) return send(ws, "oskiewar:error", { message: invalid }); const now = this.now(); - if (now - room.publishedAt < MIN_PUBLISH_INTERVAL_MS) return; if (room.state && state.seq <= room.state.seq) return; room.state = state; - room.publishedAt = now; room.updatedAt = now; + // The 25 ms floor coalesces a burst. It must not throw the burst away, + // and it used to: the gate ran BEFORE the store, so of two frames landing + // in one instant — which is exactly what a host's catch-up tick emits — + // the older one went out to the room and the newer one was gone for good. + // Measured against the real relay that was a quarter of all frames on a + // wired link and well over half on a busy one, and it fell hardest at the + // moments the fight was busiest. Now the newest frame is always the one + // kept, and a trailing flush hands it over a few milliseconds late. + // Coalescing is allowed to cost latency. That is what it is for. It is + // not allowed to cost information. + if (now - room.publishedAt < MIN_PUBLISH_INTERVAL_MS) { + this.armFlush(room); + return; + } + this.flush(room); + } + + // One trailing timer per room, never a queue of them: whatever is newest + // when it fires is what the room gets. Unreferenced, because a pending + // frame is not a reason to keep a process alive. + armFlush(room) { + if (room.flushTimer) return; + room.flushTimer = setTimeout(() => { + room.flushTimer = null; + if (this.rooms.get(room.matchId) === room) this.flush(room); + }, MIN_PUBLISH_INTERVAL_MS); + room.flushTimer.unref?.(); + } + + flush(room) { + const state = room.state; + if (!state || state.seq === room.flushedSeq) return; + room.flushedSeq = state.seq; + room.publishedAt = this.now(); if (!room.liveStarted) { room.liveStarted = true; this.analytics.capture("live_started", { @@ -443,8 +534,8 @@ export class OskiewarLiveManager { phase: state.phase, }); } - for (const watcher of this.watchers(room)) - send(watcher, "oskiewar:state", state); + const frame = JSON.stringify({ type: "oskiewar:state", content: state }); + for (const watcher of this.watchers(room)) sendRaw(watcher, frame); } // Agents read the frame numbers out of the same state payload a phone gets, @@ -452,9 +543,12 @@ export class OskiewarLiveManager { // a watcher too — their own fighter reaches them the same way it reaches // the grandstand. *watchers(room) { + // The challenger first. They are playing the fight; everyone after them + // is watching it, and a seat that waited behind sixty-four spectators for + // its own fighter was paying for their view. + if (room.challenger) yield room.challenger; yield* room.viewers; yield* room.agents; - if (room.challenger) yield room.challenger; } status(room) { @@ -495,8 +589,11 @@ export class OskiewarLiveManager { const oldest = this.now() - ROOM_TTL_MS; for (const [matchId, room] of this.rooms) { if (!room.publisher && !room.challenger && room.viewers.size === 0 && - room.agents.size === 0 && room.updatedAt < oldest) + room.agents.size === 0 && room.updatedAt < oldest) { + clearTimeout(room.flushTimer); + room.flushTimer = null; this.rooms.delete(matchId); + } } } } diff --git a/session-server/oskiewar-live-manager.test.mjs b/session-server/oskiewar-live-manager.test.mjs index 3e2b51aa16..f46f026ce2 100644 --- a/session-server/oskiewar-live-manager.test.mjs +++ b/session-server/oskiewar-live-manager.test.mjs @@ -85,21 +85,63 @@ test("a fixed match broadcast fans out and caches state for late spectators", () assert.equal(late.sent.at(-1)?.content.seq, 1); }); -test("duplicate and over-rate publisher frames are dropped", () => { +// Coalescing is allowed to cost latency. It is not allowed to cost +// information — and for a long time it cost both: the rate gate ran before +// the store, so a burst of two frames in one instant (a host catch-up tick, +// or a link stall batching them) delivered the OLDER one and lost the newer +// for good. Against the real relay that was 25% of frames on a wired link +// and 57% on a busy one. The newest frame now always survives the gate. +test("over-rate publisher frames coalesce to the newest, and duplicates drop", () => { let now = 100; const manager = new OskiewarLiveManager({ now: () => now }); const host = new FakeSocket(), viewer = new FakeSocket(); const url = "/oskiewar-live?match=bafegu-dorimi-kunapo"; manager.handleConnection(host, { url: `${url}&role=publisher` }); manager.handleConnection(viewer, { url }); + const publish = (seq) => host.emit("message", + Buffer.from(JSON.stringify({ type: "oskiewar:state", content: state(seq) }))); now += 30; - host.emit("message", Buffer.from(JSON.stringify({ type: "oskiewar:state", content: state(1) }))); + publish(1); const count = viewer.sent.length; + assert.equal(viewer.sent.at(-1).content.seq, 1); + // Three more inside the 25 ms floor: nothing goes out yet, and what is held + // is the last of them, not the first. + now += 1; + publish(2); now += 1; - host.emit("message", Buffer.from(JSON.stringify({ type: "oskiewar:state", content: state(2) }))); + publish(3); + now += 1; + publish(4); + assert.equal(viewer.sent.length, count, "the burst is coalesced, not fanned out"); + const room = manager.rooms.get("ow-bafegu-dorimi-kunapo"); + assert.equal(room.state.seq, 4, "and the newest is what is held"); + // A frame the room has already passed is a duplicate whenever it arrives. now += 30; - host.emit("message", Buffer.from(JSON.stringify({ type: "oskiewar:state", content: state(1) }))); - assert.equal(viewer.sent.length, count); + publish(2); + assert.equal(room.state.seq, 4); + // The trailing flush hands the room whatever is newest when it fires. + manager.flush(room); + assert.equal(viewer.sent.length, count + 1); + assert.equal(viewer.sent.at(-1).content.seq, 4); + // And it fires once for that frame, however often it is asked. + manager.flush(room); + assert.equal(viewer.sent.length, count + 1); +}); + +test("the seat hears its own fighter before the grandstand does", () => { + const manager = new OskiewarLiveManager({ now: () => 1000 }); + const host = new FakeSocket(), rival = new FakeSocket(), fan = new FakeSocket(); + const url = "/oskiewar-live?match=sezzi7"; + manager.handleConnection(host, { url: `${url}&role=publisher` }); + manager.handleConnection(fan, { url }); + manager.handleConnection(rival, { url: `${url}&role=challenger` }); + const order = []; + for (const [name, socket] of [["fan", fan], ["rival", rival]]) + socket.send = ((inner) => (data) => { order.push(name); inner.call(socket, data); })(socket.send); + const room = manager.rooms.get("ow-sezzi7"); + room.state = state(9); + manager.flush(room); + assert.deepEqual(order, ["rival", "fan"]); }); test("a second live publisher cannot take over a match", () => { @@ -222,11 +264,23 @@ test("bent or over-rate challenger input is dropped in silence", () => { assert.equal(host.sent.length, count); press({ seq: 5, down: ["A"], leftX: 0, leftY: 0 }); assert.equal(host.sent.length, count + 1); - press({ seq: 6, down: ["B"], leftX: 0, leftY: 0 }); + // The 15 ms floor paces a stick, which moves continuously — so the same + // buttons arriving again inside it are dropped, leftX and all. + press({ seq: 6, down: ["A"], leftX: .5, leftY: 0 }); assert.equal(host.sent.length, count + 1); - now += 30; + // A button edge is not a stick. The client marks a frame sent the moment + // the socket takes it, so a press swallowed here was invisible to both ends + // until the next change or the idle heartbeat a quarter of a second later. press({ seq: 7, down: ["B"], leftX: 0, leftY: 0 }); - assert.equal(host.sent.length, count + 2); + assert.equal(host.sent.length, count + 2, "a press goes through at once"); + assert.deepEqual(host.sent.at(-1).content.down, ["B"]); + press({ seq: 8, down: [], leftX: 0, leftY: 0 }); + assert.equal(host.sent.length, count + 3, "and so does the release"); + press({ seq: 9, down: [], leftX: 0, leftY: 0 }); + assert.equal(host.sent.length, count + 3, "holding nothing is still a hold"); + now += 30; + press({ seq: 10, down: [], leftX: 0, leftY: 0 }); + assert.equal(host.sent.length, count + 4); }); test("live rooms emit minimized server milestones once", () => { @@ -416,6 +470,54 @@ test("published frame timing is bounded and closed to unknown keys", () => { "Invalid performance"); }); +test("projectiles and impacts ride out bounded, and a full frame still fits", () => { + const shot = [820, -140, 0, 750, -140, 4200, 0, 1, 4]; + const lob = [910, -80, 0, 1950, -400, 0, 1, 0, 1150]; + assert.equal(validateOskiewarLiveState({ ...state(), shots: [], lobs: [] }), null); + assert.equal(validateOskiewarLiveState({ ...state(), + shots: Array.from({ length: 24 }, () => shot), + lobs: Array.from({ length: 12 }, () => lob) }), null); + // The caps are the game's own, and a row is an exact shape: a watcher + // positions render objects off these numbers without re-checking them. + assert.equal(validateOskiewarLiveState({ ...state(), + shots: Array.from({ length: 25 }, () => shot) }), "Invalid shots"); + assert.equal(validateOskiewarLiveState({ ...state(), + shots: [shot.slice(0, 8)] }), "Invalid shots"); + assert.equal(validateOskiewarLiveState({ ...state(), + shots: [[...shot.slice(0, 8), 8]] }), "Invalid shots"); + assert.equal(validateOskiewarLiveState({ ...state(), + shots: [[...shot.slice(0, 7), 2, 4]] }), "Invalid shots"); + assert.equal(validateOskiewarLiveState({ ...state(), + shots: [[NaN, ...shot.slice(1)]] }), "Invalid shots"); + assert.equal(validateOskiewarLiveState({ ...state(), + lobs: Array.from({ length: 13 }, () => lob) }), "Invalid lobs"); + assert.equal(validateOskiewarLiveState({ ...state(), + lobs: [[...lob.slice(0, 7), -1, 1150]] }), "Invalid lobs"); + // The host's impact track, whose ids are what let a watcher tell a repeated + // mark from a new one — so an id has to be a real ascending integer, not + // any finite number. + const mark = [9999, 5200, 11940, 0, 550, 520, 1]; + assert.equal(validateOskiewarLiveState({ ...state(), + impacts: Array.from({ length: 12 }, () => mark) }), null); + assert.equal(validateOskiewarLiveState({ ...state(), + impacts: Array.from({ length: 13 }, () => mark) }), "Invalid impacts"); + assert.equal(validateOskiewarLiveState({ ...state(), + impacts: [[1.5, ...mark.slice(1)]] }), "Invalid impacts"); + assert.equal(validateOskiewarLiveState({ ...state(), + impacts: [[...mark.slice(0, 6), 4]] }), "Invalid impacts"); + assert.equal(validateOskiewarLiveState({ ...state(), + impacts: [mark.slice(0, 6)] }), "Invalid impacts"); + // A full sky is the frame the relay has to carry, so it is measured here + // rather than discovered in play: the size cap turns a busy fight away + // silently, and a watcher would see the projectiles stop, not an error. + const full = JSON.stringify({ ...state(), + shots: Array.from({ length: 24 }, () => shot), + lobs: Array.from({ length: 12 }, () => lob), + impacts: Array.from({ length: 12 }, () => mark) }); + assert.ok(Buffer.byteLength(full) < 8192, + `a full sky is ${Buffer.byteLength(full)} bytes`); +}); + test("the rollback lane's packets pass seat to seat and never reach the grandstand", () => { const manager = new OskiewarLiveManager({ now: () => 1000 }); const host = new FakeSocket(), rival = new FakeSocket(), fan = new FakeSocket(); diff --git a/xbox/live/mac-test.html b/xbox/live/mac-test.html index a21bec8c53..7bc3ac9fdf 100644 --- a/xbox/live/mac-test.html +++ b/xbox/live/mac-test.html @@ -1012,17 +1012,23 @@ return true; } catch { return false; } }; + // `payload` arrives as JSON the game already serialized. It used to be + // parsed to read one field, parsed again to be re-wrapped, and + // stringified back — four passes over the whole state per publish, on a + // console, thirty times a second. The frame is a string concatenation now + // and the one field it needs is read as text: `nextRoundId` is only ever + // emitted when it is a real room id. + const liveFrame = (payload) => + '{"type":"oskiewar:state","content":' + payload + "}"; function publishLive(matchId, payload) { - let retiresRoom = false; - try { retiresRoom = Boolean(JSON.parse(payload).nextRoundId); } catch {} + const retiresRoom = /"nextRoundId":"ow-/.test(payload); let state = liveSockets.get(matchId); if (!state) { const socket = new WebSocket(`wss://session-server.aesthetic.computer/oskiewar-live?match=${encodeURIComponent(matchId)}&role=publisher&surface=web`); state = { socket, pending: payload, retire: retiresRoom }; liveSockets.set(matchId, state); socket.addEventListener("open", () => { - if (state.pending) socket.send(JSON.stringify({ type: "oskiewar:state", - content: JSON.parse(state.pending) })); + if (state.pending) socket.send(liveFrame(state.pending)); state.pending = ""; if (state.retire) setTimeout(() => socket.close(1000, "next round"), 0); }); @@ -1095,7 +1101,7 @@ } state.retire ||= retiresRoom; if (state.socket.readyState === WebSocket.OPEN) { - state.socket.send(JSON.stringify({ type: "oskiewar:state", content: JSON.parse(payload) })); + state.socket.send(liveFrame(payload)); if (state.retire) setTimeout(() => state.socket.close(1000, "next round"), 0); } else state.pending = payload; } diff --git a/xbox/live/oskiewar-multiplayer.md b/xbox/live/oskiewar-multiplayer.md index db56621445..db803871a8 100644 --- a/xbox/live/oskiewar-multiplayer.md +++ b/xbox/live/oskiewar-multiplayer.md @@ -10,6 +10,17 @@ streams it to the other. Jump to "Part two" for that. The streamed lane below still exists and still matters: it is what spectators watch, and it is the fallback whenever one side is an older build or the net channel is blocked. +**Part three (2026-09-11) rebuilt the streamed lane's watching half**, and +closes every item part one left open except local prediction. Projectiles and +the host's impact track are on the wire, the relay no longer discards the +newest frame of a burst, the grandstand interpolates between two real frames +instead of extrapolating past one, a watcher has the match HUD and the round's +own clock, button edges no longer wait on a floor written for a stick, a +denied chair actually reaches the grandstand, a desync is repaired instead of +counted, and both lanes draw a connection meter. Part one below is the +diagnosis as it stood on 2026-09-09; where it says a thing is missing, check +part three before believing it. + --- # Part one: the streamed lane, and why the guest lagged @@ -115,7 +126,9 @@ camera pose, `wind`, `round {remainingMs, timed, result, cause}`. About Not on the wire but read by the guest: `hit`, `blockFlash`, `attackTicks` (`:3388-3393`). Not on the wire at all: bullets, grenades, detached parts, -impacts, ammo, command stream, stance, hit stun. +impacts, ammo, command stream, stance, hit stun. *(Part three put `hit`, +`blockFlash`, `attackTicks`, bullets and grenades on the wire; detached parts, +impacts, ammo, command stream, stance and hit stun are still host-only.)* **Pads (guest → host)** `sendChallengerInput` (`:3530-3556`), called every sim tick. Sends `{seq, down[], leftX, leftY, name, colors}` when the pad @@ -301,8 +314,9 @@ Items 3, 4, 5 and 8 below are answered by the rollback lane in part two: the guest now has the HUD and the intro because it runs the round itself, it does not interpolate a stream because there is no stream to interpolate, it sees every effect because it spawns them, and its own fighter is locally -simulated. Items 1, 2, 6 and 7 are still open and still apply to spectators, -who continue to watch the streamed lane. +simulated. Part three answers 1 through 7 for spectators and for the streamed +guest. Item 8's first half — local prediction of the guest's own fighter — is +the only one left, and it is moot on the lane that superseded it. ## The original ranking, kept for the spectator lane @@ -497,3 +511,310 @@ ticks holding for each other and read like a netcode fault that is not one. against that baseline rather than trusting the exit code. - Prior two-window recording method and the 2026-09-07 numbers are in the session memory note `oskiewar-multiplayer-e2e`. + +--- + +# Part three: the streamed lane, watched (2026-09-11) + +@jeffrey: "i notice that projectiles in oskiewar dont show up across +multiplayer matches", then "we need to make sure physics has strong rendering +sync etc", then "can we show a connection health like wifi meter... on the top +right of the game", then "so we have an understanding of ping / connection to +the other player?" + +Four changes. The first three are the grandstand's half of part one's ranking +(items 1, 4, and half of 5); the fourth is new. + +## Projectiles are on the wire + +`spectatorState` now carries `shots` and `lobs` beside the fighters, as flat +number rows rather than named objects: + +``` +shot: x y z previousX previousY vx vy owner flags(spit|heavy|rubber) +lob: x y z vx vy owner flags(rocket|exploding) blastRadius fuseMs +``` + +Twenty-four rounds and twelve grenades are the game's own caps, and the relay +validates both shapes (`shots`/`lobs` in `validateOskiewarLiveState`). A frame +carrying a full sky measures 2.4 KB against the relay's 8 KiB cap, up from +1.27 KB for an empty one. A frame with no rows at all is an older host or a +stored demo, and the watcher leaves its arrays alone rather than clearing +them; an empty row set is a host saying the air is clear. + +Velocity rides along so the playout buffer can carry a round smoothly between +arrivals instead of stepping it 140 units at each one. Projectiles have no +identity on the wire, so a watcher rebuilds them each frame rather than +matching this frame's third bullet to the last frame's third — the match would +be a guess, and a wrong guess teleports a streak across the arena. + +The same frame now also carries `hit`, `blockFlash` and `attackTicks` per +fighter: three numbers the watcher already knew how to read (`:3388-3393`) and +had never been sent, which is why the strike spark and the limb burst were +dead code in LIVE and every swing froze at one canned mid-pose. + +`netStateHash` hashes projectile positions now, not just counts. A round whose +flight differed between two rollback seats killed different fighters, and the +count matched right up to the frame one seat's bullet connected. + +## The relay keeps the newest frame of a burst + +`publish()` used to run the 25 ms rate gate **before** the store, so of two +frames landing in one instant — a host catch-up tick, or a link stall batching +them — the older one went out and the newer was gone for good. That is the +whole of the 25-57% loss in part one's tables, and it fell hardest exactly +when the fight was busiest. + +Now the store comes first and a single trailing `setTimeout` (unreferenced, +one per room, cleared on takeover and on prune) hands the room whatever is +newest when it fires. The fan-out also serializes the frame once for the whole +room instead of once per socket, and `watchers()` yields the challenger first: +a seat that waited behind sixty-four spectators for its own fighter was paying +for their view. Coalescing is allowed to cost latency. It is not allowed to +cost information. + +The relay is no longer "no timers". + +## The grandstand interpolates instead of extrapolating + +A frame is no longer painted in the socket callback. It is filed with its +arrival time (`queueRoundViewerState`), and `updateRoundViewer` reads a playout +clock held a little behind the newest arrival, then paints the blend of the two +frames that bracket it (`blendRoundViewerStates`). Continuous quantities +interpolate; everything discrete — who is alive, which limbs are gone, what +phase the round is in — comes from the frame already reached, so a fighter +cannot die before the pose that killed them has finished arriving. + +- **One clock.** The queue and the coast fuse are both wall milliseconds. + Part one's drift bug — an arrival stamped by `performance.now()` compared + against the driver's sim time, so the 150 ms fuse stopped tripping as + dropped ticks accumulated — is gone because there is no longer a mixture. +- **The delay is measured, not fixed.** `gap + 2 × jitter + 8 ms`, clamped to + 45-220 ms, and moved at a twentieth per frame so resizing it never + time-warps the picture. The playout clock advances on the simulation's own + dt and leans toward `now − delay`; pinning it to the wall each tick would + replay the network's jitter as motion. +- **Extrapolation is the exception.** Past the end of the buffer the newest + frame stands and bodies coast on the velocity it reported, measured from + that frame's own position so the reckoning never compounds, bounded by the + same 150 ms horizon as before. +- **A dark room drops the queue.** A status frame saying `live: false`, a room + change, a takeover and a claim all reset it, so nothing stale is blended + into whatever timeline arrives next. + +## Both lanes draw a connection meter + +Four bars and one number, top right, under the round's QR code +(`netHealth`/`drawNetHealth`). It reports only what the seat it is drawn on can +actually measure, and draws nothing at all on a lane with no rival: + +| Lane | Reading | Where it comes from | +|---|---|---| +| Rollback fight | ping, `48MS` | a real round trip, see below | +| Grandstand or older-build guest | jitter, `±14MS`, plus `9% LOST` when any | arrival spacing and holes in the host's sequence numbers | +| Host in the streamed lane | age of the last pad, `120MS` | the only thing a host hears from its rival | + +Bars: 4 under 50 ms, 3 under 100, 2 under 170, else 1; a desync clamps a +rollback fight to one bar however fast the wire is, because two machines that +are no longer playing the same fight do not have a healthy connection. + +**Ping, by echo.** Every rollback input packet carries `w`, the sender's own +wall-clock mark. The rival holds the newest `w` it heard and returns it as `e` +on its next packet. The round trip is therefore a subtraction in the asking +seat's **own** clock, so the two machines never have to agree on what time it +is — which they cannot, and which is why nothing measured this before. It +reads up to one frame long, because the rival holds the mark until its next +tick; that is an honest part of what a press costs. `pings` counts +measurements separately from `pingMs`, so a sub-millisecond LAN round trip +reads as four bars and `0MS` rather than "no measurement yet". + +## The watcher has a HUD, and a round clock that means something + +`gameplayStarted` was never true on the watcher boot path, and the whole match +HUD hangs off it: no round clock, no `VS` / `WAITING FOR HOST` label, no +"you are ..." seat line, no status tray. That was part one's "no state updates +on screen when the game starts". It is set now, in the boot branch and in the +fallback-bridge takeover. + +The clock itself needed the wire to say more. A watcher derived +`roundStartedAt` from `remainingMs`, which is zero on every untimed round — so +it pinned itself a full round duration in the past, `counting` was never true, +and the intro card never drew. `spectatorState` now carries `round.elapsedMs`, +the round's own age with the intro included, and the watcher sets its clock +from that directly. Joining mid-intro lands mid-intro. + +`roundIsTimed()` also answered from the machine it ran on, which for a watcher +is not in the fight. It now returns the wire's `round.timed` while watching +live, and `false` while a watcher is still waiting for its first frame — +otherwise a connected-but-unserved watcher painted a phantom thirty-second +countdown over somebody else's lobby. + +The top-right corner is now measured once (`hudTopRightLeft`). The QR owns it, +the connection meter sits under the QR or takes the corner when no code is up, +and the `VS` / `LIVE` label and the update-ready affordance both measure from +the corner's left edge rather than assuming it is free. + +## The watcher runs its own sparks and limbs + +The reconstruction from flag edges was already written and had never fired, +because `hit` and `blockFlash` were not on the wire (part three fixes that +above) and because `updateResultImpactDebris` ran only inside a demo or a +hosted sim. A watcher's `impacts` array therefore grew for the life of the +connection without ever producing a mote. + +- `updateRoundViewerEffects` runs both `updateResultImpactDebris` and the + fragment physics on every watched tick. +- `detachPart` is split: `spawnDetachedPart` throws the pieces, + `detachPart` does the simulation's bookkeeping around it. A watcher diffs + `removedParts` frame to frame and spawns the pieces for any limb that just + went, posed from a copy of the fighter with that limb restored — a body's + geometry no longer carries the limbs it has lost, so asking the fighter as + it stands returns nothing to throw. +- `updateDetachedParts(dt, combat)` takes the same switch `updateBullets` + already had. A watcher's fragments tumble, settle and draw but damage + nobody, and they expire rather than renewing their own life the way a hosted + fragment does — scenery that never expires is a leak, and nothing on the + wire would ever say to remove it. +- A fighter who comes back whole is a new round, and takes the wreckage with + it. + +Nothing here is authoritative and none of it is on the wire. It does not have +to match the host bit for bit. It has to happen. + +## A denied chair reaches the grandstand + +Part one's item 7, and the reason none of the above was visible in practice. +The bridge had one timer slot. A versus room has no stored replay and 404s +forever, so the 1800 ms replay retry held that slot nearly all the time, and a +socket closing in that window asked to reconnect and was dropped in silence. +A third visitor — denied the chair, closed with 4409 — sat on "this match +already has a challenger" and never joined the room at all. `schedule` now +takes a named slot (`reconnect`, `replay`) and `open()` clears its own. + +Verified with three real browsers on a local instance of the real relay: the +third shows the host's fighters, their handles, the `live` label and the meter. + +## A press is not a stick + +Part one's item 6. Two rate floors were written to pace an analog axis that +moves every frame, and both were swallowing button edges: the client's 33 ms +gate held a press for up to two frames, and the relay's 15 ms gate dropped one +outright. The client marks a frame sent the moment the socket takes it +(`:3554`), so an edge the relay swallowed was invisible at BOTH ends until the +next change or the quarter-second heartbeat. + +A changed `down[]` now leaves at once on the client and passes the relay's +floor unconditionally; an unchanged frame echoes once after 50 ms before +settling into the 250 ms heartbeat, so a lost edge has a second chance without +an ack protocol. Stick drift still waits out the floor, which is what the +floor was for. + +## The host publishes on the wall clock + +Part one's item 2. `publishVersus` was gated on 33 ms of SIM time, and the +driver runs up to four owed ticks in one instant to catch up — so a catch-up +pump emitted three full state builds in the same millisecond, arriving at the +relay as a burst it could only coalesce. Catch-up is exactly when the fight is +busiest. The gate reads `runtime().unixMs` now, so a burst is one frame. + +The shell's `publishLive` also parsed the payload to read one field, parsed it +again to re-wrap it, and stringified it back: four passes over the whole state +per publish, on a console, thirty times a second. The frame is a string +concatenation now and `nextRoundId` is read as text. + +## The host's impact track rides out + +A watcher reconstructing sparks from flag edges covers a punch landing and +nothing else: a ricochet, a spit splat, a ground pound's crater and a +grenade's own blast raise no flag on any fighter, so they happened in silence +on every screen but the host's. + +Each impact is numbered as it is spawned (`spawnImpact`), because a stateless +frame that repeats the same list ten times cannot otherwise say which sparks a +watcher has already been shown — a position is not an identity. The newest +twelve ride out as `[id, x, y, z, durationMs, lifeMs, flags]`, the watcher +spawns only the numbers it has not seen at the age the frame reports, and the +flag-edge reconstruction stays as the fallback for a host too old to send a +track. `impactSequence` is in `netSimScalars`: a rollback that re-spawns an +impact has to re-issue the same number. + +A full frame — 24 shots, 12 lobs, 12 marks, both fighters wrecked — measures +2856 bytes against the relay's 8 KiB cap, and the relay test pins that. + +## A desync is repaired by dropping a lane + +Two machines no longer playing the same fight used to go on playing their +different ones; the two people found out when one died on a screen where they +had not been hit. + +The repair is to stop pretending there are two authorities. The host has one, +so both seats fall back to the lane where the host IS it: the challenger goes +back to watching the stream with its pads on the wire, and the host resumes +the streamed versus fight it was already publishing for the grandstand. +Nothing rewinds, nothing stops, and no state has to fit through a 2 KiB +channel. The cost is the rollback lane's latency — the honest price of one +machine having been wrong. + +The seat that notices tells the rival (`{t:"desync"}`) so the other does not +eat the four-second timeout, and both then refuse to open a rollback session +for sixty seconds. Without that cooldown the challenger's next hello would +deal a fresh session into the same divergence one second later, forever. + +One trap this opened: a rollback seat sends net packets, not pads, so the +moment the lane closes the host has heard nothing on the pad wire for as long +as the fight lasted. Read literally that is an empty chair, and an empty chair +resets the match — turning a repaired desync into a lost score. A three-second +grace covers the changeover; a rival who has genuinely gone still times out. + +## A watcher keeps the round's address + +`spectatorQrBox` asked `versusLane()`, a fact about the fight on the local +machine — so an untimed versus round, watched, lost its code at exactly the +moment somebody might want to pass it on. A live watcher is now a lane that +keeps its code up. + +## A corpse in the waiting room falls + +Not a networking bug, found while looking at one. @jeffrey: "it seems possible +to die in the waiting room but keep jumping stilll". A dead fighter takes no +input, but nothing moved it either: the dead branch in `updatePlayer` skips +every rule including gravity, which is right in a round — the round ends and +rebuilds the body, and the killcam wants the pose held — but the waiting room +has no round. A fighter blasted out of a hop kept the hop's height, and its +jump pose, for the whole two-and-a-half-second respawn beat. `settleCorpse` +drops it: gravity, the ground under it, no ledges (a corpse must not catch a +rung it would have caught alive), and then it stops. + +## What this did not change + +- **Desyncs are repaired by changing lanes, not by resynchronising.** There is + still no path that hands a diverged seat the other's state. +- **Local prediction of the guest's own fighter** (part one, item 8) is still + unwritten, and is moot between two current builds: the rollback lane + simulates that fighter locally already. +- **Same engine only**, as part two says. Transcendental functions are not + bit-identical across V8, JavaScriptCore and the console's QuickJS, and limb + poses are the hitboxes. The desync repair above is now what happens when + that bites, instead of two people quietly playing different fights. + +## Method + +- `npm run xbox:test:oskiewar:netplay` — eleven tests, including the echo ping + and the desync repair. +- `node --test session-server/oskiewar-live-manager.test.mjs` — twenty-one, + including the coalescing contract and the projectile row bounds. +- `node --test xbox/live/tests/oskiewar.test.mjs` — nine new tests here: the + published frame carries the shots, a watcher blends two frames rather than + snapping, the meter reads the wire it is on, a watcher gets the match HUD + and the round's own clock, a watcher runs its own sparks and limbs, the + host's impact track rides out, button edges leave at once, a versus host + publishes on the wall clock, and a corpse in the waiting room falls. + Baseline is 36 failures at HEAD; diff failure names rather than trusting the + exit code. +- `node --test xbox/live/tests/round-room.test.mjs` — five, including the + denied chair reaching the grandstand while the replay retry runs. +- `node xbox/live/tests/netplay-browser.mjs --seconds 10 --shots ` — two + real browsers over a local instance of the real relay. The frames it leaves + are how the meter was eyeballed. +- Any `oskiewar.js` edit needs `npm run xbox:burn:oskiewar-social`; the social + manifest is hash-bound and a test pins it. diff --git a/xbox/live/oskiewar.js b/xbox/live/oskiewar.js index 9ac135275c..bfbdb5e06c 100644 --- a/xbox/live/oskiewar.js +++ b/xbox/live/oskiewar.js @@ -989,6 +989,20 @@ const players = [ const activePlayers = () => survivalActive() || lobbyActive() ? [players[0]] : players; const impacts = []; + +// Every impact gets a number, in order, for the life of the run. A watcher +// cannot be told "here is a new spark" by a stateless frame that repeats the +// same list ten times — it has to be able to tell which ones it has already +// seen, and a position is not an identity. The counter is simulation state: +// a rollback that re-spawns an impact must re-issue the same number. +let impactSequence = 0; + +function spawnImpact(impact) { + impact.id = ++impactSequence; + impacts.push(impact); + return impact; +} + const detachedParts = []; const bullets = []; const grenades = []; @@ -1226,7 +1240,7 @@ const versusChallengerGraceMs = 2500; // The fight streams faster than a grandstand needs, because for the // challenger this feed IS the game — their own presses come back to them // as pictures through it. -const versusSnapshotIntervalUs = 33000; +const versusSnapshotIntervalMs = 33; // How long a visitor who arrived through a shared address waits for a host // before deciding the room is theirs to claim. const versusClaimAfterUs = 2500000; @@ -1239,10 +1253,14 @@ let versusInputMinNextAt = 0; // race can walk them right back on as a challenger. let versusFallbackBridge = null; +let versusSeatGraceUntil = 0; + function versusChallengerFresh() { // In a rollback fight the rival's presence is the session itself; the // sim must not read the wall clock to decide whether the fight goes on. if (netSession) return true; + // And for a moment after one ends badly, while the rival is changing lanes. + if (Date.now() < versusSeatGraceUntil) return true; const remote = globalThis.__oskiewarRemotePad; if (!remote || !Number.isFinite(remote.at)) return false; return Date.now() - remote.at < versusChallengerGraceMs; @@ -1379,12 +1397,47 @@ let viewerSystemPrevious = []; let roundViewerStatus = "CONNECTING"; let roundViewerDemo = null; let roundViewerDemoStartedAt = 0; -// When the last authoritative LIVE frame landed, in engine microseconds. The -// grandstand runs at display rate but the wire only arrives ~30×/s and -// irregularly, so the frames in between dead-reckon off this mark (see -// updateRoundViewer) instead of freezing on the last snap. +// When the last authoritative LIVE frame landed, on the WALL clock in +// milliseconds. Wall, not sim: the frame arrives in a socket callback, where +// the sim clock is not running, and comparing an arrival stamped by one clock +// against a deadline read from the other drifted by every dropped tick until +// the coast fuse below stopped tripping at all. let roundViewerLiveAt = 0; +// The grandstand's playout buffer. Wire frames are no longer painted the +// instant they land — they queue here with their arrival time and the render +// reads a clock held a little behind the newest of them, so every frame is +// drawn by interpolating the two that bracket it. Extrapolation is what is +// left when the buffer runs dry, not the normal case: a body that coasts on +// stale velocity walks through the floor and then snaps back, which is the +// whole of what "glitchy" meant on a guest screen. +let roundViewerFrames = []; +// The playout clock, in the same wall milliseconds the queue is stamped in. +// It advances on the simulation's own dt so the picture moves at the sim's +// rate, and leans gently toward (now − delay) so it neither runs dry nor +// falls further and further behind. +let roundViewerPlayoutMs = 0; +// How far behind the newest arrival the playout clock sits. One wire frame +// plus the jitter we have actually measured — enough that the next frame is +// usually already in hand when the clock reaches the last one. +let roundViewerDelayMs = 70; +// Wire health, measured from arrivals alone: mean gap, jitter (mean absolute +// deviation of the gap), and the share of sequence numbers that never came. +// These are what the connection meter reads, and what sizes the delay above. +let roundViewerGapMs = 33; +let roundViewerJitterMs = 0; +let roundViewerLossPct = 0; +let roundViewerSeq = -1; +let roundViewerSeqHeard = 0; +let roundViewerSeqExpected = 0; let roundViewerImpactTick = -1; +// The newest impact number this watcher has spawned. The host repeats a mark +// on every frame it is still burning, so this is what tells a repeat from a +// new spark. +let roundViewerImpactId = 0; +// Whether the round being watched has a clock. The wire says so; the watcher +// must not answer from its own `roundIsTimed()`, which reads a local fight +// that is not happening. +let roundViewerTimed = true; let livePublishFailed = false; // Match names are public URLs and must not collide, so they take real @@ -1502,6 +1555,13 @@ function startReplay(now) { // this wire too, by choice rather than freedom: it runs one room, one stream, // no series and no demo, because the shared URL must keep meaning this fight. function roundIsTimed() { + // A watcher is answering about somebody else's round. Everything below reads + // this machine's own fight, which for a watcher is not running — and a + // watcher that has not been served a frame yet has no round to report at + // all, so it must not paint a countdown for one. A stored demo still falls + // through: it IS a local re-run, and it was a timed round when recorded. + if (roundViewer && roundViewerMode !== "DEMO") + return roundViewerMode === "LIVE" && roundViewerTimed; if (survivalActive()) return false; // Training runs without a clock — except under the reel harness, where a // scripted dummy bout wants the full round apparatus (clock, demo, result @@ -1559,7 +1619,48 @@ function spectatorState(now, nextRoundId = "") { blocking: player.blocking, score: player.score, roundWins: player.roundWins, attack: player.attackKind || "", removedParts: player.removedParts.slice(), + // Three numbers the grandstand already knew how to read and had never + // been sent. `applyRoundViewerState` reconstructs the strike spark, the + // limb burst and the swing's real arc from them; without them a live + // watcher saw a body come apart in silence and every swing froze at one + // canned mid-pose. Two decimals is all a fade needs. + hit: Math.round((player.hit || 0) * 100) / 100, + blockFlash: Math.round((player.blockFlash || 0) * 100) / 100, + attackTicks: player.attackKind + ? Math.max(0, Math.round((now - player.attackStartedAt) / replayTickUs)) + : 0, })), + // Shots and lobs, the fight's projectiles. These used to stay home: a + // watcher — and a challenger on an older build — watched fighters flinch + // and die with nothing visible in the air between them. Flat number rows + // rather than objects, because the relay caps a frame at 8 KiB and 24 + // rounds plus 12 grenades named longhand is most of that cap on its own. + // Velocity rides along so the playout buffer can carry a round smoothly + // between arrivals instead of stepping it 140 units at a time. + shots: bullets.filter((shot) => shot.life > 0).map((shot) => [ + Math.round(shot.x), Math.round(shot.y), Math.round(shot.z), + Math.round(shot.previousX ?? shot.x), + Math.round(shot.previousY ?? shot.y), + Math.round(shot.vx || 0), Math.round(shot.vy || 0), shot.owner | 0, + (shot.spit ? 1 : 0) | (shot.heavy ? 2 : 0) | (shot.rubber ? 4 : 0)]), + // The host's own impact track. A watcher was reconstructing sparks from + // the flag edges it could see, which covers a punch landing and nothing + // else: a ricochet, a spit splat, a ground pound's crater and a grenade's + // own blast raise no flag on any fighter, so they happened in silence on + // every screen but the host's. Newest twelve, each with the number that + // says whether a watcher has already seen it, and its remaining life so + // it is spawned at the age it really is. + impacts: impacts.filter((mark) => mark.life > 0).slice(-12) + .map((mark) => [mark.id | 0, Math.round(mark.x), Math.round(mark.y), + Math.round(mark.z), Math.round((mark.duration || .3) * 1000), + Math.round(Math.max(0, mark.life) * 1000), + (mark.death ? 1 : 0) | (mark.explosion ? 2 : 0)]), + lobs: grenades.filter((lob) => lob.alive).map((lob) => [ + Math.round(lob.x), Math.round(lob.y), Math.round(lob.z), + Math.round(lob.vx || 0), Math.round(lob.vy || 0), lob.owner | 0, + (lob.rocket ? 1 : 0) | (lob.exploding ? 2 : 0), + Math.round(lob.blastRadius || 0), + Math.round(Math.max(0, lob.fuse || 0) * 1000)]), ball: { active: ball.active, x: ball.x, y: ball.y, z: ball.z, radius: ball.radius, type: ball.type, mass: ball.mass }, balls: balls.map((item) => ({ active: item.active, x: item.x, @@ -1572,7 +1673,13 @@ function spectatorState(now, nextRoundId = "") { roll: cameraDoll.roll }, wind: { direction: windDirection, mph: windMph }, round: { remainingMs, timed, result: roundResult || "", - cause: roundCause || "" }, + cause: roundCause || "", + // How long this round has been running, intro included. A timed round + // could be reconstructed from `remainingMs` alone, but the versus lane + // reports zero there — and a watcher deriving its clock from that zero + // pinned itself thirty seconds in the past, which is why it never + // counted a round off and never played an intro card. + elapsedMs: clamp(Math.round((now - roundStartedAt) / 1000), 0, 3600000) }, // @jeffrey plays oskiewar.com in Edge on an Xbox, where there are no // devtools and the console's own AC_NATIVE_PROFILE line only reaches a // Device Portal on the same LAN. The live socket is the one channel that @@ -2672,8 +2779,16 @@ function publishVersus(now) { // the room's one publisher socket. if (netSession && netSession.seat !== 0) return; if (netSilent || !versusLane() || !versusRoomName || livePublishFailed || - typeof publishLive !== "function" || now < versusNextAt) return; - versusNextAt = now + versusSnapshotIntervalUs; + typeof publishLive !== "function") return; + // Paced on the WALL clock, not the simulation's. The driver runs up to four + // owed ticks in one instant to catch up, and a sim-clocked gate let every + // one of those emit its own frame — two or three full state builds in the + // same millisecond, arriving at the relay as a burst it can only coalesce. + // Catch-up is exactly when the fight is busiest, so the cost landed where + // there was least room for it. Wall time makes a burst one frame. + const wall = runtime().unixMs || 0; + if (wall && wall < versusNextAt) return; + versusNextAt = wall + versusSnapshotIntervalMs; try { publishLive("ow-" + versusRoomName, JSON.stringify(spectatorState(now))); } catch (error) { @@ -2698,7 +2813,9 @@ function updateVersusConflict(now) { roundViewerMode = ""; roundViewerDemo = null; roundViewerStatus = "CONNECTING"; + resetRoundViewerPlayout(); shellMode = "GAME"; + gameplayStarted = true; selecting = false; roundResult = ""; matchOver = false; @@ -2737,6 +2854,23 @@ function updateVersusSeat(now) { } } +// A dead body falling. No input, no collision with anybody, no ledges: a +// corpse is not a fighter and must not catch a rung it would have caught +// alive. It drops, it lands on the ground under it, and it stops. +function settleCorpse(player, dt) { + if (player.grounded) return; + player.vy += fallGravity * dt; + player.x += player.vx * dt; + player.y += player.vy * dt; + player.vx *= .96; + const terrainY = terrainFloorAt(player.x); + if (player.y < terrainY) return; + player.y = terrainY; + player.vy = 0; + player.vx = 0; + player.grounded = true; +} + // The waiting room owes its lone fighter a real death. In a fight the // round system rebuilds a destroyed body, but the lobby has no rounds — a // fighter blasted apart would hop the empty room forever as a ghost among @@ -2759,12 +2893,13 @@ function updateLobbyMortality(now) { player.alive = false; player.lobbyDeathDressed = true; player.respawnAt = now + 2500000; + // Horizontal drive goes; the fall does not. Zeroing both used to be + // invisible because nothing moved the body afterwards either. player.vx = 0; - player.vy = 0; player.stance = "HIT"; player.lastButton = "DESTROYED"; player.lastButtonAt = now; - impacts.push({ x: player.x, y: player.y - 60, z: player.z, life: .55, + spawnImpact({ x: player.x, y: player.y - 60, z: player.z, life: .55, duration: .55, death: true, explosion: false }); playDrum("whoosh", 1.15, panPlayer(player)); } @@ -3437,7 +3572,7 @@ function applyRoundViewerState(state, now, dt = 1 / 60) { // impact track (replayViewerImpacts), so this reconstruction is LIVE-only. const wasAlive = player.alive; const wasHit = player.hit || 0; - const priorLimbs = player.removedParts?.length || 0; + const priorParts = player.removedParts?.slice() || []; for (const key of ["name", "nation", "color", "x", "y", "z", "facing", "alive", "grounded", "ducking", "blocking", "score", "roundWins", "removedParts"]) if (source[key] !== undefined) player[key] = source[key]; @@ -3465,13 +3600,37 @@ function applyRoundViewerState(state, now, dt = 1 / 60) { // burst from the flag edges the wire DOES carry — a fresh hit, a new // missing part, a death — so live watchers see the blow land. if (roundViewerMode === "LIVE") { - if (player.hit > .4 && wasHit <= .4) + // Reconstructing the strike spark is the fallback for a host too old to + // send its impact track. When the real track is on the frame it wins: + // it is the same spark, in the right place, and doubling them reads as + // a heavier hit than the one that landed. + if (!state.impacts && player.hit > .4 && wasHit <= .4) impacts.push({ x: player.x, y: player.y - 90, z: player.z, life: .32, duration: .32, death: false, explosion: true }); - const lostLimb = (player.removedParts?.length || 0) > priorLimbs; - if (lostLimb || (wasAlive && !player.alive)) + const nowParts = player.removedParts || []; + // A fighter who came back whole is a new round, not a healed limb. + const lost = nowParts.length < priorParts.length ? [] + : nowParts.filter((part) => !priorParts.includes(part)); + if (nowParts.length < priorParts.length) clearRoundViewerEffects(); + if (!state.impacts && (lost.length || (wasAlive && !player.alive))) impacts.push({ x: player.x, y: player.y - 60, z: player.z, life: .55, duration: .55, death: true, explosion: false }); + // And the limb itself goes flying. The wire says which part is gone; it + // does not say where the pieces went, and the pieces are the part of a + // dismemberment anybody actually watches. They are spawned from the + // fighter's own pose here and then fall under local physics, so they + // land where the body stands rather than where a packet said it did. + if (lost.length && detachedParts.length < 48) { + // Posed from BEFORE the loss, on a copy: the wire's removedParts are + // already applied to the live fighter, and a body's geometry no + // longer carries the limbs it has lost — so asking the fighter as it + // stands now returns no segments to throw. + const pose = runnerWorldGeometry({ ...player, removedParts: priorParts }, + (now - startedAt) / 1000000); + const rival = players[player.pad === 0 ? 1 : 0]; + for (const part of lost) + spawnDetachedPart(player, part, pose, rival?.x ?? player.x, now); + } } } const sources = state.balls || [state.ball]; @@ -3482,6 +3641,13 @@ function applyRoundViewerState(state, now, dt = 1 / 60) { "type", "mass", "heldBy"]) if (source[key] !== undefined) balls[index][key] = source[key]; } + // A frame that carries no projectile rows is an older host or a stored + // demo, and its shots are simply unknown — leaving the arrays alone is the + // honest answer. A frame that carries an empty row set is a host saying the + // air is clear, and that clears it. + if (state.shots) applyWireShots(state.shots); + if (state.lobs) applyWireLobs(state.lobs); + if (state.impacts) applyWireImpacts(state.impacts); cameraCenter = state.camera.x; cameraCenterY = state.camera.y; cameraWidth = state.camera.width; @@ -3494,9 +3660,24 @@ function applyRoundViewerState(state, now, dt = 1 / 60) { roundResult = state.round.result || ""; roundCause = state.round.cause || (roundResult.includes("BALLED") ? "BALLED" : roundResult ? "ROUND" : ""); - roundElapsedUs = Math.max(0, roundDurationUs - state.round.remainingMs * 1000); + // Whether the round on the wire has a clock is the HOST's fact, not a thing + // to re-derive locally: `roundIsTimed()` answers from the machine it runs + // on, and a watcher's machine is not in the fight. A demo carries no flag + // and was always a timed, recorded round. + roundViewerTimed = state.round.timed !== false; + // The round's own age, intro included, straight off the wire. Deriving it + // from `remainingMs` instead is what broke the versus lane: that field is + // zero on an untimed round, so the clock landed a full round duration in + // the past, `counting` was never true, and the intro card never drew. + const elapsedUs = Number.isFinite(state.round.elapsedMs) + ? state.round.elapsedMs * 1000 : null; + roundElapsedUs = roundViewerTimed + ? Math.max(0, roundDurationUs - state.round.remainingMs * 1000) + : elapsedUs === null ? 0 + : Math.max(0, elapsedUs - roundIntroDurationUs()); matchOver = state.phase === "match"; - roundStartedAt = now - roundIntroDurationUs() - roundElapsedUs; + roundStartedAt = elapsedUs === null + ? now - roundIntroDurationUs() - roundElapsedUs : now - elapsedUs; if (roundResult && !hadResult) roundOverAt = now; const target = state.camera.target || { x: cameraCenter, y: cameraCenterY, z: 0 }; cameraDoll.track({ target, @@ -3506,6 +3687,60 @@ function applyRoundViewerState(state, now, dt = 1 / 60) { fov: state.camera.fov || 55, roll: state.camera.roll || 0 }, dt, 1000); } +// Shots and lobs arrive as the flat number rows spectatorState packs (owner +// and kind folded into one flag word). They are rebuilt rather than merged: +// a round has no identity on the wire, so matching this frame's third bullet +// to last frame's third bullet would be a guess, and a wrong guess teleports +// a streak across the arena. The arrays themselves keep their identity — the +// camera's swept-path packer and the render interpolator both hold references +// to them. +function applyWireShots(rows) { + bullets.length = 0; + for (const row of rows) { + const [x, y, z, previousX, previousY, vx, vy, owner, flags] = row; + bullets.push({ x, y, z, previousX, previousY, vx, vy, + owner: owner === 1 ? 1 : 0, life: 1, safeUntil: 0, + spit: Boolean(flags & 1), heavy: Boolean(flags & 2), + rubber: Boolean(flags & 4), + // No bounce history came up the wire, so a watched round draws its + // streak and no ricochet tail. drawBulletTrail reads the count first + // and an empty one costs it nothing. + trail: [], trailCount: 0 }); + } +} + +// The host's impact track, which repeats each mark for as long as it burns. +// The id is what makes a repeat readable as a repeat: a watcher spawns only +// the numbers it has not seen, at the age the frame reports, and then runs +// them out on its own physics. +function applyWireImpacts(rows) { + if (!rows.length) return; + const newest = rows[rows.length - 1][0]; + // Numbers only climb within one host's run. A lower one is a different + // host, or the same one restarted, and nothing before it has been seen. + if (newest < roundViewerImpactId) roundViewerImpactId = 0; + for (const row of rows) { + const [id, x, y, z, durationMs, lifeMs, flags] = row; + if (id <= roundViewerImpactId) continue; + impacts.push({ x, y, z, duration: durationMs / 1000, + life: Math.max(.001, lifeMs / 1000), + death: Boolean(flags & 1), explosion: Boolean(flags & 2) }); + } + roundViewerImpactId = Math.max(roundViewerImpactId, newest); +} + +function applyWireLobs(rows) { + grenades.length = 0; + for (const row of rows) { + const [x, y, z, vx, vy, owner, flags, blastRadius, fuseMs] = row; + // Only live grenades ride out, so anything here is alive by definition — + // which is also what puts it in the render list. + grenades.push({ x, y, z, vx, vy, owner: owner === 1 ? 1 : 0, alive: true, + rocket: Boolean(flags & 1), exploding: Boolean(flags & 2), + blastRadius, blastAge: 0, fuse: fuseMs / 1000, hitPlayers: 0 }); + } +} + function handleRoundViewer(message) { const now = runtime().monotonicUs; matchName = message.roundName || matchName; @@ -3513,10 +3748,14 @@ function handleRoundViewer(message) { roundViewerDemo = null; roundViewerMode = ""; roundViewerStatus = "CONNECTING"; + resetRoundViewerPlayout(); return; } if (message.type === "status") { roundViewerStatus = String(message.content?.label || "waiting").toUpperCase(); + // A room that goes dark keeps no queue: whatever arrives next belongs to + // a new timeline, and a stale frame blended into it is a teleport. + if (message.content?.live === false) resetRoundViewerPlayout(); return; } if (message.type === "demo") { @@ -3537,6 +3776,7 @@ function handleRoundViewer(message) { roundViewerDemo = message.content; roundViewerDemoStartedAt = now; roundViewerMode = "DEMO"; + resetRoundViewerPlayout(); globalThis.__oskiewarReplayReady = true; return; } @@ -3550,18 +3790,91 @@ function handleRoundViewer(message) { if (roundViewerDemo && !message.live) return; if (roundViewerDemo && message.content?.phase === "match") return; roundViewerMode = "LIVE"; - applyRoundViewerState(message.content, now); - roundViewerLiveAt = now; + queueRoundViewerState(message.content); } } -// How far past the last authoritative frame the grandstand keeps coasting on -// wire velocity before it holds still. One frame carries fresh vx/vy, so a -// short coast is honest and self-correcting — the next frame snaps to truth. -// Past this the velocity is stale enough that coasting would walk a fighter -// through a wall or float them past a jump's apex, so a long wire gap freezes -// the pose instead of inventing motion. -const liveDeadReckonMaxUs = 150000; +// A fresh timeline: a room change, a takeover, a host that went away. The +// queue, the playout clock and the measured health all start over, because +// every one of them is a statement about a wire that no longer exists. +// Sparks, debris and fallen limbs belong to one round on one wire. A new +// round, a new room or a host that went away takes them with it. +function clearRoundViewerEffects() { + impacts.length = 0; + detachedParts.length = 0; + roundViewerImpactId = 0; +} + +function resetRoundViewerPlayout() { + clearRoundViewerEffects(); + roundViewerFrames = []; + roundViewerPlayoutMs = 0; + roundViewerLiveAt = 0; + roundViewerGapMs = 33; + roundViewerJitterMs = 0; + roundViewerLossPct = 0; + roundViewerSeq = -1; + roundViewerSeqHeard = 0; + roundViewerSeqExpected = 0; +} + +// A frame lands here, in a socket callback, between one simulation tick and +// the next paint. Painting it from inside that callback is what smeared every +// correction across two frames: the render interpolator had already captured +// the pre-frame pose, so the next paint landed partway into the new state and +// the one after finished the jump. So the frame is only filed — stamped with +// its arrival and measured — and the tick decides when it is due. +function queueRoundViewerState(state) { + const at = Date.now(); + const gap = roundViewerLiveAt ? at - roundViewerLiveAt : 0; + roundViewerLiveAt = at; + if (gap > 0 && gap < 2000) { + roundViewerGapMs += (gap - roundViewerGapMs) * .12; + roundViewerJitterMs += + (Math.abs(gap - roundViewerGapMs) - roundViewerJitterMs) * .12; + } + // Loss read off the host's own sequence numbers, over a rolling window. + // This is where the relay's coalescing shows: a frame it dropped inside its + // 25 ms gate leaves a hole in the count that nothing else on this side can + // see. A takeover or a fresh room rewinds the sequence, which restarts the + // window rather than reading as a hundred lost frames. + const seq = Number(state?.seq); + if (Number.isFinite(seq)) { + if (roundViewerSeq >= 0 && seq > roundViewerSeq) { + roundViewerSeqExpected += seq - roundViewerSeq; + roundViewerSeqHeard += 1; + if (roundViewerSeqExpected >= 180) { + roundViewerLossPct = clamp(Math.round( + (1 - roundViewerSeqHeard / roundViewerSeqExpected) * 100), 0, 100); + roundViewerSeqExpected = 0; + roundViewerSeqHeard = 0; + } + } else { + roundViewerSeqExpected = 0; + roundViewerSeqHeard = 0; + } + roundViewerSeq = seq; + } + // One wire frame plus twice the jitter actually measured, held inside a + // window where a buffer is still worth more than it costs. The delay itself + // moves slowly: resizing it quickly would time-warp the picture. + const want = clamp(roundViewerGapMs + roundViewerJitterMs * 2 + 8, 45, 220); + roundViewerDelayMs += (want - roundViewerDelayMs) * .05; + roundViewerFrames.push({ state, at }); + // A ceiling, not a working depth: the playout holds about three frames. + // This only catches a tab whose simulation parked while the wire kept + // arriving, and the clock's own thousand-millisecond reset sorts out the + // rest when the tab comes back. + if (roundViewerFrames.length > 32) roundViewerFrames.shift(); +} + +// How far past the newest frame in hand the grandstand keeps coasting on wire +// velocity before it holds still. Inside the buffer nothing coasts at all — +// the pose is blended between two frames the host really sent. Past the +// buffer the velocity goes stale fast enough that coasting walks a fighter +// through a wall or floats them past a jump's apex, so a long gap freezes the +// pose instead of inventing motion. +const liveDeadReckonMaxMs = 150; function updateRoundViewer(now, dt) { if (roundViewerDemo && roundViewerMode === "DEMO") { @@ -3570,25 +3883,146 @@ function updateRoundViewer(now, dt) { applyRoundViewerState(state, now, dt); replayViewerImpacts(state.tick, dt); } - } else if (roundViewerMode === "LIVE" && - now - roundViewerLiveAt < liveDeadReckonMaxUs) { - // Between the ~30 irregular frames a second the wire delivers, coast every - // moving body along its last reported velocity so the render runs the same - // smooth 60 as a hosted fight instead of teleporting on each arrival. - for (const player of players) { - if (!player.alive) continue; - // Coast the delta only — the host's reported position is truth and may - // sit anywhere it says (legacy rooms even ran off the cube). The 150ms - // horizon above bounds any overshoot, and the next snap corrects it. - player.x += (player.wireVx || 0) * dt; - player.y += (player.wireVy || 0) * dt; - } - for (const ball of balls) { - if (!ball.active) continue; - ball.x += (ball.vx || 0) * dt; - ball.y += (ball.vy || 0) * dt; - } + return; + } + if (roundViewerMode !== "LIVE" || !roundViewerFrames.length) return; + const wall = Date.now(); + const target = wall - roundViewerDelayMs; + // A first frame, or a wire that stopped and came back, sets the clock + // outright. Every other tick advances it by the simulation's own dt and + // leans a twentieth of the way toward where it belongs. Leaning rather than + // snapping is what keeps the picture's rate the sim's rate: a clock pinned + // to the wall every tick replays the network's jitter as motion. + if (!roundViewerPlayoutMs || Math.abs(target - roundViewerPlayoutMs) > 1000) + roundViewerPlayoutMs = target; + else roundViewerPlayoutMs += dt * 1000 + + (target - roundViewerPlayoutMs) * .05; + const play = roundViewerPlayoutMs; + // Hold exactly one frame behind the clock: it is the left end of the pair + // being blended, and the one to coast from if the buffer runs dry. + while (roundViewerFrames.length > 1 && roundViewerFrames[1].at <= play) + roundViewerFrames.shift(); + const before = roundViewerFrames[0].at <= play ? roundViewerFrames[0] : null; + const after = before ? roundViewerFrames[1] : roundViewerFrames[0]; + if (before && after) { + const span = Math.max(1, after.at - before.at); + const alpha = clamp((play - before.at) / span, 0, 1); + applyRoundViewerState(blendRoundViewerStates(before.state, after.state, + alpha, (play - before.at) / 1000), now, dt); + updateRoundViewerEffects(dt); + return; + } + // Starved, or not yet arrived at the first frame. The newest thing in hand + // is the truth; past it the bodies coast on the velocity that frame + // reported — measured from that frame's own position, so the reckoning is + // never compounded and the next arrival needs no correcting snap. + const edge = before || after; + applyRoundViewerState(edge.state, now, dt); + if (before) + coastRoundViewer(Math.min(play - before.at, liveDeadReckonMaxMs) / 1000); + updateRoundViewerEffects(dt); +} + +// The half of the fight a watcher is allowed to run for itself. Sparks, their +// debris and the limbs that came off are cosmetic: nothing here decides a hit +// or a score, so none of it has to agree with the host bit for bit — it only +// has to happen. Before this, `impacts` grew for the life of the connection +// and never drew a mote, because the function that grows an impact's debris +// ran only in a demo or a hosted sim. +function updateRoundViewerEffects(dt) { + updateResultImpactDebris(dt); + if (detachedParts.length) updateDetachedParts(dt, false); +} + +// Dead reckoning, and only past the end of the buffer. +function coastRoundViewer(seconds) { + if (seconds <= 0) return; + for (const player of players) { + if (!player.alive) continue; + // Coast the delta only — the host's reported position is truth and may + // sit anywhere it says (legacy rooms even ran off the cube). + player.x += (player.wireVx || 0) * seconds; + player.y += (player.wireVy || 0) * seconds; } + for (const item of balls) { + if (!item.active) continue; + item.x += (item.vx || 0) * seconds; + item.y += (item.vy || 0) * seconds; + } + // Both ends of a shot move together: the streak's length is the round's + // speed, not the size of the gap we are papering over. + for (const shot of bullets) { + shot.x += (shot.vx || 0) * seconds; + shot.y += (shot.vy || 0) * seconds; + shot.previousX += (shot.vx || 0) * seconds; + shot.previousY += (shot.vy || 0) * seconds; + } + for (const lob of grenades) { + if (lob.exploding) continue; + lob.x += (lob.vx || 0) * seconds; + lob.y += (lob.vy || 0) * seconds; + } +} + +// The pose the grandstand actually paints: two frames the host really sent, +// blended. Continuous quantities interpolate; everything discrete — who is +// alive, which limbs are gone, what phase the round is in — comes from the +// frame already reached, because a fighter must not die before the pose that +// killed them has finished arriving. +const blendFighterKeys = ["x", "y", "z", "vx", "vy", "vz", "hit", + "blockFlash", "attackTicks"]; +const blendCameraKeys = ["x", "y", "width", "perspective", "fov", "roll"]; +const blendPointKeys = ["x", "y", "z"]; + +function blendNumbers(from, to, keys, t) { + const out = { ...from }; + if (!to) return out; + for (const key of keys) { + const a = Number(from?.[key]); + const b = Number(to[key]); + if (Number.isFinite(a) && Number.isFinite(b)) out[key] = a + (b - a) * t; + } + return out; +} + +function blendRoundViewerStates(from, to, t, seconds) { + const state = { ...from }; + state.fighters = (from.fighters || []).map((fighter, index) => + blendNumbers(fighter, to.fighters?.[index], blendFighterKeys, t)); + const blendBall = (ball, other) => + ball ? blendNumbers(ball, other, blendPointKeys, t) : ball; + if (from.balls) + state.balls = from.balls.map((ball, index) => + blendBall(ball, to.balls?.[index])); + if (from.ball) state.ball = blendBall(from.ball, to.ball); + if (from.camera) { + state.camera = blendNumbers(from.camera, to.camera, blendCameraKeys, t); + for (const part of ["position", "target"]) + if (from.camera[part]) state.camera[part] = + blendNumbers(from.camera[part], to.camera?.[part], blendPointKeys, t); + } + // Projectiles have no identity on the wire, so they are carried forward on + // their own reported velocity rather than matched against the next frame's + // rows — a wrong match teleports a streak across the arena. A shot flies + // straight, so this is not an approximation of the host's path, it IS it. + if (from.shots) state.shots = from.shots.map((row) => { + const [x, y, z, previousX, previousY, vx, vy, owner, flags] = row; + return [x + vx * seconds, y + vy * seconds, z, + previousX + vx * seconds, previousY + vy * seconds, vx, vy, owner, flags]; + }); + if (from.lobs) state.lobs = from.lobs.map((row, index) => { + const [x, y, z, vx, vy, owner, flags, blastRadius, fuseMs] = row; + const next = to.lobs?.[index]; + // A blast's ring grows over a fifth of a second, which is six wire + // frames — steppy enough to see. It blends when the next frame plainly + // holds the same blast; otherwise the radius stands. + const radius = next && next[6] === flags && next[5] === owner + ? blastRadius + (next[7] - blastRadius) * t : blastRadius; + const moving = flags & 2 ? 0 : seconds; + return [x + vx * moving, y + vy * moving, z, vx, vy, owner, flags, + radius, fuseMs]; + }); + return state; } // The buttons a challenger's pad may carry up the wire — the fight's own @@ -3596,6 +4030,9 @@ function updateRoundViewer(now, dt) { // toggle the host's debug overlay or send their game back to the title. const versusInputButtons = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", "A", "B", "X", "Y", "LeftShoulder", "RightShoulder"]; +// The buttons of the last frame the wire actually took, held apart from the +// whole frame so a press can be told from a stick twitch. +let versusInputLastDown = "[]"; // The challenger's half of the versus wire: sample the local pad, ship it on // change, and heartbeat while idle so silence can mean absence. Sends pace @@ -3611,11 +4048,24 @@ function sendChallengerInput(now) { const round2 = (value) => Math.round((Number(value) || 0) * 100) / 100; const frame = { down, leftX: round2(pad.leftX), leftY: round2(pad.leftY) }; const worn = JSON.stringify(frame); - if (worn !== versusInputLastSent) { - if (now < versusInputMinNextAt) return; - } else if (now < versusInputNextAt) return; + // A button edge leaves at once. The 33 ms floor was written to pace a + // stick, which drifts continuously and would otherwise send every tick — + // but a press is a discrete event, and holding one back for up to two + // frames put a third of a display's lag into the one thing a player feels + // most. Only the analog half still waits. + const pressed = JSON.stringify(down); + const edge = pressed !== versusInputLastDown; + if (!edge) { + if (worn !== versusInputLastSent) { + if (now < versusInputMinNextAt) return; + } else if (now < versusInputNextAt) return; + } versusInputMinNextAt = now + 33000; - versusInputNextAt = now + 250000; + // An unchanged frame is repeated once soon after a change, then settles + // into the idle heartbeat. The relay drops what arrives too fast and says + // nothing about it, so a lost edge used to be invisible for a quarter of a + // second; one cheap echo closes that window without adding a protocol. + versusInputNextAt = now + (edge ? 50000 : 250000); const identity = acFeed?.player; const colors = (Array.isArray(identity?.colors) ? identity.colors : []) .map((entry) => Array.isArray(entry) @@ -3625,7 +4075,10 @@ function sendChallengerInput(now) { .slice(0, 4); if (roundViewer.sendInput({ seq: versusInputSeq++, ...frame, name: identity?.handle ? String(identity.handle).toUpperCase() : "", - colors })) versusInputLastSent = worn; + colors })) { + versusInputLastSent = worn; + versusInputLastDown = pressed; + } } // --------------------------------------------------------------------------- @@ -3709,6 +4162,7 @@ function netSimScalars() { roundCause, deathCinematic, impactHitboxesUntil, + impactSequence, fightOpponent, survivalStartedAt, survivalLavaY, @@ -3760,6 +4214,7 @@ function netRestoreScalars(saved) { roundCause, deathCinematic, impactHitboxesUntil, + impactSequence, fightOpponent, survivalStartedAt, survivalLavaY, @@ -3840,7 +4295,16 @@ function netStateHash() { player.heldBall, player.removedParts, player.dashUntil]); view.push(balls.map((item) => [item.active, item.x, item.y, item.z, item.vx, item.vy, item.heldBy])); - view.push(bullets.length, grenades.length, roundResult, roundElapsedUs, + // Projectiles by position, not just by count. A round whose flight differs + // between the two machines kills different fighters, and hashing only the + // length let that drift silently: the count matched right up to the frame + // one seat's bullet connected and the other's missed. + view.push(bullets.map((shot) => [shot.x, shot.y, shot.z, shot.vx, shot.vy, + shot.owner, shot.life])); + view.push(grenades.map((lob) => [lob.x, lob.y, lob.z, lob.vx, lob.vy, + lob.owner, lob.fuse, lob.alive, lob.exploding, lob.blastRadius, + lob.hitPlayers])); + view.push(roundResult, roundElapsedUs, matchOver, roundStartedAt, roundOverAt); const text = JSON.stringify(view); let hash = 0x811c9dc5; @@ -3928,8 +4392,16 @@ function netBegin(deal, seat, send) { remoteFrame: -1, remoteSimFrame: 0, lastRemoteMask: 0, ackFrame: -1, confirmed: -1, hashes: new Map(), peerHashes: new Map(), lastPacketAt: Date.now(), startedAt: Date.now(), ticks: 0, + // peerStamp is the newest wall-clock mark heard from the rival, echoed + // back on our next packet so they can read their own round trip; pingMs is + // ours, read from the echoes coming the other way. + peerStamp: 0, stats: { rollbacks: 0, rolledFrames: 0, maxRollback: 0, stalls: 0, - waits: 0, sent: 0, received: 0, desyncs: 0, snapshotMs: 0, resimMs: 0 } }; + waits: 0, sent: 0, received: 0, desyncs: 0, snapshotMs: 0, resimMs: 0, + // `pings` counts measurements, not milliseconds: a round trip under half + // a millisecond rounds to zero, and a meter that reads "no measurement + // yet" on a LAN would be wrong at exactly the moment it is best. + pings: 0, pingMs: 0 } }; for (let frame = 0; frame < deal.delay; frame++) session.local.set(frame, 0); netSession = session; netClockUs = deal.origin; @@ -3959,6 +4431,16 @@ function netLeave(reason) { function netEnd(reason) { if (!netSession) return; const stats = netSession.stats; + // A seat in a rollback fight sends net packets, not pads, so the moment + // this lane closes the host has heard nothing on the pad wire for as long + // as the fight lasted. Read literally that is an empty chair, and an empty + // chair resets the match — which would turn a repaired desync into a lost + // score. The grace covers the changeover; a rival who has genuinely gone + // still times out, just three seconds later. + if (reason === "desync" || reason === "desync-peer") + versusSeatGraceUntil = Date.now() + 3000; + // The stream this seat is about to start watching again is a new timeline. + if (roundViewer) resetRoundViewerPlayout(); // Time never runs backwards: the local clock picks up where the fight's // clock stood, so every deadline the fight left behind is still meaningful. scaledClockUs = Math.max(scaledClockUs, @@ -4054,11 +4536,17 @@ function netPrune(session) { function netDrainInbox(session) { const remoteSeat = session.seat === 0 ? 1 : 0; - for (const packet of netInbox) { + // Taken as a batch: a hash mismatch inside this loop ends the session and + // empties the inbox underneath it. + const batch = netInbox.splice(0, netInbox.length); + for (const packet of batch) { if (!packet || typeof packet !== "object") continue; session.lastPacketAt = Date.now(); session.stats.received++; if (packet.t === "bye") { session.peerLeft = true; continue; } + // The rival noticed the divergence first. Same repair from this side, and + // no answering packet: a desync that echoed would ping-pong. + if (packet.t === "desync") { session.peerDesync = true; continue; } if (packet.t === "i" && Array.isArray(packet.m) && Number.isInteger(packet.f)) { // m[k] is the pad for frame f + k; the newest is the last. @@ -4074,11 +4562,25 @@ function netDrainInbox(session) { } if (Number.isInteger(packet.a)) session.ackFrame = Math.max(session.ackFrame, packet.a); if (Number.isInteger(packet.s)) session.remoteSimFrame = Math.max(session.remoteSimFrame, packet.s); + // Ping, by echo. `w` is the rival's own mark, which we hold and send + // back; `e` is one of ours coming home, so the round trip is a + // subtraction in OUR clock and the two machines need no shared time. + // It reads up to one frame long, because the rival holds our mark until + // their next tick — an honest part of what a press actually costs. + if (Number.isInteger(packet.w)) session.peerStamp = packet.w; + if (Number.isInteger(packet.e) && packet.e > 0) { + const trip = Date.now() - packet.e; + if (trip >= 0 && trip < 4000) { + session.stats.pingMs = session.stats.pings + ? session.stats.pingMs + (trip - session.stats.pingMs) * .15 : trip; + session.stats.pings++; + } + } if (Array.isArray(packet.h) && packet.h.length === 2) netNotePeerHash(session, packet.h[0], packet.h[1], remoteSeat); + if (netSession !== session) return; } } - netInbox.length = 0; } function netNotePeerHash(session, frame, hash) { @@ -4088,9 +4590,38 @@ function netNotePeerHash(session, frame, hash) { if (mine !== hash) { session.stats.desyncs++; telemetry("NET_DESYNC", "frame " + frame + " mine " + mine + " theirs " + hash); + netDesyncRepair(session, frame); } } +// A desync used to be counted and then lived with: two machines that are no +// longer playing the same fight went on playing their different ones, and the +// two people found out when one of them died on a screen where they had not +// been hit. +// +// The repair is to stop pretending there are two authorities. The host has +// one, so both seats fall back to the lane where the host IS the authority: +// the challenger goes back to watching the host's stream with its pads going +// up the wire, and the host resumes the streamed versus fight it was already +// publishing for the grandstand. The fight does not stop, it does not rewind, +// and nobody has to re-adopt a state that will not fit through a 2 KiB +// channel. What it costs is the rollback lane's latency, which is the honest +// price of one machine having been wrong. +// +// Both seats have to agree, or the host sits waiting for packets that are not +// coming — so the seat that notices says so, and both then refuse to open a +// rollback session again for a while. Without that cooldown the challenger's +// next hello would deal a fresh session into the same divergence, one second +// later, forever. +const NET_DESYNC_COOLDOWN_MS = 60000; +let netLaneBlockedUntil = 0; + +function netDesyncRepair(session, frame) { + netLaneBlockedUntil = Date.now() + NET_DESYNC_COOLDOWN_MS; + try { session.send({ t: "desync", f: frame }); } catch (_) {} + netEnd("desync"); +} + // Our state hash at the newest frame both pads are known for — a frame that // will never be rolled back again, so both seats hash the same thing if // they are the same game. @@ -4128,7 +4659,8 @@ function netSendInputs(session) { for (let frame = first; frame <= newest; frame++) masks.push(session.local.get(frame) ?? 0); const packet = { t: "i", f: first, m: masks, a: session.remoteFrame, - s: session.frame }; + s: session.frame, w: Date.now() }; + if (session.peerStamp) packet.e = session.peerStamp; if (session.pendingHash) { packet.h = session.pendingHash; session.pendingHash = null; } if (session.send(packet)) session.stats.sent++; } @@ -4140,6 +4672,15 @@ function netSendInputs(session) { function netTick() { const session = netSession; netDrainInbox(session); + if (!netSession) return; + // The rival told us the two fights came apart. Drop to the streamed lane, + // where there is only one authority, and stay out of the rollback lane long + // enough that the next hello is not just the same divergence again. + if (session.peerDesync) { + netLaneBlockedUntil = Date.now() + NET_DESYNC_COOLDOWN_MS; + netEnd("desync-peer"); + return; + } if (session.peerLeft || Date.now() - session.lastPacketAt > NET_PEER_LOST_MS) { const seat = session.seat; netEnd(session.peerLeft ? "rival-left" : "peer-lost"); @@ -4175,12 +4716,15 @@ function netTick() { session.frame++; netPrune(session); netExchangeHash(session); + // The hash exchange can find the mismatch that ends this session. + if (netSession !== session) return; // A window into the lane for the debug overlay, the agent tools and the // browser harness: what the fight is costing and whether it is one game. globalThis.__oskiewarNetStats = { seat: session.seat, frame: session.frame, confirmed: session.confirmed, remoteFrame: session.remoteFrame, hash: session.hashes.get(session.confirmed) ?? 0, - hashFrame: session.confirmed, ...session.stats }; + hashFrame: session.confirmed, ...session.stats, + behind: Math.max(0, session.frame - 1 - session.remoteFrame) }; } // The challenger announces itself on the net channel until the host answers @@ -4190,6 +4734,7 @@ function netChallengerHello(now) { if (netSession || roundViewer?.seat !== "challenger" || typeof roundViewer.sendNet !== "function") return; const at = Date.now(); + if (at < netLaneBlockedUntil) return; if (at - netHelloSentAt < NET_HELLO_INTERVAL_MS) return; netHelloSentAt = at; roundViewer.sendNet({ t: "hello", v: 1, ...netLocalIdentity() }); @@ -4200,6 +4745,9 @@ function netChallengerHello(now) { // in the inbox for the session to drain. function netHandlePreSession(packet) { if (!packet || typeof packet !== "object") return; + // A packet from the lane we have just fallen out of. Both ends are watching + // the same cooldown, so this is a straggler in flight, not an offer. + if (Date.now() < netLaneBlockedUntil) return; if (packet.t === "hello" && !roundViewer) { netPeerHello = { name: packet.name, colors: packet.colors, at: Date.now() }; return; @@ -4266,6 +4814,7 @@ function updateVersusClaim(now) { roundViewerMode = ""; roundViewerDemo = null; roundViewerStatus = "CONNECTING"; + resetRoundViewerPlayout(); versusClaimArmedAt = 0; versusRoomName = name; globalThis.__oskiewarRemotePad = null; @@ -4329,6 +4878,11 @@ function gameBoot() { selecting = false; roundResult = ""; matchOver = false; + // Watching a fight IS gameplay for the person doing it. This was false on + // every watcher, and the whole match HUD hangs off it: no round clock, no + // VS or WAITING FOR HOST label, no "you are ..." seat line, no status + // tray. That is the "no state updates on screen" @jeffrey reported. + gameplayStarted = true; matchName = roundViewer.name || ""; spectatorQr = typeof qrcode === "function" ? spectatorCode("https://oskiewar.com/" + matchName) : spectatorQr; @@ -5420,7 +5974,7 @@ function updateBullets(dt, now, combat = true) { bullet.vy += 700 * dt; bullet.life -= dt * .22; if (bullet.life <= 0) { - impacts.push({ x: bullet.x, y: bullet.y, z: bullet.z, + spawnImpact({ x: bullet.x, y: bullet.y, z: bullet.z, life: .16, duration: .16, death: false, explosion: false }); continue; } @@ -5455,7 +6009,7 @@ function updateBullets(dt, now, combat = true) { bullet.life -= .18; if (Math.abs(bullet.vy) < 90) bullet.life = 0; if (bullet.life <= 0) { - impacts.push({ x: bullet.x, y: bullet.y, z: bullet.z, + spawnImpact({ x: bullet.x, y: bullet.y, z: bullet.z, life: .16, duration: .16, death: false, explosion: false }); } else playDrum("hat", .3, panAt(bullet.x, bullet.z)); // A splash bounces any bodyless head standing in it — including the @@ -5489,7 +6043,7 @@ function updateBullets(dt, now, combat = true) { Math.abs(a.z - b.z) <= 48) { a.life = 0; b.life = 0; - impacts.push({ x: (a.x + b.x) / 2, y: (a.y + b.y) / 2, + spawnImpact({ x: (a.x + b.x) / 2, y: (a.y + b.y) / 2, z: (a.z + b.z) / 2, life: .18, duration: .18, death: false, explosion: false }); playDrum("hat", 1, 0); @@ -5515,7 +6069,7 @@ function updateBullets(dt, now, combat = true) { fragment.owner = bullet.owner; fragment.hitAfter = now + 120000; bullet.life = 0; - impacts.push({ x: contact.secondPoint.x, y: contact.secondPoint.y, + spawnImpact({ x: contact.secondPoint.x, y: contact.secondPoint.y, z: contact.secondPoint.z, life: .18, duration: .18, death: false, explosion: false }); playDrum("hat", .72, panAt(fragment.x1, fragment.z1)); @@ -5551,7 +6105,7 @@ function updateBullets(dt, now, combat = true) { bullet.y = shield.y + ny * (shield.radius + 25); bullet.owner = target.pad; bullet.life = Math.max(bullet.life, .55); - impacts.push({ x: bullet.x, y: bullet.y, z: bullet.z, + spawnImpact({ x: bullet.x, y: bullet.y, z: bullet.z, life: .18, duration: .18, death: false, explosion: false }); breakShield(target, now); emitSignal("ballblock", target.pad, 1, 0); @@ -5574,7 +6128,7 @@ function updateBullets(dt, now, combat = true) { const segmentIndex = endpointHit && !headshot ? pointContact.segmentIndex : contact.segmentIndex; bullet.life = 0; - impacts.push({ x: contact.x, y: contact.y, z: contact.z, + spawnImpact({ x: contact.x, y: contact.y, z: contact.z, life: .2, duration: .2, death: headshot, explosion: false }); impactHitboxesUntil = Math.max(impactHitboxesUntil, now + 350000); @@ -5885,7 +6439,7 @@ function returnBall(ball, player, now, shielded, intensity = 1) { player.vy = Math.min(player.vy + incomingVy * .16, -Math.max(520, speed * .28)); player.grounded = false; } - impacts.push({ x: ball.x, y: ball.y, z: ball.z, + spawnImpact({ x: ball.x, y: ball.y, z: ball.z, life: .22, duration: .22, death: false, explosion: false }); impactHitboxesUntil = Math.max(impactHitboxesUntil, now + 350000); playDrum(shielded ? "block" : "clap", shielded ? 1.1 : 1.25, @@ -5917,7 +6471,7 @@ function crossWackBall(ball, hitters, now) { hit.player.lastButton = "CROSS WACK"; hit.player.lastButtonAt = now; } - impacts.push({ x: ball.x, y: ball.y, z: ball.z, + spawnImpact({ x: ball.x, y: ball.y, z: ball.z, life: .32, duration: .32, death: false, explosion: true }); impactHitboxesUntil = Math.max(impactHitboxesUntil, now + 350000); playDrum("clap", 1.55, panAt(ball.x, ball.z)); @@ -5942,7 +6496,7 @@ function bootBall(ball, player, now) { ball.safePlayers = 1 << player.pad; player.lastButton = dashing ? "DASH BOOT" : "BOOT"; player.lastButtonAt = now; - impacts.push({ x: ball.x, y: ball.y, z: ball.z, + spawnImpact({ x: ball.x, y: ball.y, z: ball.z, life: .16, duration: .16, death: false, explosion: false }); impactHitboxesUntil = Math.max(impactHitboxesUntil, now + 300000); playDrum("kick", 1.12, panAt(ball.x, ball.z)); @@ -5963,7 +6517,7 @@ function bounceBallOffBody(ball, player, now, segmentIndex = -1) { ball.safePlayers = 1 << player.pad; applyBodyHit(player, segmentIndex, ball.x - ball.vx, ball.lastHitBy, now, 760, 110, false); - impacts.push({ x: ball.x, y: ball.y, z: ball.z, + spawnImpact({ x: ball.x, y: ball.y, z: ball.z, life: .16, duration: .16, death: false, explosion: false }); impactHitboxesUntil = Math.max(impactHitboxesUntil, now + 300000); playDrum("block", .82, panAt(ball.x, ball.z)); @@ -6260,7 +6814,7 @@ function killPlayer(target, killerPad, now, cause = "KO") { emitSignal(cause === "BALLED" ? "balled" : "ko", killerPad, target.pad, players[killerPad]?.score || 0); roundCause = cause; - impacts.push({ x: target.x, y: target.y - 120, z: target.z, life: .55, + spawnImpact({ x: target.x, y: target.y - 120, z: target.z, life: .55, duration: .55, death: true, explosion: false }); playDrum("whoosh", 1.15, panPlayer(target)); emitSignal("killcam", killerPad, target.pad, 1); @@ -6298,7 +6852,7 @@ function groundPound(player, now) { player.lastButton = "GROUND POUND"; player.lastButtonAt = now; const terrainY = terrainFloorAt(player.x); - impacts.push({ x: player.x, y: terrainY, z: player.z, + spawnImpact({ x: player.x, y: terrainY, z: player.z, life: .58, duration: .58, death: false, explosion: true, blastRadius: radius, power }); impactHitboxesUntil = Math.max(impactHitboxesUntil, now + 350000); @@ -6329,7 +6883,7 @@ function groundPound(player, now) { item.vx = 0; item.vy = 0; item.serveAt = now + 1200000; - impacts.push({ x: item.x, y: item.y, z: item.z, + spawnImpact({ x: item.x, y: item.y, z: item.z, life: .22, duration: .22, death: false, explosion: false }); emitSignal("ballblock", player.pad, 1, power); } @@ -6366,7 +6920,7 @@ function resolveMelee(now) { fragment.owner = attacker.pad; fragment.hitAfter = now + 120000; attacker.attackHit = true; - impacts.push({ x: closest.secondPoint.x, y: closest.secondPoint.y, + spawnImpact({ x: closest.secondPoint.x, y: closest.secondPoint.y, z: closest.secondPoint.z, life: .18, duration: .18, death: false, explosion: false }); playDrum("clap", .82, panPlayer(attacker)); @@ -6386,7 +6940,7 @@ function resolveMelee(now) { } for (const { attacker, target, strike, headshot, segmentIndex } of contacts) { if (!target.alive && contacts.length < 2) continue; - impacts.push({ x: strike.x, y: strike.y, z: strike.z, + spawnImpact({ x: strike.x, y: strike.y, z: strike.z, life: .2, duration: .2, death: false, explosion: false }); impactHitboxesUntil = Math.max(impactHitboxesUntil, now + 350000); const away = Math.sign(target.x - attacker.x) || -attacker.facing; @@ -6468,7 +7022,7 @@ function resolvePogoAttacks(now) { attacker.vy = Math.min(attacker.vy, -985); attacker.lastButton = "POGO"; attacker.lastButtonAt = now; - impacts.push({ x: contact.x, y: contact.y, z: contact.z, + spawnImpact({ x: contact.x, y: contact.y, z: contact.z, life: .2, duration: .2, death: contact.headshot, explosion: false }); if (contact.headshot) killPlayer(target, attacker.pad, now, "POGO"); else applyBodyHit(target, contact.segmentIndex, attacker.x, @@ -6768,7 +7322,7 @@ function shieldBash(player, now) { target.blocking = false; target.knockVx += direction * 420; } - impacts.push({ x: (player.x + target.x) / 2, y: player.y - 90, + spawnImpact({ x: (player.x + target.x) / 2, y: player.y - 90, z: (player.z + target.z) / 2, life: .26, duration: .26, death: false, explosion: true, blastRadius: 180, power: .35 }); playDrum("block", 1.25, panPlayer(player)); @@ -6795,6 +7349,14 @@ function updatePlayer(player, pad, dt, now) { } if (!player.alive) { player.previous = pad.down.slice(); + // A body that dies off the ground still has to come down. Everything + // below this branch is skipped while dead, gravity included, which is + // right in a round — the round ends and rebuilds the body, and the + // killcam wants the pose held. The waiting room has no round, so a + // fighter blasted out of a jump hung in mid-air in its jump pose for the + // whole respawn beat. @jeffrey: "it seems possible to die in the waiting + // room but keep jumping stilll" — that is what a frozen hop looks like. + if (lobbyActive() && now < player.respawnAt) settleCorpse(player, dt); if (now >= player.respawnAt) { player.x = player.spawnX; player.y = terrainFloorAt(player.spawnX); @@ -7771,7 +8333,7 @@ function finishSurvival(now, result) { if (result === "LAVA") { runner.alive = false; runner.stance = "HIT"; - impacts.push({ x: runner.x, y: survivalLavaY, z: runner.z, + spawnImpact({ x: runner.x, y: survivalLavaY, z: runner.z, life: 1.2, duration: 1.2, death: true, explosion: true, blastRadius: 240, power: .8 }); playDrum("kick", 1.25, panPlayer(runner)); @@ -9125,8 +9687,11 @@ function runnerContactToPoint(player, t, px, py, pz = 0) { return { headDistance, bodyDistance, segmentIndex }; } -function detachPart(player, part, geometry, sourceX, now) { - if (!hasPart(player, part)) return; +// The flying half of a dismemberment, separated from the bookkeeping half so +// that a watcher can spawn the same debris. A watcher is told WHICH limb came +// off (`removedParts` rides the wire) but not where its pieces went, and the +// pieces are the part of a limb loss anybody actually sees. +function spawnDetachedPart(player, part, geometry, sourceX, now) { const direction = Math.sign(player.x - sourceX) || player.facing || 1; for (const segment of geometry.segments.filter((item) => item.part === part && !item.hitboxOnly)) { @@ -9139,6 +9704,11 @@ function detachPart(player, part, geometry, sourceX, now) { spin: direction * (3.5 + detachedParts.length % 4), life: 2.6, part, owner: player.pad, heldBy: -1, hitAfter: now + 180000 }); } +} + +function detachPart(player, part, geometry, sourceX, now) { + if (!hasPart(player, part)) return; + spawnDetachedPart(player, part, geometry, sourceX, now); player.removedParts.push(part); player.partDamage[part] = Math.max(player.partDamage[part] || 0, part === "torso" ? 3 : 2); @@ -9249,7 +9819,11 @@ function applyBodyHit(target, segmentIndex, sourceX, sourcePad, now, emitSignal("bodyhit", sourcePad, target.pad, segmentIndex); } -function updateDetachedParts(dt) { +// `combat` is false on a watcher: the limbs still tumble, settle and draw, +// but they do not damage anybody. The fight they belong to is being decided +// on another machine, and a watcher that scored its own hits would fight the +// wire for the rest of the round. Same switch `updateBullets` already has. +function updateDetachedParts(dt, combat = true) { const now = runtime().monotonicUs; for (const fragment of detachedParts) { if (fragment.heldBy >= 0) { @@ -9299,7 +9873,7 @@ function updateDetachedParts(dt) { fragment.spin *= .78; } const speed = Math.hypot(fragment.vx, fragment.vy); - if (speed > 650 && now >= (fragment.hitAfter || 0)) { + if (combat && speed > 650 && now >= (fragment.hitAfter || 0)) { for (const target of players) { if (!target.alive || target.pad === fragment.owner) continue; const contact = runnerContactToPoint(target, @@ -9319,8 +9893,11 @@ function updateDetachedParts(dt) { } // Dismembered anatomy remains a physical arena object. It can settle, // be picked up again, thrown, and strike either fighter for the rest of - // the round rather than evaporating on a cosmetic timer. - fragment.life = Math.max(fragment.life, 1); + // the round rather than evaporating on a cosmetic timer. On a watcher it + // is only scenery, and scenery that never expires is a leak: the wire + // says which limbs are gone, not which pieces are still worth drawing. + if (combat) fragment.life = Math.max(fragment.life, 1); + else fragment.life -= dt; } for (let index = detachedParts.length - 1; index >= 0; index--) { if (detachedParts[index].life > 0 || detachedParts[index].heldBy >= 0) continue; @@ -12355,7 +12932,11 @@ function drawDebugBug(x, y, scale = 1) { function spectatorQrBox() { if (typeof capabilities === "function" && capabilities().socialPreview) return null; - if (!versusLane()) + // A watcher is looking at the one thing the code is for. `versusLane()` is a + // fact about the fight on THIS machine, and a watcher's machine is not in + // one — so an untimed versus round, watched, used to lose its address at + // exactly the moment somebody might want to pass it on. + if (!versusLane() && !(roundViewer && roundViewerMode === "LIVE")) if (shellMode === "GAME" && !roundIsTimed()) return null; if (!spectatorQr || typeof spectatorQr.getModuleCount !== "function") return null; @@ -12462,6 +13043,127 @@ function drawAgentLink(x, y, scale = 1, count = 1) { Math.max(12, Math.round(13 * scale)), ...shell); } +// Connection health, as four bars and one number — the thing every online +// game owes a player and oskiewar had no way to say. @jeffrey: "can we show a +// connection health like wifi meter, on the top right of the game". +// +// The number is whatever this seat can honestly measure, which is not the same +// on both lanes: +// +// A rollback fight knows its round trip exactly (see netSendInputs: our own +// wall mark comes home on the rival's next packet), so it reports ping. +// A grandstand or an older-build guest never gets a packet back, so it can +// only measure the wire it is being served: how irregular the frames are and +// how many of them the relay ate. It reports jitter, and loss when there is +// any. +// A host in the streamed lane hears the rival only through pads, so its one +// honest reading is how long ago the last one arrived. +// +// Nothing is invented. A lane with no rival on it draws nothing at all. +const netHealthPalette = [[245, 90, 96], [250, 200, 80], [180, 235, 120], + [108, 240, 168]]; + +function netHealth() { + if (netSession) { + const stats = netSession.stats; + const ping = Math.round(stats.pingMs || 0); + // Nothing has come home yet; a meter that reads four bars before it has + // measured anything is a lie told at exactly the moment somebody is + // deciding whether the connection is good. + let bars = !stats.pings ? 0 + : ping < 50 ? 4 : ping < 100 ? 3 : ping < 170 ? 2 : 1; + // A desync means the two machines are no longer playing the same fight. + // The wire may be fast and the connection is still not healthy. + if (bars && stats.desyncs) bars = Math.min(bars, 1); + return { bars, label: stats.pings ? ping + "MS" : "···", + note: stats.desyncs ? "DESYNC" : "" }; + } + if (roundViewerMode === "LIVE" && roundViewerFrames.length) { + const jitter = Math.round(roundViewerJitterMs); + const loss = roundViewerLossPct; + const bars = jitter < 12 && loss < 3 ? 4 + : jitter < 30 && loss < 10 ? 3 + : jitter < 60 && loss < 25 ? 2 : 1; + return { bars, label: "±" + jitter + "MS", + note: loss ? loss + "% LOST" : "" }; + } + // The host's side of a streamed fight. Only while somebody is actually + // sitting in the second chair — an empty room has no connection to rate. + if (versusLane() && !roundViewer) { + const remote = globalThis.__oskiewarRemotePad; + if (!remote || !Number.isFinite(remote.at)) return null; + const age = Date.now() - remote.at; + if (age > versusChallengerGraceMs) return null; + return { bars: age < 150 ? 4 : age < 400 ? 3 : age < 1000 ? 2 : 1, + label: age + "MS", note: "" }; + } + return null; +} + +// Where the meter stands, and whether it stands at all. Split out so the rest +// of the top-right corner can measure around it: with no QR up the meter owns +// that corner, and a label that assumed the corner was free landed on it. +function netHealthBox() { + if (typeof capabilities === "function" && + (capabilities().socialPreview || capabilities().replayOven === true)) + return null; + if (shellMode !== "GAME") return null; + const health = netHealth(); + if (!health) return null; + const safe = hudSafeRect(); + const qr = spectatorQrBox(); + const compact = compactLayout(); + const bar = compact ? 5 : 7; + const gap = compact ? 3 : 4; + const tall = compact ? 19 : 26; + const count = 4; + const width = count * bar + (count - 1) * gap; + // Under the code, never over it: the QR is the address a friend types and + // the meter is a readout about the friend who already did. + const top = (qr ? qr.top + qr.size + 8 : safe.top) + 2; + // Sized off the bars rather than the HUD's own type scale: the reading is a + // caption to the meter, and at hudTypeSize it swamped the thing it labels. + const size = Math.max(14, Math.round(tall * .8)); + const label = health.note ? health.label + " " + health.note : health.label; + return { health, bar, gap, tall, count, width, top, base: top + tall, + right: safe.right, left: safe.right - Math.max(width, + handleWidth(label, size)), size, label }; +} + +// The left edge of whatever owns the top-right corner — the round's QR, or +// the connection meter when no code is up. Anything else that wants to sit up +// there measures from here instead of from the safe rect, or it draws on top +// of the corner's furniture. +function hudTopRightLeft() { + const qr = spectatorQrBox(); + if (qr) return qr.left; + return netHealthBox()?.left ?? hudSafeRect().right; +} + +function drawNetHealth(ink) { + const box = netHealthBox(); + if (!box) return; + const { health, bar, gap, tall, count, width, base, right, size, label } = box; + const lit = netHealthPalette[Math.max(0, health.bars - 1)]; + const dim = mixColor([58, 64, 78], [196, 201, 212], visualTheme.light); + const previousDepth = triangleDepth; + triangleDepth = -1.43; + for (let index = 0; index < count; index++) { + const height = Math.round(tall * (index + 1) / count); + const x = right - width + index * (bar + gap); + screenRect(x + 2, base - height + 2, bar, height, [24, 26, 34]); + screenRect(x, base - height, bar, height, + index < health.bars ? lit : dim); + } + const labelWidth = handleWidth(label, size); + const labelY = base + 7; + typeWrite(label, right - labelWidth + 2, labelY + 2, size, + ...contrastShadow(ink)); + typeWrite(label, right - labelWidth, labelY, size, + ...(health.note ? netHealthPalette[0] : ink)); + triangleDepth = previousDepth; +} + function drawSpectatorQr(ink, placement = null) { if (typeof capabilities === "function" && capabilities().socialPreview) return; const qr = placement || spectatorQrBox(); @@ -12740,8 +13442,13 @@ function gamePaint() { const viewerLabel = roundViewer.seat === "challenger" ? roundViewerMode === "LIVE" ? "VS" : "WAITING FOR HOST" : roundViewerMode || roundViewerStatus; - typeWrite(viewerLabel, hud.right - viewerLabel.length * 18, hud.top + 7, - 24, ...(roundViewerMode === "LIVE" ? [210, 42, 62] : titleInk)); + // Left of the corner's furniture, never on it: that corner is the + // round's QR, or the connection meter when there is no code up. + const labelSize = 24; + const labelRight = hudTopRightLeft() - 14; + typeWrite(viewerLabel, + labelRight - handleWidth(viewerLabel, labelSize), hud.top + 7, + labelSize, ...(roundViewerMode === "LIVE" ? [210, 42, 62] : titleInk)); // The chair-holder plays through this feed: say which body is theirs // while the matchup is still fresh, then get out of the fight's way. if (roundViewer.seat === "challenger" && roundViewerMode === "LIVE" && @@ -12762,9 +13469,7 @@ function gamePaint() { const label = "update ready"; const size = Math.round(hudTypeSize * .58); const width = handleWidth(label, size); - const qrBox = spectatorQrBox(); - const right = qrBox ? qrBox.left - 14 : hud.right; - const x = right - width; + const x = hudTopRightLeft() - 14 - width; const y = hud.top + hudTypeSize + 12; typeWrite(label, x + 2, y + 3, size, ...contrastShadow(titleInk)); typeWrite(label, x, y, size, ...titleInk); @@ -12943,6 +13648,7 @@ function gamePaint() { // frame, and an instruction painted under it was an instruction hidden. if (!reelMinimal) drawVersusHud(t, titleInk, run); drawSpectatorQr(titleInk); + if (!reelMinimal) drawNetHealth(titleInk); drawTouchControls(); } } diff --git a/xbox/live/round-room.mjs b/xbox/live/round-room.mjs index 8c8a45f521..fda42ebd86 100644 --- a/xbox/live/round-room.mjs +++ b/xbox/live/round-room.mjs @@ -32,7 +32,13 @@ export class RoundRoom { this.seatRetryAt = 0; this.seat = ""; this.socket = null; - this.timer = null; + // Two named slots, not one shared one. A versus room has no stored replay + // and 404s forever, so the 1800 ms replay retry below used to hold the + // only slot almost all the time — and a socket closing in that window + // asked for a reconnect that was silently dropped, which is how a + // spectator or a walked-back challenger wedged on "already has a + // challenger" and never came back. + this.timers = { reconnect: null, replay: null }; this.listener = null; this.live = false; this.lastState = null; @@ -63,6 +69,7 @@ export class RoundRoom { open() { if (this.stopped || !this.WebSocketImpl) return; + this.clear("reconnect"); const generation = ++this.generation; const id = `ow-${this.name}`; const role = this.role === "challenger" ? "&role=challenger" : ""; @@ -137,7 +144,7 @@ export class RoundRoom { this.live = false; this.seat = ""; this.loadDemo(); - this.schedule(() => this.open(), 1200); + this.schedule("reconnect", () => this.open(), 1200); }; socket.addEventListener?.("close", closed); socket.addEventListener?.("error", () => socket.close?.()); @@ -186,17 +193,22 @@ export class RoundRoom { return; } } catch {} - if (!this.live || force) this.schedule(() => this.loadDemo(force), 1800); + if (!this.live || force) this.schedule("replay", () => this.loadDemo(force), 1800); } - schedule(action, delay) { - if (this.timer || this.stopped) return; - this.timer = setTimeout(() => { - this.timer = null; + schedule(slot, action, delay) { + if (this.timers[slot] || this.stopped) return; + this.timers[slot] = setTimeout(() => { + this.timers[slot] = null; action(); }, delay); } + clear(slot) { + if (slot) { clearTimeout(this.timers[slot]); this.timers[slot] = null; return; } + for (const name of Object.keys(this.timers)) this.clear(name); + } + move(value) { const name = String(value || "").replace(/^ow-/, ""); if (!ROUND_NAME.test(name) || name === this.name) return; @@ -205,8 +217,7 @@ export class RoundRoom { this.live = false; this.lastState = null; this.deliverySeen = new Set(); - clearTimeout(this.timer); - this.timer = null; + this.clear(); ++this.generation; this.socket?.close?.(1000, "next round"); this.socket = null; @@ -219,8 +230,7 @@ export class RoundRoom { stop() { this.stopped = true; ++this.generation; - clearTimeout(this.timer); - this.timer = null; + this.clear(); this.seat = ""; this.socket?.close?.(1000, "leaving"); this.socket = null; diff --git a/xbox/live/social/manifest.json b/xbox/live/social/manifest.json index 15323ebbe2..01c0350a6e 100644 --- a/xbox/live/social/manifest.json +++ b/xbox/live/social/manifest.json @@ -1,7 +1,7 @@ { "format": "ac.oskiewar.social-preview", "version": 2, - "build": "c5096934c449ae32", + "build": "64797fc2f28469ac", "theme": "light", "imageWidth": 1200, "imageHeight": 630, diff --git a/xbox/live/social/oskiewar-title.jpg b/xbox/live/social/oskiewar-title.jpg index c537e1ce38092025cb3288134ecc9ba6811426e9..1e2629066adb1440719f294e88b54f0be9a9a98b 100644 GIT binary patch literal 105103 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 E0BgPCdjJ3c literal 105890 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 z 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 z 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

5J&}d;iQxAYWk(KI8d*BDu$V{7_-So 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

VR}`{-tn?^dx-w&U#M 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⪚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%0AGtJhS?DdrpJ& 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 Ii*U netStateHash(), + netplayForceHash: (frame, hash) => netNotePeerHash(netSession, frame, hash), + netplayLaneBlocked: () => netLaneBlockedUntil > Date.now(), netplaySnapshot: () => netSnapshot(), netplayRestore: (saved) => netRestore(saved), netplayScalarNames: () => Object.keys(netSimScalars()), @@ -221,6 +223,51 @@ test("two seats fed the same pads over a laggy wire stay one fight", () => { assert.equal(names[1], "@RIVAL"); }); +// @jeffrey: "so we have an understanding of ping / connection to the other +// player?" Now yes, and it costs one field each way. A seat stamps its own +// wall clock on every input packet; the rival holds that mark and sends it +// back on its next one. The round trip is therefore a subtraction in the +// asking seat's OWN clock, so the two machines never have to agree on what +// time it is — which they cannot, and which is why nothing measured this +// before. +test("each seat measures its own round trip from the rival's echo", () => { + const host = createSeat(); + const guest = createSeat(); + const wire = createWire(host, guest, { delay: 4 }); + const realNow = Date.now; + let wall = 1785870000000; + Date.now = () => wall; + try { + beginPair(host, guest, wire); + assert.equal(host.fight.netplayState().stats.pings, 0, + "nothing has come home yet"); + for (let frame = 0; frame < 240; frame++) { + wall += 17; + host.press(...choreography(0, host.fight.netplayState().frame)); + guest.press(...choreography(1, guest.fight.netplayState().frame)); + host.tick(); + guest.tick(); + wire.step(); + } + for (const seat of [host, guest]) { + const stats = seat.fight.netplayState().stats; + assert.ok(stats.pings > 10, `echoes keep coming: ${stats.pings}`); + // Eight ticks of wire each way plus the hold until the rival's next + // tick: a couple of hundred milliseconds on this bench, and nowhere + // near the four-second silence that ends a fight. + assert.ok(stats.pingMs > 50 && stats.pingMs < 500, + `and read as a real duration: ${stats.pingMs}`); + } + // A wire with nothing on it is not a fast wire. The reading stops + // updating rather than drifting toward zero. + const held = host.fight.netplayState().stats.pingMs; + for (let frame = 0; frame < 20; frame++) { wall += 17; host.tick(); } + assert.equal(host.fight.netplayState().stats.pingMs, held); + } finally { + Date.now = realNow; + } +}); + test("a seat that stops hearing the rival waits instead of guessing forever", () => { const host = createSeat(); const guest = createSeat(); @@ -239,6 +286,54 @@ test("a seat that stops hearing the rival waits instead of guessing forever", () assert.ok(later.frame >= frozen, "the host never rewinds its own frame count"); }); +// A desync used to be counted and lived with: two machines no longer playing +// the same fight went on playing their different ones, and the two people +// found out when one died on a screen where they had not been hit. The repair +// is to stop pretending there are two authorities — both seats drop to the +// lane where the host is the only one, and stay out of the rollback lane long +// enough that the next hello is not the same divergence one second later. +test("a desync drops both seats to the lane with one authority", () => { + const host = createSeat(); + const guest = createSeat(); + const wire = createWire(host, guest, { delay: 2 }); + beginPair(host, guest, wire); + run(host, guest, wire, 90); + const confirmed = host.fight.netplayState().confirmed; + assert.ok(confirmed > 30); + // Seats hash every thirtieth confirmed frame, so the newest one both of + // them have actually written down is the last multiple of thirty. + const hashed = Math.floor(confirmed / 30) * 30; + // The rival reports a state hash that is not ours at a frame neither seat + // will roll back again. There is no honest way to reconcile that. + host.fight.netplayForceHash(hashed, 0x5ea51de); + assert.equal(host.fight.netplayState(), null, + "the host left the rollback lane at once"); + assert.ok(host.fight.netplayLaneBlocked(), + "and will not be dealt back into it"); + // The other seat hears about it rather than waiting out the four-second + // silence, and takes the same exit — one wire delay later, not four + // seconds later. + for (let step = 0; step < 6 && guest.fight.netplayState(); step++) { + wire.step(); + guest.tick(); + } + assert.equal(guest.fight.netplayState(), null); + assert.ok(guest.fight.netplayLaneBlocked()); + // A rollback seat sends net packets, not pads, so the host has heard + // nothing on the pad wire for the whole fight. Read literally that is an + // empty chair, and an empty chair resets the match — the grace covers the + // changeover so a repaired desync does not also cost the score. + const wins = host.fight.fighters().map((fighter) => fighter.roundWins); + for (let frame = 0; frame < 60; frame++) host.tick(); + assert.equal(host.fight.roundState().fightOpponent, "versus", + "the host keeps the fight rather than dropping to the lobby"); + assert.deepEqual(host.fight.fighters().map((fighter) => fighter.roundWins), + wins, "and keeps the score"); + // A straggler from the closed lane is not an invitation to reopen it. + host.fight.netplayPreSession({ t: "hello", v: 1, name: "@RIVAL", colors: [] }); + assert.equal(host.fight.netplayState(), null); +}); + test("the sim state list is not empty and covers the round clock", () => { const seat = createSeat(); const names = seat.fight.netplayScalarNames(); diff --git a/xbox/live/tests/oskiewar.test.mjs b/xbox/live/tests/oskiewar.test.mjs index a6fb42f278..c8befad9af 100644 --- a/xbox/live/tests/oskiewar.test.mjs +++ b/xbox/live/tests/oskiewar.test.mjs @@ -88,7 +88,7 @@ function createFight(startImmediately = true, enterGame = true, const drawLine = (...values) => lines.push(values); const fight = new Function( "runtime", "gamepad", "capabilities", "telemetry", "gameSignal", "saveReplay", "publishLive", "analytics", "drum", "wipe", "box", "line", "triangle", "triangle3d", "triangles3d", "write", "systemWrite", "gameView", - `${source}\nreturn { boot, sim, paint, playDrum, captureClientError, drawDetachedPart, clientErrorState: () => clientError, clientErrorDetailState: () => clientErrorDetail, errorReportStatus, errorRestartSeconds, combatLegend, commandFade, dummyPopLine, filledDisc, spectatorCode, runShadow, glyphColor, contrastShadow, stateDumpRows, dumpTokens, dumpTokenInk, clientErrorDumpState: () => ({ url: clientErrorDumpUrl, modules: clientErrorQr ? clientErrorQr.getModuleCount() : 0 }), controlLocale, animatedTitleColor, comicGlyphAdvance, handleWidth, displayTheme, players, ball, balls, bullets, grenades, gunPickups, grenadePickups, bodyTrees, treeFruit, detachedParts, runnerWorldGeometry, fighterAnimationPhase, runnerDistanceToPoint, segmentSegmentClosest, meleeLimbContact, damagePart, isPogo, isHeadOnly, resultCardText, pacificTimeLabel, projectedBallRadius, deathCinematicState: () => deathCinematic ? { ...deathCinematic, age: deathCinematicAge() } : null, disableBall: () => { ballEnabled = false; for (const item of balls) item.active = false; }, enableBall: (index = 0) => { ballEnabled = true; const item = balls[index]; item.active = true; item.serveAt = 0; item.safeUntil = 0; item.safePlayers = 0; }, setWind: (value) => { windAcceleration = value; }, setDebugHitboxes: (value) => { debugHitboxes = Boolean(value); }, debugState: () => debugHitboxes, windState: () => ({ direction: windDirection, mph: windMph }), nextRound: () => resetRound(runtime().monotonicUs, false), knockOut: () => killPlayer(players[1], 0, runtime().monotonicUs, "KO"), selfBallDummy: () => killPlayer(players[1], 1, runtime().monotonicUs, "BALLED"), startAttack: (kind) => startMelee(players[0], kind, runtime().monotonicUs), bootFirstBall: () => bootBall(ball, players[0], runtime().monotonicUs), wackBall: () => { players[0].attackKind = "KICK"; returnBall(ball, players[0], runtime().monotonicUs, false); }, shieldBall: () => returnBall(ball, players[0], runtime().monotonicUs, true), crossWackBall: (contact = 1) => crossWackBall(ball, players.map((player) => ({ player, contact })), runtime().monotonicUs), enterGame: () => enterGame(runtime().monotonicUs), shellState: () => ({ mode: shellMode }), startFight: () => { shellMode = "GAME"; selecting = false; players[1].npc = false; players[1].bot = false; applyRoster(players[1], 2); startReplay(runtime().monotonicUs); matchBallType = "soccer"; resetRound(runtime().monotonicUs, true); }, startFightAgainst: (kind) => startFightAgainst(kind, runtime().monotonicUs), startSurvival: (bot = false) => startSurvivalRun(runtime().monotonicUs, bot), survivalState: () => ({ active: survivalActive(), lavaY: survivalLavaY, height: survivalHeight, bestHeight: survivalBestHeight, peakLevel: survivalPeakLevel }), palSelect: () => PAL_SELECT, titleToyState: () => ({ title: titleToys.map((toy) => ({ ...toy })), prompt: promptToys.map((toy) => ({ ...toy })), bounce: promptBounce }), selectionState: () => ({ selecting, step: selectionStep, cursor: selectionCursor, ready: selectionReady.slice() }), selectionOptions: () => selectionOptions().map((option) => ({ kind: option.kind, label: option.fighter.handle, disabled: Boolean(option.disabled) })), cameraState: () => ({ cameraWidth, cameraCenter, cameraCenterY, cameraAspect, stageRight, stageTop, stageBottom, viewHeight, cameraContainFloor, doll: { width: cameraDoll.width, target: { ...cameraDoll.target }, position: { ...cameraDoll.position }, perspective: cameraDoll.perspective, roll: cameraDoll.roll } }), screenBounds: () => players.map((player) => runnerScreenBounds(player, runtime().monotonicUs / 1e6)), dumpTokens, dumpTokenInk, drawCornerCrops, playerStatLines, playerHandleLayout, statStackHeight, setBallKind: (type) => { matchBallType = type; resetBalls(runtime().monotonicUs); }, ballTypeState: () => matchBallType, seriesBallType, seriesState: () => seriesName, sessionState: () => sessionName, selectionLayout: selectionTouchLayout, actionSafeRect, hudSafeRect, projectPoint, terrainSpan, stageGeometry: () => ({ platformY, platformLeft, platformRight, floorY, ceilingY, worldLeft, worldRight, worldNear, worldFar }), platformTable: () => platforms.map((rung) => ({ ...rung })), backToTitle: () => returnToTitle(runtime().monotonicUs, "test"), botSceneState: (index = 0) => players[index].botScene, botSceneNow: (index = 0) => botScene(players[index], players[index ? 0 : 1], runtime().monotonicUs), botSubgoalState: (index = 0) => players[index].botSubgoal, frameRect: () => fighterFrameRect(), roundState: () => ({ roundResult, roundElapsedUs, matchOver }), viewerState: () => ({ active: Boolean(roundViewer), mode: roundViewerMode, status: roundViewerStatus, name: matchName }), instantReplayState: () => instantReplay ? { active: true, paused: instantReplay.paused, cursor: instantReplay.cursor, frames: instantReplay.frames.length, speed: instantReplay.speed, action: instantReplay.action } : { active: false }, replayFrameCount: () => roundReplayFrames.length, inputPadDown: (index) => inputPads[index]?.down?.slice() || [], startSelfPlay: () => startSelfPlay(runtime().monotonicUs), selfPlayState: () => selfPlay, gameSpeedState: () => gameSpeed, replayActionCurve, replayRampStep, startInstantReplay: (now) => startInstantReplay(now) };` + `${source}\nreturn { boot, sim, paint, playDrum, captureClientError, drawDetachedPart, clientErrorState: () => clientError, clientErrorDetailState: () => clientErrorDetail, errorReportStatus, errorRestartSeconds, combatLegend, commandFade, dummyPopLine, filledDisc, spectatorCode, runShadow, glyphColor, contrastShadow, stateDumpRows, dumpTokens, dumpTokenInk, clientErrorDumpState: () => ({ url: clientErrorDumpUrl, modules: clientErrorQr ? clientErrorQr.getModuleCount() : 0 }), controlLocale, animatedTitleColor, comicGlyphAdvance, handleWidth, displayTheme, players, ball, balls, bullets, grenades, impacts, gunPickups, grenadePickups, bodyTrees, treeFruit, detachedParts, runnerWorldGeometry, fighterAnimationPhase, runnerDistanceToPoint, segmentSegmentClosest, meleeLimbContact, damagePart, isPogo, isHeadOnly, resultCardText, pacificTimeLabel, projectedBallRadius, deathCinematicState: () => deathCinematic ? { ...deathCinematic, age: deathCinematicAge() } : null, disableBall: () => { ballEnabled = false; for (const item of balls) item.active = false; }, enableBall: (index = 0) => { ballEnabled = true; const item = balls[index]; item.active = true; item.serveAt = 0; item.safeUntil = 0; item.safePlayers = 0; }, setWind: (value) => { windAcceleration = value; }, setDebugHitboxes: (value) => { debugHitboxes = Boolean(value); }, debugState: () => debugHitboxes, windState: () => ({ direction: windDirection, mph: windMph }), nextRound: () => resetRound(runtime().monotonicUs, false), knockOut: () => killPlayer(players[1], 0, runtime().monotonicUs, "KO"), selfBallDummy: () => killPlayer(players[1], 1, runtime().monotonicUs, "BALLED"), startAttack: (kind) => startMelee(players[0], kind, runtime().monotonicUs), bootFirstBall: () => bootBall(ball, players[0], runtime().monotonicUs), wackBall: () => { players[0].attackKind = "KICK"; returnBall(ball, players[0], runtime().monotonicUs, false); }, shieldBall: () => returnBall(ball, players[0], runtime().monotonicUs, true), crossWackBall: (contact = 1) => crossWackBall(ball, players.map((player) => ({ player, contact })), runtime().monotonicUs), enterGame: () => enterGame(runtime().monotonicUs), shellState: () => ({ mode: shellMode }), startFight: () => { shellMode = "GAME"; selecting = false; players[1].npc = false; players[1].bot = false; applyRoster(players[1], 2); startReplay(runtime().monotonicUs); matchBallType = "soccer"; resetRound(runtime().monotonicUs, true); }, startFightAgainst: (kind) => startFightAgainst(kind, runtime().monotonicUs), startSurvival: (bot = false) => startSurvivalRun(runtime().monotonicUs, bot), survivalState: () => ({ active: survivalActive(), lavaY: survivalLavaY, height: survivalHeight, bestHeight: survivalBestHeight, peakLevel: survivalPeakLevel }), palSelect: () => PAL_SELECT, titleToyState: () => ({ title: titleToys.map((toy) => ({ ...toy })), prompt: promptToys.map((toy) => ({ ...toy })), bounce: promptBounce }), selectionState: () => ({ selecting, step: selectionStep, cursor: selectionCursor, ready: selectionReady.slice() }), selectionOptions: () => selectionOptions().map((option) => ({ kind: option.kind, label: option.fighter.handle, disabled: Boolean(option.disabled) })), cameraState: () => ({ cameraWidth, cameraCenter, cameraCenterY, cameraAspect, stageRight, stageTop, stageBottom, viewHeight, cameraContainFloor, doll: { width: cameraDoll.width, target: { ...cameraDoll.target }, position: { ...cameraDoll.position }, perspective: cameraDoll.perspective, roll: cameraDoll.roll } }), screenBounds: () => players.map((player) => runnerScreenBounds(player, runtime().monotonicUs / 1e6)), dumpTokens, dumpTokenInk, drawCornerCrops, playerStatLines, playerHandleLayout, statStackHeight, setBallKind: (type) => { matchBallType = type; resetBalls(runtime().monotonicUs); }, ballTypeState: () => matchBallType, seriesBallType, seriesState: () => seriesName, sessionState: () => sessionName, selectionLayout: selectionTouchLayout, actionSafeRect, hudSafeRect, projectPoint, terrainSpan, stageGeometry: () => ({ platformY, platformLeft, platformRight, floorY, ceilingY, worldLeft, worldRight, worldNear, worldFar }), platformTable: () => platforms.map((rung) => ({ ...rung })), backToTitle: () => returnToTitle(runtime().monotonicUs, "test"), enterLobby: () => beginVersusLobby(runtime().monotonicUs), lobbyState: () => ({ lane: fightOpponent, lobby: lobbyActive() }), botSceneState: (index = 0) => players[index].botScene, botSceneNow: (index = 0) => botScene(players[index], players[index ? 0 : 1], runtime().monotonicUs), botSubgoalState: (index = 0) => players[index].botSubgoal, frameRect: () => fighterFrameRect(), roundState: () => ({ roundResult, roundElapsedUs, matchOver, gameplayStarted, roundStartedAt, timed: roundIsTimed(), introAge: runtime().monotonicUs - roundStartedAt, introLimit: roundIntroDurationUs() }), viewerState: () => ({ active: Boolean(roundViewer), mode: roundViewerMode, status: roundViewerStatus, name: matchName }), netHealth, qrBox: spectatorQrBox, wireHealth: () => ({ gapMs: roundViewerGapMs, jitterMs: roundViewerJitterMs, lossPct: roundViewerLossPct, delayMs: roundViewerDelayMs, queued: roundViewerFrames.length }), instantReplayState: () => instantReplay ? { active: true, paused: instantReplay.paused, cursor: instantReplay.cursor, frames: instantReplay.frames.length, speed: instantReplay.speed, action: instantReplay.action } : { active: false }, replayFrameCount: () => roundReplayFrames.length, inputPadDown: (index) => inputPads[index]?.down?.slice() || [], startSelfPlay: () => startSelfPlay(runtime().monotonicUs), selfPlayState: () => selfPlay, gameSpeedState: () => gameSpeed, replayActionCurve, replayRampStep, startInstantReplay: (now) => startInstantReplay(now) };` )( () => ({ monotonicUs: now, unixMs: 1785870000000 + Math.floor(now / 1000), simCount: Math.floor(now / 16667), paintCount: 0, @@ -1544,6 +1544,401 @@ test("raw live and demo rooms run through the canonical game engine", () => { assert.equal(fight.players[0].x, 5400); }); +// The grandstand used to paint each frame the instant it landed and then +// extrapolate on the last velocity until the next one — bodies coasting +// through the floor and snapping back several times a second, and every +// correction smeared over two paints because the frame arrived mid-render. +// Now a frame is filed with its arrival time and the picture reads a clock +// held a little behind the newest of them, so a pose is always a blend of two +// frames the host really sent. +test("a watcher blends two wire frames instead of snapping to the newest", () => { + let deliver; + const bridge = { name: "bafegu-dorimi-kunapo", + start(listener) { deliver = listener; return () => {}; } }; + const realNow = Date.now; + let wall = 1785870000000; + Date.now = () => wall; + try { + const { fight, tick } = createFight(false, false, "web", bridge); + const frame = (seq, x, shot) => ({ format: "ac.oskiewar.live", version: 1, + seq, at: wall, phase: "fight", fighters: [ + { name: "@FIFI", color: [209, 100, 216], x, y: 12000, z: 0, vx: 600, + vy: 0, vz: 0, facing: 1, alive: true, grounded: true, ducking: false, + blocking: false, score: 0, roundWins: 0, attack: "", + removedParts: [], hit: 0, blockFlash: 0, attackTicks: 0 }, + { name: "@SAT", color: [130, 204, 213], x: 6900, y: 12000, z: 0, + vx: 0, vy: 0, vz: 0, facing: -1, alive: true, grounded: true, + ducking: false, blocking: false, score: 0, roundWins: 0, attack: "", + removedParts: [], hit: 0, blockFlash: 0, attackTicks: 0 }], + ball: { x: 6000, y: 11958, z: 0, radius: 42, active: false }, + camera: { x: 6000, y: 9600, width: 2200 }, + wind: { direction: -1, mph: 0 }, round: { remainingMs: 22000, result: "" }, + shots: [[shot, 11900, 0, shot - 70, 11900, 4200, 0, 1, 4]], lobs: [] }); + const send = (content) => + deliver({ type: "state", content, live: true, roundName: bridge.name }); + send(frame(1, 5100, 6000)); + wall += 33; + send(frame(2, 5120, 6140)); + // The clock sits about a frame and the measured jitter behind the newest + // arrival — roughly 68 ms here — so let the wall run until that clock + // lands between the pair rather than past it. + wall += 52; + tick(); + const watched = fight.players[0]; + assert.ok(watched.x > 5100 && watched.x < 5120, + `blended, not snapped: ${watched.x}`); + // A shot the host never sent used to be invisible. It is here, it wears + // the kind it was fired as, and it is carried along its own reported + // velocity rather than stepped 140 units at each arrival. + assert.equal(fight.bullets.length, 1); + assert.equal(fight.bullets[0].rubber, true); + assert.equal(fight.bullets[0].owner, 1); + assert.ok(fight.bullets[0].x > 6000 && fight.bullets[0].x < 6140, + `a round in flight: ${fight.bullets[0].x}`); + assert.ok(fight.bullets[0].x - fight.bullets[0].previousX > 0, + "and it keeps both ends of its streak"); + // Past the buffer the picture holds rather than inventing motion: the + // newest frame is the truth, coasted no further than the dead-reckoning + // horizon whatever the gap grows to. + wall += 4000; + tick(); + assert.ok(fight.players[0].x >= 5120, "the newest frame stands"); + assert.ok(fight.players[0].x < 5120 + 600 * .2, + `and the coast is bounded: ${fight.players[0].x}`); + // A host that goes dark drops the queue, so nothing stale is ever blended + // into whatever timeline arrives next. + deliver({ type: "status", content: { live: false }, + roundName: bridge.name }); + const held = fight.players[0].x; + tick(); + assert.equal(fight.players[0].x, held); + } finally { + Date.now = realNow; + } +}); + +// @jeffrey: "can we show a connection health like wifi meter... on the top +// right of the game", and "so we have an understanding of ping / connection to +// the other player?". The meter reports only what the seat it is drawn on can +// actually measure, and reports nothing at all on a lane with no rival. +// Part one of the multiplayer note called this "no state updates on screen +// when the game starts": the whole match HUD hangs off `gameplayStarted`, +// which the watcher boot path never set, and the intro card hangs off a round +// clock the watcher derived from `remainingMs` — zero on every untimed round, +// which pinned its clock a full round duration in the past. +test("a watcher gets the match HUD and the round's own clock", () => { + let deliver; + const bridge = { name: "bafegu-dorimi-kunapo", seat: "challenger", + start(listener) { deliver = listener; return () => {}; }, + sendInput() { return true; } }; + const realNow = Date.now; + const realQr = globalThis.qrcode; + let wall = 1785870000000; + Date.now = () => wall; + // The engine only mints a code when the host offers an encoder. + globalThis.qrcode = qrcode; + try { + const { fight, tick } = createFight(false, false, "web", bridge); + assert.equal(fight.roundState().gameplayStarted, true, + "watching a fight is gameplay for the person doing it"); + const fighter = (side) => ({ name: side ? "@SAT" : "@FIFI", + color: [209, 100, 216], x: 5100 + side * 1800, y: 12000, z: 0, + vx: 0, vy: 0, vz: 0, facing: side ? -1 : 1, alive: true, grounded: true, + ducking: false, blocking: false, score: 0, roundWins: 0, attack: "", + removedParts: [], hit: 0, blockFlash: 0, attackTicks: 0 }); + let seq = 0; + // The buffer paints the frame a later one stands behind, so a fixture + // states each frame twice — once to arrive, once to become the past. + const show = (round, phase) => { + for (let copy = 0; copy < 2; copy++) { + deliver({ type: "state", live: true, roundName: bridge.name, + content: { format: "ac.oskiewar.live", version: 1, seq: ++seq, + at: wall, phase, fighters: [fighter(0), fighter(1)], + ball: { x: 6000, y: 11958, z: 0, radius: 42, active: false }, + camera: { x: 6000, y: 9600, width: 2200 }, round } }); + wall += 2000; + tick(); + } + }; + // An untimed versus round, one second into its intro. `remainingMs` is + // zero there and always will be; `elapsedMs` is the field that means + // something. + show({ remainingMs: 0, timed: false, result: "", elapsedMs: 1000 }, "intro"); + const watched = fight.roundState(); + assert.equal(watched.timed, false, "the wire says whether there is a clock"); + assert.ok(watched.introAge > 900000 && watched.introAge < 1100000, + `one second into the intro, not thirty in the past: ${watched.introAge}`); + assert.ok(watched.introAge < watched.introLimit, + "so the round is still counting itself off, and the intro card draws"); + assert.equal(watched.roundElapsedUs, 0, "the fight itself has not started"); + // A timed round watched from the grandstand still reads its clock off + // `remainingMs`, which is what the HUD timer counts down. + show({ remainingMs: 21000, timed: true, result: "", elapsedMs: 12000 }, + "fight"); + assert.equal(fight.roundState().timed, true); + assert.equal(fight.roundState().roundElapsedUs, 9000000); + // And the address stays up. `spectatorQrBox` asks `versusLane()`, a fact + // about the fight on THIS machine — so an untimed versus round, watched, + // used to lose its code at exactly the moment somebody might pass it on. + assert.ok(fight.qrBox(), "a watcher keeps the round's code"); + } finally { + Date.now = realNow; + if (realQr) globalThis.qrcode = realQr; else delete globalThis.qrcode; + } + // The VS label moved out from under the top-right corner, which the round's + // QR and the connection meter now share. One measurement serves every label + // that wants to sit beside them. + const hudSource = source.slice(source.indexOf("const viewerLabel =")); + assert.match(hudSource.slice(0, 600), /hudTopRightLeft\(\) - 14/); + assert.match(source, /function hudTopRightLeft\(\)[\s\S]{0,240}netHealthBox\(\)\?\.left/); +}); + +// A watcher reconstructing sparks from flag edges covers a punch landing and +// nothing else: a ricochet, a spit splat, a ground pound's crater and a +// grenade's own blast raise no flag on any fighter, so they used to happen in +// silence on every screen but the host's. The host's real track rides out now, +// and each mark carries the number that says whether a watcher has seen it — +// a position is not an identity, and the host repeats a mark on every frame it +// is still burning. +test("the host's impact track rides out, and a watcher spawns each mark once", () => { + const { fight, liveFrames, tick } = createFight(); + tick(50000); + assert.deepEqual(liveFrames.at(-1)[1].impacts, []); + fight.knockOut(); + tick(34000); + tick(34000); + const marks = liveFrames.at(-1)[1].impacts; + assert.ok(marks.length > 0, "a knockout leaves a mark on the wire"); + const [id, x, y, z, durationMs, lifeMs, flags] = marks[0]; + assert.ok(Number.isInteger(id) && id > 0, "and the mark is numbered"); + assert.ok([x, y, z].every(Number.isInteger)); + assert.ok(durationMs > 0 && lifeMs > 0 && lifeMs <= durationMs); + assert.ok(flags >= 0 && flags <= 3); + assert.ok(marks.every((mark, index) => + index === 0 || mark[0] > marks[index - 1][0]), "in order"); + // The numbers are simulation state: a rollback that re-spawns an impact + // must re-issue the same one, or two seats disagree about which sparks a + // watcher has already been shown. + assert.match(source, /function netSimScalars[\s\S]{0,2000}impactSequence,/); +}); + +// "Guest gets positions, flags and names only: no hit, no bullets, no debris." +// Debris was the last of those. `updateResultImpactDebris` ran only inside a +// demo or a hosted sim, so a watcher's impacts never grew a single mote and +// the array grew for the life of the connection instead. +test("a watcher runs its own sparks and flying limbs, and lets them expire", () => { + let deliver; + const bridge = { name: "bafegu-dorimi-kunapo", + start(listener) { deliver = listener; return () => {}; } }; + const realNow = Date.now; + let wall = 1785870000000; + Date.now = () => wall; + try { + const { fight, tick } = createFight(false, false, "web", bridge); + const fighter = (side, removedParts, hit) => ({ + name: side ? "@SAT" : "@FIFI", color: [209, 100, 216], + x: 5100 + side * 1800, y: 12000, z: 0, vx: 0, vy: 0, vz: 0, + facing: side ? -1 : 1, alive: true, grounded: true, ducking: false, + blocking: false, score: 0, roundWins: 0, attack: "", removedParts, hit, + blockFlash: 0, attackTicks: 0 }); + let seq = 0; + const send = (removedParts, hit, impacts) => { + const content = { format: "ac.oskiewar.live", version: 1, seq: ++seq, + at: wall, phase: "fight", + fighters: [fighter(0, removedParts, hit), fighter(1, [], 0)], + ball: { x: 6000, y: 11958, z: 0, radius: 42, active: false }, + camera: { x: 6000, y: 9600, width: 2200 }, + round: { remainingMs: 0, timed: false, result: "", elapsedMs: 9000 } }; + if (impacts) content.impacts = impacts; + deliver({ type: "state", live: true, roundName: bridge.name, content }); + wall += 2000; + tick(); + }; + const show = (removedParts, hit) => { send(removedParts, hit); send(removedParts, hit); }; + show([], 0); + assert.equal(fight.impacts.length, 0); + assert.equal(fight.detachedParts.length, 0); + // A struck fighter with an arm freshly gone: the wire carries the flag + // and the missing part, and the watcher makes the rest. + show(["left-arm"], 1); + assert.ok(fight.impacts.length > 0, "the blow lands visibly"); + assert.ok(fight.detachedParts.length > 0, "and the arm goes flying"); + assert.ok(fight.impacts.every((impact) => impact.debris?.length > 0), + "every spark grew its motes"); + // Cosmetic, so it expires. A watcher's fragment that renewed its own life + // the way a hosted one does would still be on screen at the end of the + // session, and nothing on the wire would ever say to remove it. + for (let frame = 0; frame < 220; frame++) send(["left-arm"], 0); + assert.equal(fight.impacts.length, 0, "the sparks burned out"); + assert.equal(fight.detachedParts.length, 0, "the limbs settled and went"); + // When the host's own track is on the frame it wins: it is the same + // spark, in the right place, and doubling them reads as a heavier hit + // than the one that landed. Each mark spawns once however many frames + // repeat it while it burns. + const before = fight.impacts.length; + for (let repeat = 0; repeat < 6; repeat++) + send(["left-arm"], 1, [[900, 5200, 11940, 0, 320, 300, 2]]); + send(["left-arm"], 1, [[900, 5200, 11940, 0, 320, 300, 2]]); + assert.equal(fight.impacts.length, before + 1, + "one mark, one spark, however often the frame repeats it"); + assert.equal(fight.impacts.at(-1).explosion, true); + send(["left-arm"], 1, [[901, 5300, 11940, 0, 320, 320, 0]]); + send(["left-arm"], 1, [[901, 5300, 11940, 0, 320, 320, 0]]); + assert.equal(fight.impacts.length, before + 2, "a new number is a new spark"); + // A limb already gone is not a fresh loss, however many frames report it. + show(["left-arm"], 1); + assert.equal(fight.detachedParts.length, 0, + "the same missing arm is not thrown twice"); + // A fighter who comes back whole is a new round. The next loss throws + // again, and the round after that takes the wreckage with it rather than + // letting it blow through the reset. + show([], 0); + show(["right-arm"], 1); + assert.ok(fight.detachedParts.length > 0); + assert.ok(fight.impacts.length > 0); + show([], 0); + assert.equal(fight.detachedParts.length, 0); + assert.equal(fight.impacts.length, 0); + } finally { + Date.now = realNow; + } +}); + +// A press is not a stick. The 33 ms client floor and the relay's 15 ms one +// were both written to pace an analog axis that moves every frame, and both +// were swallowing button edges — the client marks a frame sent the moment the +// socket takes it, so an edge the relay dropped was invisible at both ends +// until the next change or the quarter-second heartbeat. +// @jeffrey: "it seems possible to die in the waiting room but keep jumping +// stilll". A dead fighter takes no input — but nothing moved it either, and a +// body blasted out of a jump kept the jump's height, and its jump pose, for +// the whole two-and-a-half-second respawn beat. A corpse hanging in the air +// mid-hop is exactly what still jumping looks like. +test("a fighter killed mid-jump in the waiting room falls instead of hanging", () => { + const capable = globalThis.__oskiewarVersusCapable; + globalThis.__oskiewarVersusCapable = true; + try { + const { fight, pads, tick } = createFight(false, false); + fight.enterLobby(); + tick(100000); + assert.equal(fight.lobbyState().lobby, true); + const player = fight.players[0]; + const floor = player.y; + pads[0].leftY = 1; + tick(); + pads[0].leftY = 0; + for (let frame = 0; frame < 10; frame++) tick(); + assert.ok(player.y < floor - 40 && !player.grounded, "airborne"); + // Losing the torso IS dying here, and it can happen at the top of a hop. + player.removedParts = ["torso"]; + tick(); + assert.equal(player.alive, false); + for (let frame = 0; frame < 40; frame++) tick(); + assert.ok(player.grounded, "the body came down"); + assert.ok(Math.abs(player.y - floor) < 1, `and settled: ${player.y - floor}`); + assert.equal(player.alive, false, "still dead, for the whole beat"); + // And it stays down: a corpse takes no input, so nothing hops it again. + const landed = player.y; + for (let hop = 0; hop < 4; hop++) { + pads[0].leftY = 1; + tick(); + pads[0].leftY = 0; + for (let frame = 0; frame < 3; frame++) tick(); + } + assert.equal(player.y, landed); + assert.equal(player.alive, false); + } finally { + globalThis.__oskiewarVersusCapable = capable; + } +}); + +test("a challenger's button edges leave at once and the stick still waits", () => { + const sent = []; + const bridge = { name: "sezzi7", seat: "challenger", live: true, + start(listener) { bridge.listener = listener; return () => {}; }, + sendInput(content) { sent.push(content); return true; }, + sendNet() { return false; } }; + const { pads, tick } = createFight(false, false, "web", bridge); + tick(); + const count = sent.length; + // Two frames apart is inside the old 33 ms floor. + pads[0].down = ["A"]; + tick(); + assert.equal(sent.length, count + 1, "the press goes at once"); + pads[0].down = ["A", "B"]; + tick(); + assert.equal(sent.length, count + 2, "and so does the next one"); + pads[0].down = []; + tick(); + assert.equal(sent.length, count + 3, "releases are edges too"); + assert.deepEqual(sent.at(-1).down, []); + // A stick still waits out the floor: it moves every single frame, and + // sending every frame is exactly what the floor was written for. + const held = sent.length; + pads[0].leftX = .4; + tick(); + assert.equal(sent.length, held, "analog drift waits"); + pads[0].leftX = .5; + tick(); + assert.equal(sent.length, held + 1, "and goes once the floor has passed"); + // An unchanged frame echoes once soon after a change rather than waiting + // out the idle heartbeat, so a dropped edge has a second chance. + assert.match(source, /versusInputNextAt = now \+ \(edge \? 50000 : 250000\)/); +}); + +test("the connection meter reads the wire it is actually on", () => { + let deliver; + const bridge = { name: "bafegu-dorimi-kunapo", + start(listener) { deliver = listener; return () => {}; } }; + const realNow = Date.now; + let wall = 1785870000000; + Date.now = () => wall; + try { + const { fight, tick } = createFight(false, false, "web", bridge); + // A title screen with nobody on the other end rates nothing. + assert.equal(fight.netHealth(), null); + const frame = (seq) => ({ format: "ac.oskiewar.live", version: 1, seq, + at: wall, phase: "fight", fighters: [0, 1].map((side) => ({ + name: side ? "@SAT" : "@FIFI", color: [209, 100, 216], + x: 5100 + side * 1800, y: 12000, z: 0, vx: 0, vy: 0, vz: 0, + facing: side ? -1 : 1, alive: true, grounded: true, ducking: false, + blocking: false, score: 0, roundWins: 0, attack: "", removedParts: [], + hit: 0, blockFlash: 0, attackTicks: 0 })), + ball: { x: 6000, y: 11958, z: 0, radius: 42, active: false }, + camera: { x: 6000, y: 9600, width: 2200 }, + round: { remainingMs: 22000, result: "" } }); + // A metronomic 33 ms wire with every sequence number present is the best + // a grandstand can be served, and reads as such. + for (let index = 0; index < 220; index++) { + deliver({ type: "state", content: frame(index + 1), live: true, + roundName: bridge.name }); + wall += 33; + tick(); + } + const clean = fight.netHealth(); + assert.equal(clean.bars, 4); + assert.match(clean.label, /^\u00b1\d+MS$/, "a watcher reports jitter, not ping"); + assert.equal(clean.note, "", "and no loss"); + assert.ok(fight.wireHealth().jitterMs < 4); + // Now the wire the relay's coalescing gate actually produces: frames land + // in bursts and every other sequence number is missing. + let seq = 400; + for (let index = 0; index < 260; index++) { + seq += 2; + deliver({ type: "state", content: frame(seq), live: true, + roundName: bridge.name }); + wall += index % 2 ? 8 : 120; + tick(); + } + const rough = fight.netHealth(); + assert.ok(rough.bars < clean.bars, `a worse wire reads worse: ${rough.bars}`); + assert.match(rough.note, /% LOST$/); + assert.ok(fight.wireHealth().lossPct > 40); + } finally { + Date.now = realNow; + } +}); + test("start button flashes yellow green lime before lifting off the fight", () => { const { fight, pads, signals, drums, tick } = createFight(false, false); assert.equal(fight.shellState().mode, "MENU"); @@ -1699,6 +2094,68 @@ test("debug mode boxes every title glyph against its own advance", () => { fight.setDebugHitboxes(false); }); +// @jeffrey: "i notice that projectiles in oskiewar dont show up across +// multiplayer matches". They did not: the state wire carried fighters, balls +// and a camera, and every shot, lob and blast stayed on the host's machine. +// A watcher saw two bodies flinch and die with nothing in the air between +// them. The rounds ride out now, and so do the three flags the grandstand +// already knew how to read and had never been sent. +test("published frames carry the shots and lobs in the air", () => { + const { fight, liveFrames, pads, tick } = createFight(); + tick(50000); + assert.deepEqual(liveFrames.at(-1)[1].shots, [], + "an empty sky is stated, not left out"); + fight.players[0].gunAmmo = 6; + // Out of each other's reach first: the fighters spawn 270 units apart and a + // handgun round covers 70 a frame, so at spawn distance the shot lands + // before a single published frame has been assembled. + fight.players[1].x = fight.players[0].x + 3000; + pads[0].down = ["Y"]; + tick(); + pads[0].down = []; + assert.ok(fight.bullets.length > 0, "the harness's fighter fired"); + tick(34000); + const frame = liveFrames.at(-1)[1]; + assert.equal(frame.shots.length, fight.bullets.length); + const [x, y, z, previousX, previousY, vx, vy, owner, flags] = frame.shots[0]; + assert.ok([x, y, z, previousX, previousY, vx, vy].every(Number.isInteger), + "rounded: a shot's tenth of a unit is nobody's business"); + assert.equal(owner, 0); + assert.equal(flags, 0, "a plain handgun round carries no kind bits"); + assert.ok(Math.abs(vx) > 1000, "and its velocity, so a watcher can carry it"); + // The three flags the reconstruction on the other end reads. + for (const fighter of frame.fighters) { + assert.equal(typeof fighter.hit, "number"); + assert.equal(typeof fighter.blockFlash, "number"); + assert.ok(Number.isInteger(fighter.attackTicks)); + } + assert.ok(JSON.stringify(frame).length < 7168); +}); + +// The driver runs up to four owed ticks in one instant to catch up, and a +// sim-clocked publish gate let every one of those emit its own frame: three +// full state builds in the same millisecond, arriving at the relay as a burst +// it can only coalesce. Catch-up is exactly when the fight is busiest. +test("a versus host publishes on the wall clock, so a catch-up burst is one frame", () => { + const { fight, liveFrames, tick } = createFight(false, false); + fight.startFightAgainst("versus"); + tick(50000); + const count = liveFrames.length; + assert.ok(count > 0, "a versus lobby narrates itself to the grandstand"); + // Four ticks of simulation with no wall time between them is what a + // catch-up pump looks like from inside the game. + for (let owed = 0; owed < 4; owed++) tick(0); + assert.equal(liveFrames.length, count, "the burst publishes nothing extra"); + tick(34000); + assert.equal(liveFrames.length, count + 1, "and the next real frame does"); + // The shell used to parse the payload to read one field, parse it again to + // re-wrap it, and stringify it back: four passes over the whole state per + // publish, on a console, thirty times a second. + assert.match(webShell, + /'\{"type":"oskiewar:state","content":' \+ payload \+ "\}"/); + assert.doesNotMatch(webShell, /content: JSON\.parse\(payload\)/); +}); + test("active matches publish bounded phone spectator snapshots", () => { const { liveFrames, tick } = createFight(); tick(50000); @@ -4545,9 +5002,11 @@ test("dummy rounds are untimed and omit the round clock", () => { for (let frame = 0; frame < 800; frame++) tick(40000); assert.equal(fight.roundState().roundResult, ""); assert.ok(fight.roundState().roundElapsedUs > 30000000); - // The reel harness may put a scripted dummy bout on the clock; the - // untimed default survives beneath that exception. - assert.match(source, /function roundIsTimed\(\)[\s\S]{0,600}!\(players\[1\]\.npc && !players\[1\]\.bot\)/); + // The reel harness may put a scripted dummy bout on the clock, and a live + // watcher answers for somebody else's round entirely; the untimed default + // survives beneath both exceptions. The window is a budget for the + // exceptions above it, not a claim about how many there are. + assert.match(source, /function roundIsTimed\(\)[\s\S]{0,1000}!\(players\[1\]\.npc && !players\[1\]\.bot\)/); assert.match(source, /timedRound \? String\(remainingSeconds\)\.padStart\(2, "0"\) : ""/); assert.doesNotMatch(source, /timerText === "∞"/); }); @@ -4587,8 +5046,10 @@ test("dummy training has no QR, analytics, spectator feed, or replay upload", () assert.deepEqual(analyticsEvents, []); assert.deepEqual(liveFrames, []); assert.deepEqual(replays, []); + // The guard still stands; a live watcher is the one lane allowed past it, + // because for a watcher the code IS the thing they might pass on. assert.match(source, - /function spectatorQrBox\(\)[\s\S]{0,180}if \(shellMode === "GAME" && !roundIsTimed\(\)\) return null/); + /function spectatorQrBox\(\)[\s\S]{0,600}if \(shellMode === "GAME" && !roundIsTimed\(\)\) return null/); assert.match(source, /if \(!roundIsTimed\(\)\) \{[\s\S]{0,300}replay = null/); }); diff --git a/xbox/live/tests/round-room.test.mjs b/xbox/live/tests/round-room.test.mjs index 044bc3cbc7..e8555fd57c 100644 --- a/xbox/live/tests/round-room.test.mjs +++ b/xbox/live/tests/round-room.test.mjs @@ -86,3 +86,42 @@ test("the first live state emits one identifier-free view milestone", () => { }]]); room.stop(); }); + +// A versus room has no stored replay and 404s forever, so the 1800 ms retry +// loop held the bridge's only timer slot almost all the time. A socket closing +// inside that window asked to reconnect and was dropped in silence — which is +// how a third visitor, denied the chair and closed with 4409, wedged on "this +// match already has a challenger" and never joined the grandstand at all. +test("a denied chair still reaches the grandstand while the replay retry runs", async () => { + const messages = []; + let replayTries = 0; + const room = new RoundRoom("sezzi7", { + WebSocketImpl: Socket, + fetchImpl: async () => { replayTries++; return { ok: false }; }, + role: "challenger", + analytics: () => {}, + }); + room.start((message) => messages.push(message)); + const denied = Socket.all.at(-1); + assert.match(denied.url, /role=challenger$/, "it asks for the chair first"); + // Let the replay retry take its slot, the way it does on a live versus room. + await new Promise((resolve) => setTimeout(resolve, 0)); + assert.ok(replayTries > 0); + assert.ok(room.timers.replay, "the replay retry is armed and holding a slot"); + // The relay turns the chair down and closes. + denied.event("message", JSON.stringify({ type: "oskiewar:error", + content: { message: "This match already has a challenger" } })); + assert.equal(messages.at(-1).content.label, + "This match already has a challenger"); + const sockets = Socket.all.length; + denied.close(); + assert.ok(room.timers.reconnect, + "the reconnect gets its own slot rather than being dropped"); + await new Promise((resolve) => setTimeout(resolve, 1300)); + assert.equal(Socket.all.length, sockets + 1, "and it actually reopens"); + assert.doesNotMatch(Socket.all.at(-1).url, /role=challenger/, + "as one more face in the grandstand"); + room.stop(); + assert.equal(room.timers.reconnect, null); + assert.equal(room.timers.replay, null); +});