Open Games

Every promise on this page is something the build refuses to break.

Open Games is free, has no purchases, contacts no third party, and keeps working when the network does not. Those are the reasons to fund it, so each one is a check the build runs — and this page is that build’s output, not a description of it. The numbers below were measured by the same commands anyone can run on the repository.

Generated 2026-09-16 by scripts/gen-compliance.mjs · 5/5 checks passing · reproduce with: npm run build — every claim below is a gate the build already runs.

Known and not yet done

Subsetting the Korean webfonts to the glyphs actually used.

Measured per glyph, which cancels out how much Korean a game happens to show: champs 484 distinct Korean characters in 1068.7 KB (2261 B/glyph), lastwar 393 in 544.7 KB (1419), kingshot 331 in 492.9 KB (1525), against whiteout 421 in 74.6 KB (182). So champs carries 12.5x, kingshot 8.4x and lastwar 7.8x what whiteout pays for the same job.

No subsetter is available on this host and installing one is not the agent's to do. Checked and absent: pyftsubset, hb-subset, fonttools, woff2_compress and sfnt2woff on PATH; fontTools in system python; any font-parsing package in node_modules. python brotli IS present, but that is woff2 compression only and cannot rebuild a glyph table.

Needs: Approval to install a font toolchain - python3 fonttools with brotli (giving pyftsubset), or the harfbuzz hb-subset binary. `node scripts/font-glyphs.mjs` then prints the exact command per font.

Funding

server cost
Zero. The games are static files; multiplayer is peer-to-peer or local-network, so there is no backend to run.
what is asked for
Sponsorship and portal revenue share, so the games can stay free with no purchases and no advertising.
what is not taken
In-app purchases, advertising, telemetry, and any third-party runtime request.
terms
Not settled. Talk to us rather than reading a number here that nobody has agreed.