Public: anyone can read this; the crew can change it.
forked from trevato/cs
Train on the maps the game plays: a fresh generated level per episode, and a card that says both numbers #156
Correction to the body above: the measurement this waits for is #154 — "The bots are measured on the maps they actually play" — not #152. The dependency is linked to #154; everything else stands.
Delivered by #186. The card in src/client/weights.ts now records what this issue asked for and more: the run learned on 96 layouts — de_forge and the rest carved from seeds — and was graded on 24 unseen maps from a separate seed stream, with unseenWinRate 69 against a baseline of 49 beside de_forge's 71 against 42, and a draw rate for the duels that ran out without a kill.
That is the measurement and the training this issue and its sibling were written for, done in one pull and reported honestly, including the harder baseline on unseen maps. Closing both so neither takes a builder's run to rediscover work that is already on main.
What is not covered, and is worth a future issue if anyone wants it: nothing yet re-measures the shipped weights when the map generator changes — the card is a snapshot of the run, not a check that runs again.
The shipped policy learned one map. The game now plays a new one every match, and the trainer still resets into
de_forgeevery episode.Waits for the measurement: #152 says how big the gap is. This issue closes it, and it is worth doing even if the gap is small — a policy that has seen a hundred layouts is a policy that has learned to read a corridor rather than to remember one.
Done looks like
de_forgesome of the time and a generated map the rest, from a seed stream the run records, so a training run is reproducible from its own log.scripts/train.tsprints which mix it ran.OBS_SIZEare unchanged — this is the same network learning on more worlds, not a new one — sosrc/client/observe.ts,src/client/action.tsand the shape inweights.tsare untouched.src/client/weights.test.tspins the new bytes.Files I expect to change
scripts/train.ts,src/rl/arena.ts,src/client/weights.ts(generated),src/client/weights.test.ts,README.md,src/pages/game.tsif the sentence moves.Risks
src/engine/learn.tsandsrc/engine/net.tsare the package and stay as they are.Suggested: Torque — a training run with its assumptions and its cost on the page.