diff --git a/xbox/live/hello.js b/xbox/live/hello.js
index d5f70026e8..5df977d3e8 100644
--- a/xbox/live/hello.js
+++ b/xbox/live/hello.js
@@ -47,6 +47,7 @@ const roundDurationUs = 30000000;
const roundResultUs = 3000000;
const matchResultUs = 5000000;
const introDurationUs = 3000000;
+const dummyGuideDurationUs = 150000000;
const matchWins = 5;
const errorRestartUs = 16000000;
const errorDumpBase = "https://oskiewar.com/api/oskiewar-dump?d=";
@@ -461,6 +462,10 @@ let acFeed = {};
// is still moving and this is the shape we may want to compare against. Flip
// it true and the wheel comes back exactly as it was.
const PAL_SELECT = false;
+// The frame recorder remains intact for future review tooling, but replay is
+// not part of the match flow. One flag restores the viewer, its controls and
+// its offer together; production currently moves directly through results.
+const INSTANT_REPLAY = false;
let selecting = false;
// Self-play is a harness mode: both fighters run the bot, no pad can enter or
// leave it, and rounds roll over on their own.
@@ -487,6 +492,10 @@ let instantReplay = null;
let replayOfferPrevious = [];
let shellMode = "MENU";
let shellPrevious = [];
+// Training teaches for two and a half minutes once the title lifts. This is
+// session time, not round time: a knockout or a visit back to the title must
+// not restart onboarding that the player has already outgrown.
+let dummyGuideStartedAt = null;
// Unset is null, never -1: the console's monotonic clock can read negative
// (App.cpp overflows int64 converting QPC ticks past ~10 days of uptime),
// and a >= 0 sentinel then swallows every legitimate timestamp.
@@ -753,6 +762,7 @@ function makeRoundReplayFrame(now) {
}
function captureRoundReplay(now, force = false) {
+ if (!INSTANT_REPLAY) return;
if (!force && now - roundReplayLastAt < instantReplayStepUs) return;
roundReplayLastAt = now;
roundReplayFrames.push(makeRoundReplayFrame(now));
@@ -819,6 +829,7 @@ function finishInstantReplay(now) {
}
function startInstantReplay(now) {
+ if (!INSTANT_REPLAY) return false;
if (roundReplayFrames.length < 2) return false;
const frames = roundReplayFrames.slice();
instantReplay = { frames, cursor: 0, lastAt: now, paused: false,
@@ -880,7 +891,16 @@ function saveRoundReplay(now) {
delete demo.startedMonotonicUs;
const payload = JSON.stringify(demo);
if (payload.length <= 524288 && typeof saveReplay === "function") {
- saveReplay(payload);
+ const upload = saveReplay(payload);
+ // Only promise-returning hosts can prove the upload completed. The web
+ // host does; older native hosts keep saving silently until they adopt the
+ // same acknowledgement contract.
+ if (upload && typeof upload.then === "function")
+ upload.then((saved) => {
+ if (saved !== true) return;
+ playDrum("modem", .72, 0);
+ telemetry("REPLAY", "uploaded " + demo.roundId);
+ }).catch((error) => telemetry("REPLAY", "upload-error " + error.message));
telemetry("REPLAY", "queued " + demo.roundId + " bytes=" + payload.length);
} else telemetry("REPLAY", "not-saved bytes=" + payload.length);
}
@@ -1425,6 +1445,8 @@ function consumeSystemButtons(now) {
// Start lifts the wordmark off a fight that is already running underneath.
function enterGame(now) {
shellMode = "GAME";
+ if (dummyGuideStartedAt === null && players[1].npc && !players[1].bot)
+ dummyGuideStartedAt = now;
shellPrevious = padSnapshots[0]?.down?.slice() || [];
if (PAL_SELECT) beginSelect(now);
}
@@ -3517,14 +3539,16 @@ function gameSim() {
recordReplayCommands(now, inputPads);
publishSpectator(now);
if (roundResult) {
- if (instantReplay) {
+ if (INSTANT_REPLAY && instantReplay) {
updateInstantReplay(now, dt);
return;
}
- const replayDown = padSnapshots[0]?.down || [];
- if (replayDown.includes("Y") && !replayOfferPrevious.includes("Y") &&
- startInstantReplay(now)) return;
- replayOfferPrevious = replayDown.slice();
+ if (INSTANT_REPLAY) {
+ const replayDown = padSnapshots[0]?.down || [];
+ if (replayDown.includes("Y") && !replayOfferPrevious.includes("Y") &&
+ startInstantReplay(now)) return;
+ replayOfferPrevious = replayDown.slice();
+ }
updateCameraDoll(dt, now);
captureFrameTelemetry(now);
const resultDuration = matchOver ? matchResultUs : roundResultUs;
@@ -4533,6 +4557,36 @@ function combatLegend(player) {
.map(([cap, action]) => cap + " " + action).join(" ");
}
+function selectionControlKeys() {
+ const family = typeof capabilities === "function"
+ ? capabilities().inputFamily : "xbox";
+ if (family === "touch") return [];
+ if (family === "keyboard") return [
+ [["A", "D"], "SELECT", "ArrowLeft"], ["SPACE", "READY", "A"],
+ ["H", "OPPONENT", "X"], ["G", "BACK", "B"]];
+ return [[["LEFT", "RIGHT"], "SELECT", "ArrowLeft"], ["A", "READY", "A"],
+ ["X", "OPPONENT", "X"], ["B", "BACK", "B"]];
+}
+
+function replayControlKeys(paused) {
+ const family = typeof capabilities === "function"
+ ? capabilities().inputFamily : "xbox";
+ if (family === "touch") return [];
+ if (family === "keyboard") return [
+ ["F", paused ? "PLAY" : "PAUSE", "A"],
+ [["A", "D"], "SCRUB", "ArrowLeft"], ["G", "EXIT", "B"]];
+ return [["A", paused ? "PLAY" : "PAUSE", "A"],
+ [["LEFT", "RIGHT"], "SCRUB", "ArrowLeft"], ["B", "EXIT", "B"]];
+}
+
+function replayOfferKeys() {
+ const family = typeof capabilities === "function"
+ ? capabilities().inputFamily : "xbox";
+ if (family === "touch") return [];
+ return family === "keyboard" ? [["Q", "REPLAY", "Y"]]
+ : [["Y", "REPLAY", "Y"]];
+}
+
// A key drawn as a key: a gray cap with a line around it, sunk and brightened
// while it is actually held.
function drawKeycap(label, x, y, size, pressed) {
@@ -4567,19 +4621,30 @@ function drawControlLegend(ink) {
function keycapRunWidth(entries, size) {
const padX = Math.round(size * .42);
return entries.reduce((total, [cap, action]) =>
- total + handleWidth(cap, size) + padX * 2 + 8 +
+ total + (Array.isArray(cap) ? cap : [cap]).reduce((width, label, index) =>
+ width + handleWidth(label, size) + padX * 2 + (index ? 5 : 0), 0) + 8 +
handleWidth(action, size) + 26, 0) - 26;
}
function drawKeycapRun(entries, x, y, size, held, ink) {
let cursor = x;
for (const [cap, action, button] of entries) {
- cursor += drawKeycap(cap, cursor, y, size, held.includes(button)) + 8;
+ for (const [index, label] of (Array.isArray(cap) ? cap : [cap]).entries()) {
+ if (index) cursor += 5;
+ cursor += drawKeycap(label, cursor, y, size, held.includes(button));
+ }
+ cursor += 8;
typeWrite(action, cursor, y + Math.round(size * .25), size, ...ink);
cursor += handleWidth(action, size) + 26;
}
}
+function drawCenteredKeycapRun(entries, y, size, held, ink) {
+ if (!entries.length) return;
+ drawKeycapRun(entries, viewCenterX() - keycapRunWidth(entries, size) / 2,
+ y, size, held, ink);
+}
+
function drawHandle(handle, x, y, size, colors, fallback) {
let cursor = x;
const characters = [...String(handle)];
@@ -5023,8 +5088,16 @@ function drawCommandStream(player, side) {
const idle = now - (player.commandStream.at(-1)?.at || now);
const bufferFade = clamp(1 - Math.max(0, idle - 150000) / 1200000, 0, 1);
const held = inputPads[player.pad]?.down || [];
+ const keyboard = typeof capabilities === "function" &&
+ capabilities().inputFamily === "keyboard";
+ const keyboardCaps = player.pad === 0
+ ? { LEFT: "A", RIGHT: "D", UP: "W", DOWN: "S",
+ A: "SPACE", B: "G", X: "B", Y: "V" }
+ : { LEFT: "LEFT", RIGHT: "RIGHT", UP: "UP", DOWN: "DOWN",
+ A: "K", B: "L", X: ";", Y: "'" };
const entries = player.commandStream.map((entry) => ({ ...entry,
- text: glyph[entry.label] || entry.label,
+ text: keyboard ? keyboardCaps[entry.label]
+ : glyph[entry.label] || entry.label,
fade: bufferFade,
held: held.includes(buttonFor[entry.label]),
})).filter((entry) => entry.fade > .01);
@@ -5044,7 +5117,8 @@ function drawCommandStream(player, side) {
}
if (current.length) lines.push(current);
const safe = hudSafeRect();
- const size = hudTypeSize;
+ const size = keyboard ? Math.max(15, Math.round(hudTypeSize * .72)) : hudTypeSize;
+ const lineHeight = keyboard ? Math.round(size * 1.5) + 5 : size + 4;
const handle = playerHandleLayout(player, side);
const shadow = contrastShadow(player.color);
const background = mixColor([7, 8, 28], [230, 239, 247],
@@ -5055,14 +5129,21 @@ function drawCommandStream(player, side) {
const firstY = training
? safe.top + (debugHitboxes ? hudTypeSize + 12 : 4)
: handle.y - statStackHeight() - inventoryOffset -
- lines.length * (size + 4) - 11;
+ lines.length * lineHeight - 11;
for (let row = 0; row < lines.length; row++) {
const lineEntries = lines[row];
- const text = lineEntries.map((entry) => entry.text).join(" ");
- const width = handleWidth(text, size);
+ const capPad = Math.round(size * .42);
+ const width = keyboard
+ ? lineEntries.reduce((sum, entry, index) => sum +
+ handleWidth(entry.text, size) + capPad * 2 + (index ? 5 : 0), 0)
+ : handleWidth(lineEntries.map((entry) => entry.text).join(" "), size);
let cursor = side === 0 ? safe.left + 8 : safe.right - 8 - width;
- const y = firstY + row * (size + 4);
+ const y = firstY + row * lineHeight;
for (const entry of lineEntries) {
+ if (keyboard) {
+ cursor += drawKeycap(entry.text, cursor, y, size, entry.held) + 5;
+ continue;
+ }
const activeColor = entry.held
? heldPalette[entry.label] || [255, 240, 90] : player.color;
const ink = mixColor(background, activeColor, entry.fade);
@@ -5515,6 +5596,9 @@ function drawSelectionScreen(t, ink, panel) {
...mixColor(panel, ink, backHovered ? .25 : .08));
typeWrite("< back", layout.back.x + (compact ? 12 : 20),
layout.back.y + (compact ? 10 : 17), compact ? 25 : 34, ...ink);
+ const controls = selectionControlKeys();
+ drawCenteredKeycapRun(controls, viewHeight - (compact ? 52 : 66),
+ compact ? 15 : 20, inputPads[0]?.down || [], ink);
}
const titlePaletteNight = [
@@ -5581,7 +5665,9 @@ function drawTitleScreen(t, ink, transitionAge = -1) {
capabilities().socialPreview === true;
const title = "oskiewar";
const breath = 1 + Math.sin(t * .9) * .018;
- const titleSize = (socialPreview ? 220 : compact ? 88 : 154) * breath;
+ const socialTitleSize = Math.min(220,
+ (stageRight - stageLeft - 56) / handleWidth(title, 1));
+ const titleSize = (socialPreview ? socialTitleSize : compact ? 88 : 154) * breath;
const titleWidth = handleWidth(title, titleSize);
const titleX = viewCenterX() - titleWidth / 2;
const titleY = viewHeight * (compact ? .38 : .35);
@@ -6041,20 +6127,21 @@ function gamePaint() {
drawFightIntro(introAge / 1000000, titleInk, statusShadow);
// The keys belong wherever a newcomer is looking: under the wordmark on the
// way in, and again while a round counts itself off.
- if (counting || shellMode === "MENU") drawControlLegend(titleInk);
+ const dummyGuideVisible = shellMode === "GAME" && !roundResult &&
+ players[1].npc && !players[1].bot && dummyGuideStartedAt !== null &&
+ run.monotonicUs - dummyGuideStartedAt < dummyGuideDurationUs;
+ if (counting || shellMode === "MENU" || dummyGuideVisible)
+ drawControlLegend(titleInk);
const resultUiReady = cinematicAge < 0 || cinematicAge >= 1.1;
if (roundResult && resultUiReady) {
- if (instantReplay) {
+ if (INSTANT_REPLAY && instantReplay) {
const frame = Math.min(instantReplay.frames.length,
Math.floor(instantReplay.cursor) + 1);
const replayLabel = "REPLAY " + frame + "/" + instantReplay.frames.length;
typeWrite(replayLabel, viewCenterX() - replayLabel.length * 10,
820, 30, ...titleInk);
- const locale = controlLocale();
- const controls = instantReplay.paused
- ? locale.replayPaused : locale.replayPlaying;
- typeWrite(controls, viewCenterX() - controls.length * 7.5,
- 948, 23, ...titleInk);
+ drawCenteredKeycapRun(replayControlKeys(instantReplay.paused),
+ 940, 19, inputPads[0]?.down || [], titleInk);
} else {
const result = resultCardText();
const winnerSize = Math.min(92,
@@ -6072,10 +6159,9 @@ function gamePaint() {
typeWrite(result.action, viewCenterX() - actionWidth / 2, 896,
actionSize, ...titleInk);
}
- if (!roundViewer) {
- const replayControl = controlLocale().replay;
- typeWrite(replayControl, viewCenterX() - replayControl.length * 7.5,
- 948, 22, ...titleInk);
+ if (!roundViewer && INSTANT_REPLAY) {
+ drawCenteredKeycapRun(replayOfferKeys(), 940, 19,
+ inputPads[0]?.down || [], titleInk);
}
}
}
diff --git a/xbox/live/mac-test.html b/xbox/live/mac-test.html
index 9b3f274edd..2ff210c0ab 100644
--- a/xbox/live/mac-test.html
+++ b/xbox/live/mac-test.html
@@ -5,7 +5,8 @@
oskiewar
-
+
+
@@ -17,8 +18,8 @@
-
-
+
+
@@ -545,6 +546,24 @@
oscillator.connect(envelope).connect(output);
oscillator.start(now); oscillator.stop(now + duration);
}
+ } else if (name === "modem") {
+ // A tiny negotiated connection: three dry carrier chirps followed by
+ // one settled tone. It is an upload receipt, not a victory fanfare.
+ for (const [offset, frequency, duration, gain] of [
+ [0, 1180, .055, .48], [.07, 1760, .045, .4],
+ [.128, 980, .06, .44], [.205, 1420, .11, .28]]) {
+ const oscillator = ac.createOscillator();
+ const envelope = ac.createGain();
+ oscillator.type = offset === .205 ? "sine" : "square";
+ oscillator.frequency.setValueAtTime(frequency, now + offset);
+ envelope.gain.setValueAtTime(.001, now + offset);
+ envelope.gain.exponentialRampToValueAtTime(gain, now + offset + .008);
+ envelope.gain.exponentialRampToValueAtTime(.001,
+ now + offset + duration);
+ oscillator.connect(envelope).connect(output);
+ oscillator.start(now + offset);
+ oscillator.stop(now + offset + duration);
+ }
} else if (name === "whoosh") {
const noise = noiseSource(ac, .34);
const filter = ac.createBiquadFilter();
@@ -590,10 +609,15 @@
async function saveReplay(payload) {
try {
- await fetch("https://aesthetic.computer/api/oskiewar-replays?surface=web", {
+ const response = await fetch("https://aesthetic.computer/api/oskiewar-replays?surface=web", {
method: "POST", headers: { "content-type": "application/json" }, body: payload,
});
- } catch (error) { telemetry("REPLAY_WEB_ERROR", error.message); }
+ if (!response.ok) throw new Error(`upload returned ${response.status}`);
+ return true;
+ } catch (error) {
+ telemetry("REPLAY_WEB_ERROR", error.message);
+ return false;
+ }
}
const liveSockets = new Map();
diff --git a/xbox/live/render-social-preview.mjs b/xbox/live/render-social-preview.mjs
index 31fbfe5bd1..dac48d641c 100644
--- a/xbox/live/render-social-preview.mjs
+++ b/xbox/live/render-social-preview.mjs
@@ -14,6 +14,10 @@ const output = join(live, "social");
const poster = join(output, "oskiewar-title.jpg");
const video = join(output, "oskiewar-title.mp4");
const manifestPath = join(output, "manifest.json");
+const posterSize = { width: 1200, height: 630 };
+const videoSize = { width: 720, height: 1280 };
+const captureSeconds = 2;
+const loopSeconds = captureSeconds * 2;
const sources = ["hello.js", "mac-test.html", "frame-driver.mjs"];
const sourceHash = createHash("sha256");
for (const name of sources) sourceHash.update(await readFile(join(live, name)));
@@ -88,24 +92,39 @@ const browser = await puppeteer.launch({ headless: true, executablePath: chrome,
args: ["--autoplay-policy=no-user-gesture-required"] });
try {
const page = await browser.newPage();
- await page.setViewport({ width: 1200, height: 630, deviceScaleFactor: 1 });
- await page.emulateMediaFeatures([{ name: "prefers-color-scheme", value: "dark" }]);
+ await page.setViewport({ ...posterSize, deviceScaleFactor: 1 });
+ await page.emulateMediaFeatures([{ name: "prefers-color-scheme", value: "light" }]);
await page.goto(`${origin}/?social-preview`, { waitUntil: "networkidle2" });
await page.evaluate(() => document.fonts.ready);
await new Promise((resolveWait) => setTimeout(resolveWait, 900));
await page.screenshot({ path: poster, type: "jpeg", quality: 94 });
+
+ // The MP4 is a phone-shaped, silent light-mode title loop. Reversing the
+ // short capture back to its first frame removes the visible loop seam.
+ await page.setViewport({ ...videoSize, deviceScaleFactor: 1 });
+ await page.goto(`${origin}/?social-preview`, { waitUntil: "networkidle2" });
+ await page.evaluate(() => document.fonts.ready);
+ await new Promise((resolveWait) => setTimeout(resolveWait, 900));
const recorder = await page.screencast({ path: webm, fps: 30 });
- await new Promise((resolveWait) => setTimeout(resolveWait, 6000));
+ await new Promise((resolveWait) => setTimeout(resolveWait,
+ captureSeconds * 1000 + 150));
await recorder.stop();
await page.close();
+ const loopFilter = `[0:v]trim=duration=${captureSeconds},` +
+ "setpts=PTS-STARTPTS,split[forward][reverse];" +
+ "[reverse]reverse,setpts=PTS-STARTPTS[backward];" +
+ "[forward][backward]concat=n=2:v=1:a=0,fps=30,format=yuv420p[loop]";
const encoded = spawnSync("ffmpeg", ["-y", "-i", webm, "-an",
+ "-filter_complex", loopFilter, "-map", "[loop]",
"-c:v", "libx264", "-profile:v", "main", "-level", "3.1",
- "-pix_fmt", "yuv420p", "-r", "30", "-movflags", "+faststart",
- "-t", "6", video], { encoding: "utf8" });
+ "-crf", "23", "-movflags", "+faststart", "-t", `${loopSeconds}`,
+ video], { encoding: "utf8" });
if (encoded.status !== 0) throw new Error(encoded.stderr || "ffmpeg failed");
await writeFile(manifestPath, JSON.stringify({
- format: "ac.oskiewar.social-preview", version: 1, build,
- width: 1200, height: 630, durationSeconds: 6, framesPerSecond: 30,
+ format: "ac.oskiewar.social-preview", version: 2, build,
+ theme: "light", imageWidth: posterSize.width, imageHeight: posterSize.height,
+ videoWidth: videoSize.width, videoHeight: videoSize.height,
+ durationSeconds: loopSeconds, framesPerSecond: 30, audio: false,
image: "oskiewar-title.jpg", video: "oskiewar-title.mp4",
}, null, 2) + "\n");
console.log(`burned ${poster}\nburned ${video}\nbuild ${build}`);
diff --git a/xbox/live/social/manifest.json b/xbox/live/social/manifest.json
index 2a370ce9df..846d67289a 100644
--- a/xbox/live/social/manifest.json
+++ b/xbox/live/social/manifest.json
@@ -1,11 +1,15 @@
{
"format": "ac.oskiewar.social-preview",
- "version": 1,
- "build": "ab01f2199c4f925c",
- "width": 1200,
- "height": 630,
- "durationSeconds": 6,
+ "version": 2,
+ "build": "afff43e88a3f5a48",
+ "theme": "light",
+ "imageWidth": 1200,
+ "imageHeight": 630,
+ "videoWidth": 720,
+ "videoHeight": 1280,
+ "durationSeconds": 4,
"framesPerSecond": 30,
+ "audio": false,
"image": "oskiewar-title.jpg",
"video": "oskiewar-title.mp4"
}
diff --git a/xbox/live/social/oskiewar-title.jpg b/xbox/live/social/oskiewar-title.jpg
index bd7cc8dc8fd421074160b633e1929893331161ba..d2e39e3165b3d9b2a36bfe7e26da0baaa7bc9bac 100644
GIT binary patch
literal 64937
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%0DlY
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 3I`3TF_rCLe66$i%
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