# Make a game in code

> Write a disko game in TypeScript, play it in a test room in a minute, and let a coding agent do the typing.

A disko game is a small TypeScript project. You describe the field, the
rules and the Menu; disko runs the physics and keeps every player in sync.

## Play one in a minute

You need [Node.js 22 or later](https://nodejs.org).

```sh
npm create @disko-game -- game arena --ts
cd arena
npm install
npx disko dev
```

Your browser opens a private test room with a ready-made team game: pick a
team, move with the arrow keys, kick with Space. Leave it running; every
save reloads the game.

## Let a coding agent build it

Open the project in Claude Code, Codex or any coding agent and describe
what you want. The project ships an `AGENTS.md` that teaches the agent the
rules, and these docs are plain Markdown for it to read.

> [!PROMPTS]
>
> - Read AGENTS.md. Then put a goal on each side of the field.
> - When the ball crosses a goal line, give the other team a point and show the score in the HUD.
> - Add a Menu option for the match length: 3, 5 or 10 minutes.
> - Run disko dev with --json and fix every problem it reports.

[Build with a coding agent](/agents/coding-agents) has the details.

## Or write it yourself

1. [How a game works](/get-started/first-game): the ideas behind every
   game, in one small file.
2. [Make your game](/games/world-and-physics): the field, players, the Menu
   and HUD, one topic per page.
3. [Publish a release](/get-started/publish) so any room can load it.

Every function is in the [reference](/reference/game).
