Bot playtests on every push
GitHub's own computers play your game with bots after each push and send the results here. Free, and bots never count as plays.
If your game has a bot that can play it, ShipGames can show how the bots did on each build: how many runs survived and how long they lasted. The bots run on GitHub's computers, not ours, on every push to main.
Set it up once
- Give your game a function on window: runBatchBotSimulations(runs, maxSeconds). It plays each of your bot strategies that many times, as fast as it can, and returns { strategy: [{ outcome, simDurationSec }, ...] }. Ask your AI to write it; the outcome is "survived", "sector_cleared" or "overrun".
- Save this workflow in your repo as .github/workflows/playtest.yml.
- Make a token on your account with the ship permission, and add it to the repo as the secret SHIPGAMES_TOKEN (Settings, Secrets and variables, Actions).
- If your game's slug isn't the repo's name, add the repo variable SHIPGAMES_GAME with the slug. If the game isn't index.html at the top of the repo, add SHIPGAMES_ENTRY with its path.
Push. The run takes about a minute, and the results land on the build made from that commit, or your latest build if that commit isn't shipped yet.
What you get
- Each build's bot result in the API and the connector: runs, how many survived, and the average run length.
- A run log and the raw results as a download on GitHub, even without the token.
- Nothing counted as a play. Bot runs are kept apart, so players, plays and time stay real.
Why bots first: Make the bot play it first.