GamePlatform

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.

Start your own

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.

Setup (about five minutes)

  1. Install Godot 4 — the standard version, not .NET/mono. The mono build cannot export to the web at all, and it rewrites project.godot with C# settings this project has no use for.
  2. Install an AI coding toolClaude Code is what this kit is tuned for.
  3. Use this template, clone your copy, and open the folder in your AI tool.
  4. Open the same folder in Godot and press F5. You get a menu listing whatever games are in 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.

Making a game

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.

Putting it on the web

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.

Working with a kid

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:

If something breaks

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.

What is where

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.