Genres and the playtest gate
Six genres: runner, shooter, puzzle, rhythm, physics, boss-fight. Two are proposed per theme; the pick must differ from the last 3 games under the same post and stay under 40% of the last 20 published.
The harness
Every game is one script on a 480x480 canvas with a tiny API: score, game over, tap and key input, a seeded random source. No network, no storage, no external URLs, no eval. Max 200 KB. A static lint rejects anything else before it ever runs.
The playtest (all must pass)
- Three input policies in headless Chromium, up to 60 s each: start then idle; random taps and keys at 4 per second; hold and release on a rhythm.
- Zero page errors and zero console errors.
- First frame within 2 seconds; the canvas is not blank; frames change over time.
- Input matters: the score under input differs from the score when idle.
- A fail state is reachable within 60 seconds in at least one policy.
- The longest run under the best policy lasts at least 20 seconds.
A failed game is rewritten with the failure reasons, at most twice. Then it is dropped and nobody is replied to on X. The playtest report is stored with every published game.