Skip to content

v12: Sound duels and new models

Choose a tag to compare

@simonw simonw released this 20 Oct 17:36
· 17 commits to main since this release
d584e35

Play this version: v12

Download the build: v12.zip

Sound duels: two phones on a table play a 1v1 skirmish against each other with no network at all, sending their orders to each other as sound. Plus a cinematic camera for AI vs AI matches, and new Flak Crawler and Mortar models.

A sound duel: the lobby's opener picks with both link meters full, the blue phone's match, the red phone showing Friend paused, and the report's Sound duel section

  • Sound duels 🔊: tap Duel a friend (sound) on the Skirmish tab. One phone taps Host (its map and mutators), the other Join. Both phones run the whole game in lockstep, and only the players' orders cross the air, carried by an acoustic modem. Each phone sends in its own band (around 9.5–12.5 kHz and 16–19 kHz), with a lower band to fall back on. Lay the phones flat 10–30 cm apart: the lobby shows how well each phone hears the other, then both pick an opener. Pausing on one phone shows "Friend paused" on the other, and you can resign from the pause menu. The report has a Sound duel section with link quality and a check that both phones saw the same battle, plus Rematch (which swaps sides) and Save battle. Duels keep their own win/loss record and don't earn XP, medals or stars. The button only shows in browsers that can run the modem (an AudioWorklet and a microphone, over HTTPS). It's been tested end to end in simulation and in the browser, but only a little on real phones so far. The full design is in SOUND-DUEL.md, and the research behind it is in reports/. PR #31
  • Cinematic camera 🎥: AI vs AI matches now direct their own camera, on by default. It follows the busiest fight, cuts between the two armies when things are quiet, and jumps straight to surprises: a calldown, a Goliath rolling out or falling, the first shot at an HQ, an Uplink changing hands, a veteran dying. It zooms in for tight fights and out for spread-out ones. Pan or zoom yourself and it hands you the camera, taking it back 8 seconds after you stop. Toggle it with the 🎥 button above ⚡ or the C key. PR #32
  • New Flak Crawler and Mortar models: both were too easy to mistake for tanks at play zoom. The Flak Crawler is now a spider tank on six walking legs with four guns pitched at the sky, and the Mortar is a siege mortar on four big wheels with one huge banded barrel. Their HUD portraits are reshot to match. Stats and sizes are unchanged. PR #29
  • Stuck touches on iOS fixed: iOS Safari can end a touch without telling the page, for example after an abandoned edge swipe. The game then counted that finger as down for the rest of the match, so tapping to select, box selection and orders all stopped working. It now notices a finger that is no longer on the screen and forgets it. PR #30
  • Smaller changes: radio-probe.html measures a phone-to-phone sound link, ?side=red plays a skirmish as red, and tools/vite-https.config.ts serves the dev build over HTTPS for testing duels on phones.

Before: Flak Crawlers and Mortars read as blue-sided boxes among the tanks After: spider Flak Crawlers and siege Mortars in the same skirmish

Four moments from one AI vs AI match on Riverlands as the cinematic camera follows it: the bridge Uplink early on, a fight at the bridge as supply drops land, a triple kill at the ford and the push into Red's base

Commit: d584e351d9d28c4ba058b78ddcca9b93cd9bcd33

Full changes since v11