From 94c75c66f3e64e53c670ed35b03f83de33ec8af5 Mon Sep 17 00:00:00 2001 From: "prompt.ac/@jeffrey" Date: Fri, 11 Sep 2026 10:16:39 -0400 Subject: [PATCH] oskiewar: the fight a watcher sees is the fight MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Projectiles never left the host. The state wire carried fighters, balls and a camera, so anyone watching — a spectator, or a challenger on the streamed lane — saw two bodies flinch and die with empty air between them. Shots, lobs and the host's own impact track ride out now, as flat number rows the relay validates; a full frame measures 2856 bytes of its 8 KiB cap. The relay ran its 25 ms rate gate BEFORE the store, so of two frames landing in one instant the older went out and the newer was gone. Measured against the real relay that was a quarter of all frames wired and over half on a busy link, and it fell hardest when the fight was busiest. Store-then-flush-latest now, one trailing timer per room, the frame serialized once for the room, and the challenger yielded before sixty-four spectators. A watcher no longer paints a frame the instant it lands and then extrapolates past it. Frames queue with their arrival time and the picture reads a clock held a little behind the newest, so a pose is a blend of two frames the host really sent. One wall clock throughout, which kills the drift that stopped the coast fuse tripping at all. `gameplayStarted` was never true on a watcher, and the whole match HUD hangs off it. The round clock was derived from `remainingMs`, zero on every untimed round, which pinned it thirty seconds in the past. Both fixed; the round's own age is on the wire. Sparks, debris and the limbs that came off are simulated locally from what the wire carries, and expire. A denied chair never reached the grandstand at all: the bridge had one timer slot and the replay retry held it almost always, so the reconnect was dropped in silence. Two named slots. Both lanes draw a connection meter, top right. A rollback fight reports a real round trip — each seat's own wall mark comes home on the rival's next packet, so the two machines never have to agree on the time. A watcher reports the jitter and loss it can actually measure. Nothing is invented. A desync is repaired instead of counted: both seats fall back to the lane where the host is the only authority, and stay out of the rollback lane long enough that the next hello is not the same divergence again. Button edges leave at once on both the client and the relay — two floors written to pace an analog stick were swallowing presses, invisibly, at both ends. Versus publishing is paced on the wall clock, so a catch-up pump emits one frame instead of three, and the shell stopped parsing each payload twice to re-wrap it. And a corpse in the waiting room falls. The dead branch skips every rule including gravity, which is right in a round and wrong in a lobby: a fighter blasted out of a hop kept the hop's height and its jump pose for the whole respawn beat, which reads as still jumping. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01B9umtQx4AjyNQ6TBYPRGSr --- session-server/oskiewar-live-manager.mjs | 113 ++- session-server/oskiewar-live-manager.test.mjs | 118 ++- xbox/live/mac-test.html | 16 +- xbox/live/oskiewar-multiplayer.md | 327 ++++++- xbox/live/oskiewar.js | 874 ++++++++++++++++-- xbox/live/round-room.mjs | 32 +- xbox/live/social/manifest.json | 2 +- xbox/live/social/oskiewar-title.jpg | Bin 105890 -> 105103 bytes xbox/live/social/oskiewar-title.mp4 | Bin 162317 -> 165174 bytes xbox/live/tests/oskiewar-netplay.test.mjs | 95 ++ xbox/live/tests/oskiewar.test.mjs | 471 +++++++++- xbox/live/tests/round-room.test.mjs | 39 + 12 files changed, 1962 insertions(+), 125 deletions(-) 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); +}); -- 2.51.2