Skip to content

MTG farm volunteer client v27

Choose a tag to compare

@fuzzy1450 fuzzy1450 released this 09 Oct 23:32
· 820 commits to master since this release
Immutable release. Only release title and notes can be modified.
ac8c59a

Superseded by client-v28: the faster engine 2.0.15+55e709fa6ba (upstream Forge's latest, the performance program's speedups, AI fixes) and a tuned engine JVM. A v27 client cannot install that engine; its self-updater offers v28.

One-zip Windows volunteer client for the MTG sim farm. Unzip, double-click run-client.bat, enter the farm URL and your runner credential on the first-run page, click Add, pick your work, and go.

New in v27: one engine process per machine, and the harness inside the engine jar.

  • One Forge JVM, many games. The client starts a single engine process (mtgsim.Harness serve) and its workers feed that engine's slots, instead of one 2 GB JVM per worker. The status line names the engine's size (slots and heap cap: 1.5 GB plus 0.75 GB a slot); --slots and --heap set them. A crashed engine restarts on its own after 10, 30, then 60 s; three deaths in ten minutes stop the client with the last exit and its stderr tail.
  • No harness pin, no harness download. The engine 2.0.15+f969e863353 carries mtgsim/Harness.class, so the harness changes only with the engine. Install Forge refuses, before downloading anything, an engine whose jar does not carry it. A v26 runner.json still works; its pin is read and ignored, said once.
  • Engine 2.0.15+f969e863353. Upstream Forge 2.0.15 on the fork's mtgsim-ai branch with the in-engine harness and the shared-game runner. Install Forge fetches it once the farm advertises it.
  • Win pair recorded. Every game record carries win_reason (how the loser lost) and win_card (the card that did it, where one did).

From v26: the 2.0.15 engine row and owner-cast card rows. From v25: a worker row says how it ended. From v20: a stopped worker starts from its own row. From v16: workers persist across restarts. From v12: the client updates itself.

Headless: farmrunner.py --mode backfill --decks REF[,REF...] [--scope within].

Ships Windows embeddable Python 3.12.10; the Forge engine (~200 MB) is downloaded on demand. Needs a farm whose /hello advertises an active_engine whose jar carries mtgsim/Harness.class (2.0.15+f969e863353, live since 2026-10-09) and that accepts a record's violations count (shared-JVM sub-project 4, live the same day).

sha256(mtg-farm-client-v27.zip) = f141fb256d8ae596f32c822898a8440bcbeb52a536b5dc4722421f1432cd26cb