A starter kit for making complete 2D (and, since recently, 3D) games by describing them to an AI.
You bring the ideas. The kit already has the boring parts — menu, pause, score, high scores, sound, screen shake, a web build you can put on a phone, and a way for the AI to play the game itself and find its own bugs. You never have to ask for those.
▶ Play the current build: https://evgiz0r.github.io/GamePlatform/docs/
That link is a real web build, so it works on a phone. In Chrome, ⋮ → Install and create shortcut turns it into a fullscreen app with its own icon.
This is a template repository — press Use this template at the top of the page to get your own copy, then point your AI tool at it. Delete the example games and make yours.
project.godot with C# settings this project has no use for.game/. Play one for ten seconds so you know what “working” looks like.Tell the kit where Godot lives, so the AI can playtest without asking you to run things:
export GODOT="/path/to/godot"
To publish to the web you also need export templates, once: Editor → Manage Export Templates → Download and Install.
Just say what you want:
make a game where a fox runs across rooftops and jumps over chimneys
Or use the built-in commands:
| Command | What it does |
|---|---|
/start |
first time here? checks your setup and gets you to a running game |
/new-game <idea> |
designs and builds a whole new game |
/add <thing> |
adds one enemy, powerup, obstacle or rule |
/look <style> |
changes the colours and mood |
/playtest |
the AI plays the game itself and reports problems |
/publish |
rebuilds the web version so you can share the link |
A game is one folder. game/<name>/ holds its code, its scene and its GAME.md. Add
one by creating the folder, remove one by deleting it — the menu finds them on its own and
nothing else needs updating.
Pushing to main publishes. A GitHub Actions workflow (.github/workflows/publish.yml)
exports the web build with the standard Godot, commits docs/ back to main, and GitHub
Pages serves it. Two to three minutes after a push the link at the top of this file is the
new version. Nothing to run by hand; the one habit it needs is a git pull before your
next push, because the workflow’s commit has moved main along.
/publish (tools/publish_web.sh) still builds docs/ locally when you want to check a
build before pushing, but it is no longer required.
An open or installed copy of the game looks for a new build every time
it starts and every time it comes back to the foreground, and reloads itself onto it. If a
phone still shows the old build, close the app fully and reopen it. docs/ is generated —
never edit it by hand.
The menu shows the build time at the bottom. That is how you tell from a phone whether a change has actually arrived, which matters because an installed app updates itself in the background rather than announcing it.
This kit was built with a specific situation in mind: a parent at the keyboard and a child supplying the ideas. Two things make that work far better:
GAME.md records them in their own words.assets/drawings/. Ask the AI to turn one into the player.
A game starring something they drew is a different experience from a game with a circle.Say “undo the last change.” This is a git repo, so nothing is ever really lost. A broken game cannot break the menu — worst case you land back on a working main menu. Commit whenever a game is in a good state.
game/ your games — one folder each, with its own GAME.md. This is where the AI works.
shell/ menu, pause, score, audio, juice, self-play. The AI is told not to touch it.
assets/ art and sound — people, monsters, animals, items, voice, music. See INDEX.md.
docs/ the published web build. Generated by tools/publish_web.sh; do not hand-edit.
tools/ publish_web.sh, playtest.sh (headless self-play), shots.sh (real screenshots)
GAME.md a blank form to sketch an idea in before the game exists
CLAUDE.md the rules the AI follows
The bots catch broken spawners, impossible objectives and unloseable games. They cannot tell you whether a game is fun. That part is yours.