An attic at night. A young woman in a red scarf leans over her laptop and presses a key while a small coral dinosaur leaps out of the screen over glowing teal cacti
getting ready · day 1

Your first game in an hour

Today we'll build a game and make it your own: change the speed, the look and one rule. The agent will write the code. At the end, we'll deliberately spoil the controls and restore them to see how saves work.

⏱ 60–90 minutes including setupyou need: a computer and Claude ProChatGPT Plus
by the end of the day you'll have
  • Claude Code in the terminalthe Claude app with the Code tabCodex in the terminalthe ChatGPT app with Codex on your account
  • a working mini game in your browser
  • three changes, including one you make by hand
  • the programs needed for later lessons
  • saved versions of your game
what you need first
  • A computer: macOS 13 or later, Windows 10 (1809 or later) or 11, Ubuntu 20.04 or later / Debian 10 or later, 4 GB RAM or more.A computer with macOS, Windows or Linux.
  • Internet.
  • A Claude account on Pro or higher.A ChatGPT account on Plus or higher.
  • Permission to install programs on the computer.
  • No extra spending on art today.
quick start · 10 minutes

Already have an agent and know how saves work?

You can start at day 4, where we come up with your own game. Check the preparation list below first.

What to check before day 4
  1. Pick your agent and how you run it. The days show commands for that choice.
    agent
    I run it in
  2. Let the agent check the course tools. It installs what's missing.
    Get my computer ready for a game-making course. Check that git, Node.js (LTS), VS Code and Google Chrome are installed, and show a table: program, installed or not, version. Install what's missing yourself, and before each command say in one line what it does. Don't ask for my password in the chat; give me sudo commands to run myself. At the end, check the versions again. Don't make a game yet.
  3. Learn the five course habits. The days assume you know them:
    • One change at a time. Game numbers live in CONFIG, and from day 6 also on the control panel (P).
    • “Save: …” makes a labeled version. At the end of the day it also gets a day tag.
    • “Restore the last save” when something breaks.
    • Agent notes: CLAUDE.mdAGENTS.md with the course rules, made on day 4.
    • Fresh eyes: an agent in a new chat checks the work, not the one that wrote the code.
  4. If you have a few more minutes, try two exercises. They will help on day 4: “Take the game apart” and “Blind taste test”.

Skip days 1–3 → day 4Days 1–3 get marked as skipped. Come back any time.

In 2018, the Chrome dino game was played 270 million times a month.

And there's almost nothing in it. The dino runs, jumps and ducks.

The developers wanted to teach it to roar and kick.

But then they dropped those ideas.

Three actions were enough for a good runner.

And that's where we'll start the course.

The first world is four days, and by the end you'll have a draft of your own game.

On day one, the agent builds you a simple game, like that same dino.

And you change it three times: tune the speed, change the look and add a new mechanic.

On day two you make a remix. You spin the idea reels and pick a different hero, a new world and an unusual rule. You end up with a whole different game.

On day three you work on the controls. You try different jumps and see how a couple of numbers can make a game feel great or really awkward.

And on day four you come up with your own game. The agent asks you a few questions and, in about ten minutes, builds your first prototype.

The key is not to try to make a huge game with every possible feature right away.

Remember the dino that never learned to roar?

Start with the most fun part. Let your first game last just five minutes, as long as those five minutes are fun.

So, shall we start? Your first game will be ready in an hour.

World 1, “Warm-up”: what's coming in days 1–4. A minute and a half, subtitles on screen.

How we'll make the game

You describe a game, and the agent writes the code and runs it. Play and say what to change: the hero is too fast, jumping is awkward, or you want an enemy.

Yellow marks the steps you take; green marks the agent's work.

Agentone commandone app
Gamein 10 minutes
Workshopthe agent installs it
Changesyou change the game
Rollbackbreak it, bring it back

Choose your computer and agent to see the matching instructions.

what I work with
my computer
agent
how I run it

Check your account

For this lesson, use a Claude account on Pro or higher. Already have one? Go on to installation.

  • Pro: $20 a month, or $17 billed yearly, before tax (claude.com/pricing, October 26, 2026).
  • Claude Code and the regular chat share a five-hour limit and a weekly limit. Check what is left with /usage.

Check your plan at claude.ai. If you do not have an account, create one first.

For the Codex lessons, we will use ChatGPT Plus ($20 a month) or higher. Free and Go have limits: the app only, with a lighter model. If you already pay for Plus, you do not need a separate Codex account. Prices are from the Codex page, checked October 26, 2026.

Sign in at chatgpt.com and check your plan. Then go through the list below.

If the service or payment is unavailable

If your country is not on Anthropic's list, check OpenAI's list. If it is supported there, choose Codex above.

If your country is not on OpenAI's list, check Anthropic's list. If it is supported there, choose Claude Code above.

For a declined payment, see Anthropic's help article. It covers card types, billing addresses and 3-D Secure.

If neither service is available to you yet, you can still try the exercises on this page. Come back to building your game when you have access to an agent.

Install the agent

In a terminal, you paste a command, press Enter and read the response. The installation steps are below. If the terminal is new to you, try them first in the exercise under the steps; it changes nothing on your computer.

system

Install it on your computer

macOS
  1. Open TerminalPress Cmd + Space, type “Terminal” and press Enter.
  2. Paste the command and press Enter
    curl -fsSL https://claude.ai/install.sh | bash
Windows
  1. Open PowerShellPress Win + X and choose “Terminal” (“Windows PowerShell” on Windows 10). Look for PS C:\Users\Name> at the start of the line. Without PS, you are in CMD; close it and open PowerShell.
  2. Paste the command and press Enter
    irm https://claude.ai/install.ps1 | iex
    No admin rights needed. Don't install Git first: the agent does it in step 6.
Linux
  1. Open a terminalUsually Ctrl + Alt + T. Ubuntu 20.04 or later, Debian 10 or later and Alpine 3.19 or later work.
  2. Paste the command and press Enter
    curl -fsSL https://claude.ai/install.sh | bash
    Later the agent installs programs with apt or dnf. Sudo commands you type yourself, in a separate window.

The installer may stay quiet for a minute or two while it downloads files. Wait for Claude Code successfully installed!, then open a new terminal window and enter:

claude --version
macOS
  1. Open TerminalPress Cmd + Space, type “Terminal” and press Enter.
  2. Paste the command and press Enter
    curl -fsSL https://chatgpt.com/codex/install.sh | sh
Windows
  1. Open a new PowerShell windowPress Win + X and choose “Terminal” (“Windows PowerShell” on Windows 10).
  2. Paste the command and press Enter
    powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"
    Don't install Git first: the agent does it in step 6.
Linux
  1. Open a terminalUsually Ctrl + Alt + T.
  2. Paste the command and press Enter
    curl -fsSL https://chatgpt.com/codex/install.sh | sh
    Later you type sudo commands yourself, in a separate window.

When installation finishes, open a new terminal window and check the version. The old window may not find the new program yet.

codex --version

The exercise uses Claude Code. Codex has a different install command, but the process is the same: paste it, wait for the response, then check the version.

exerciseA pretend install
Try all four scenarios to see a successful installation and a few common errors.

Check that installation finished and the agent can start.

How to check:

  • The install ended with the line Claude Code successfully installed!
  • claude --version in a new window prints a version number (yours will differ)

If an error appears instead of a version number, look for it in the table below.

Common terminal errors
what you seewhat it iswhat to do
Windows: “'irm' is not recognized…”this is CMD, not PowerShellopen PowerShell or paste the CMD command: curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
command not found: claude or “claude is not recognized”the terminal doesn't know where the program isa new window. Didn't help? The command from the Setup notes block at the end of the install, or from the Terminal guide
HTML code or “App unavailable in region”the service isn't available in your countrystep 2, “If it doesn't work”
Windows: “Could not create SSL/TLS secure channel”an old Windows 10the Tls12 command from the Terminal guide, then install again
Windows: “does not support 32-bit Windows”“Windows PowerShell (x86)” is openopen the one without “(x86)”

Check that installation finished and the agent can start.

How to check:

  • The install finished, and the window is waiting for a command again
  • codex --version in a new window prints a line like codex-cli 0.163.0; your number will differ

If codex is not found, try another new terminal window. If you see HTML instead of an installer, check the service availability in step 2.

Download the app from its official site and sign in. Follow the steps below for your chosen agent.

  1. Download the Claude appThe official download page: claude.com/download. There are versions for macOS 13 and later, Windows 10 and later (x64 and ARM64) and a beta for Ubuntu and Debian.
  2. Install and sign inOpen the downloaded file, install the app, launch it and sign in to your paid account.
  3. Open the Code tabIt's at the top of the sidebar. Claude Code is built into the app, no separate install.
  1. Download the ChatGPT appCodex lives in it now. The official download page: chatgpt.com/download. There are versions for macOS and Windows (through the Microsoft Store); Linux is a preview for now. Have the old Codex app? Update it to ChatGPT.
  2. Install and sign inLaunch the app, press Continue and sign in to your paid account in the browser.
  3. Pick CodexIn the app's drop-down list, switch from ChatGPT to Codex.

Before your first task, check that the app opens and you are signed in to the right account.

How to check:

  • The app launches
  • I'm signed in with a paid account
  • The Code tab opens without asking me to buy a planCodex is picked in the app's list

If Code asks you to buy a plan, check at claude.ai that Pro is active on the account you used.If Codex is missing from the list, update the app.

Open a folder for your game

Keep the game in its own folder so its files stay together. The command below creates games/first-game in your home folder and starts the agent there.

macOS and Linux
mkdir -p ~/games/first-game && cd ~/games/first-game && claude
Windows
mkdir ~\games\first-game -Force | Out-Null; cd ~\games\first-game; claude
  1. Sign inThe browser opens: sign in to your paid account. If not, press c in the terminal and paste the link into the browser.
  2. Back to the terminalYou'll see Login successful. Press Enter.
  3. Trust the folderCheck that the path is your new game folder, then confirm.
  4. Look at the bottomThat's the mode, now auto mode: safe steps happen without questions.
claude · ~/games/first-game
✻ Claude Code ~/games/first-game1 ❯ ▍2 ⏵⏵ auto mode on3
  1. 1the agent's folder
  2. 2type your task here and press Enter
  3. 3the mode
keywhat it does
Escstop the agent
Shift + Tabswitch mode
!commandrun a command yourself, without the agent
/exitquit Claude Code

Create a separate folder for the game. The command below makes games/first-game in your home folder and starts Codex there.

macOS and Linux
mkdir -p ~/games/first-game && cd ~/games/first-game && codex
Windows
mkdir ~\games\first-game -Force | Out-Null; cd ~\games\first-game; codex
  1. Sign inChoose “Sign in with ChatGPT” and sign in to your paid account in the browser.
  2. Trust the folderCodex may start in read-only mode and ask whether you trust this folder. Check the path before confirming.
  3. Turn on AutoType /permissions and choose Auto. Then Codex writes files in its folder by itself and asks you before going online or changing anything outside it.
what to typewhat it does
/permissionsswitch mode
!commandrun a command by hand, without the agent
Enter while the agent worksadd an instruction on the fly
/exit or Ctrl + Cquit Codex

Create a separate game folder and open it in the app. That keeps all of the game files together.

  1. Choose the Local environmentIn the Code tab, click the first button, the environment picker, and take the top item in the Local group. Then the agent works right on your computer.
  2. Open the game folderNext to it, click the folder picker, then Open folder… In your home folder create games, inside it first-game, and select it. The new folder button is right in the picker.
  3. Choose the modeIn the mode list under the input box, choose Auto: the agent does safe steps itself. No Auto? Take Accept edits: the agent edits files in the folder itself and asks before commands.
  4. Type your taskType your task in the input box and press Enter.
wherewhat it does
mode list under the input boxswitch mode
Terminal button in the session header, or Ctrl + `your own terminal in the game folder
click a path to an .html file in the chatopen the game in the Browser panel

Create a separate game folder and open it in the app. That keeps all of the game files together.

  1. Open the game folderIn Codex choose Open folder (on a Mac, Cmd + O). In your home folder create games, inside it first-game, and select it. The new folder button is right in the picker.
  2. Work on your computerIn the Work in switch, choose This computer.
  3. Check the modeUnder the input box there's a permissions switch. Choose Ask for approval: Codex works in its folder by itself and asks you before going online or changing anything outside it. Don't turn on Full access.
  4. Type your taskType your task in the “Ask Codex anything” box and press Enter.
wherewhat it does
switch under the input boxswitch mode
New tab → Terminal, or Ctrl + `your own terminal next to the chat
built-in browsersee the game without leaving the app

Build your first game

Choose Dino, Bird or Snake, or start with your own idea. The three games have ready-made prompts below. Dino is a useful first try because we use it to demonstrate changes and saves.

Already have an idea? Start with one action and one short round. Today you will practise giving the agent tasks and saving versions. On day 4 you can start your main project from scratch.

I want to prototype my own idea

Put your idea into the prompt below and send it instead of one of the three game prompts. Then follow the same steps: set up the tools, make three changes and restore a save. Ask the agent to adapt the Dino examples to your game.

I want to start with my own game: [my idea]. Make a small prototype in index.html in this folder. Keep one main action, one obstacle, a clear goal and a round of up to 60 seconds. If the idea is too large, first suggest which part we should try now. Use one file with HTML, CSS and JavaScript inside. No libraries, build tools, images or internet. Draw simple shapes on a canvas. The file must open in a browser with a double-click. Put all game numbers in CONFIG at the start of the script, with plain-English comments. Controls: keyboard and mouse, or touch. Add a result screen and a “Try again” button. Award points for progress toward the goal, show the best score and keep it in localStorage. Open the game and explain how to play and what to check. Show one number in CONFIG that I can change myself, and suggest another value. Later I’ll send tasks from introductory lessons that use Dino, Bird or Snake as examples. Apply the technique to my game: a number change, a visual change, a new rule or a settings panel. Don’t copy the example’s characters or setting. Before each change, explain what you’ll adapt.

Based on the Chrome dino (Google, 2014). Its makers boiled it down to a runner's basics: run, duck, jump.

Based on Flappy Bird (Dong Nguyen, 2013). Gravity is so strong that “even the slightest wrong tap would kill it” (Rolling Stone, 2014).

Based on Snake on the Nokia 6110 (Taneli Armanto, 1997). Armanto's rule: “There is no point in using complex solutions when simple does the job.”

Make a mini game called “Dino” in one index.html file in this folder. It's a runner based on the Chrome dino: one button, cacti, growing speed. # What it should be The dino stands at the left edge of the screen on the ground line and runs in place while the world scrolls right to left. Space, the up arrow, a click or a tap makes it jump. It can only jump from the ground. Cacti come in from the right: one, two or three side by side, at different distances from each other. The world speeds up every second until it hits a limit. The score grows with distance: 1 point per 10 pixels. The score and the time left are at the top of the screen. Touch a cactus and the run is over: a “Crash. Score: N” screen. Last 60 seconds and you get a “Finish. Score: N” screen. Both screens show the best score and an “Again” button; space restarts too. # Who I am This is my first game with an agent. I'll open it in a browser on a computer. # Rules for you - One file: HTML, CSS and JavaScript inside. No libraries, no internet, no build step. The game must work if I just double-click index.html. - Draw on a canvas with simple rectangle shapes: the dino, cacti and ground are gray (#535353), the background is light (#f7f7f7). Don't use pictures from the internet. - The canvas fills the whole window. Check keys by event.code so the controls work with any keyboard layout. - The gap between cacti is never shorter than a jump at the current speed, or the run becomes impossible. - Hitboxes are a bit smaller than the shapes, so brushing an edge doesn't count as a crash. - All game numbers go in a CONFIG object at the top of the script, each with a short comment: runSpeed: 360 — world speed at the start, pixels per second; speedUp: 6 — how much the speed grows every second; maxSpeed: 780 — the world never goes faster than this; jumpHeight: 140 — jump height, pixels; timeToApex: 0.35 — seconds to the top of the jump; gapMin: 320 and gapMax: 640 — distance between cacti, pixels; roundSeconds: 60 — run length, seconds. - Keep the best score in localStorage. # How to check Open index.html in the browser. Then write me three lines: how to play, what I should see in the first 10 seconds and how the run ends.
Make a mini game called “Bird” in one index.html file in this folder. It's based on Flappy Bird: one button, pipes, a point for every pair you pass. # What it should be The bird, a yellow circle with an eye and a beak, flies in the left third of the screen while the world scrolls right to left. Space, a click or a tap is a flap: the bird jumps up. The rest of the time it falls. Pairs of green pipes come in from the right, top and bottom, with a gap between them. The height of the gap is random each time. Fly through a gap: +1 point. The score is big at the top of the screen. Touch a pipe, the ground or the top edge of the screen and it's over: a “Score: N” screen, the best score and an “Again” button; space restarts too. Until the first press, the bird hangs in place and the pipes don't move. # Who I am This is my first game with an agent. I'll open it in a browser on a computer. # Rules for you - One file: HTML, CSS and JavaScript inside. No libraries, no internet, no build step. The game must work if I just double-click index.html. - Draw on a canvas with simple shapes. Don't use pictures from the internet. - The canvas fills the whole window. Check keys by event.code so the controls work with any keyboard layout. - All game numbers go in a CONFIG object at the top of the script, each with a short comment: gravity: 1400 — how fast the fall speeds up, pixels per second per second; flapSpeed: 420 — upward speed of a flap, pixels per second; pipeSpeed: 180 — pipe speed, pixels per second; gapSize: 170 — height of the gap between pipes, pixels; pipeEvery: 1.6 — a new pair of pipes every this many seconds. - Keep the best score in localStorage. # How to check Open index.html in the browser. Then write me three lines: how to play, what I should see in the first 10 seconds and how the round ends.
Make a mini game called “Snake” in one index.html file in this folder. It's based on Snake from Nokia phones: a grid of tiles, and the snake grows with every apple. # What it should be A square 20 × 20 tile field in the center of the screen. A three-tile snake starts in the middle of the field and crawls right. Arrow keys or WASD turn it; on a phone, a swipe in that direction. Ignore 180° turns back. There's always one apple on the field, on a random free tile. Eat it: +1 point, the snake gets one tile longer, a new apple appears. Hit a wall or yourself and it's over: a “Score: N” screen, the best score and an “Again” button; space restarts too. # Who I am This is my first game with an agent. I'll open it in a browser on a computer. # Rules for you - One file: HTML, CSS and JavaScript inside. No libraries, no internet, no build step. The game must work if I just double-click index.html. - The snake and the apple are squares in tiles, drawn on a canvas. Don't use pictures from the internet. - The field fits the window size. Check keys by event.code so the controls work with any keyboard layout. - If two arrows are pressed within one step, don't lose the second: keep a queue of two turns. - All game numbers go in a CONFIG object at the top of the script, each with a short comment: gridSize: 20 — tiles per side of the field; stepTime: 0.15 — seconds per snake step; speedUp: 0.97 — after each apple, stepTime is multiplied by this; minStepTime: 0.06 — the snake never crawls faster than this. - Keep the best score in localStorage. # How to check Open index.html in the browser. Then write me three lines: how to play, what I should see in the first 10 seconds and how the game ends.

Copy the whole prompt. It includes the rules and checks.

Shapes are enough for a first version. Miyamoto recalls moving a square around in the first Super Mario Bros. prototype. We will work on the look on days 7–8.

In the examples, change the character and colors but keep the numbers for later exercises. For your own idea, keep the agent’s suggested settings.

Send the prompt to Claude Code. It will create index.html and open the game. If it asks for permission, read the request and confirm if it is for the game file or browser.

Send the prompt to Codex. It will create index.html and try to open the game. Read any permission request before approving it. If the game does not open, double-click index.html.

Send the prompt. When index.html is ready, click its path in the chat to open the game in the Browser pane.

Send the prompt. When index.html is ready, open it in the built-in browser or double-click the file in your game folder.

Once it opens, play it before changing anything.

Over three rounds, check the controls, results screen and “Again” button.

Then ask the agent to show the game settings:

Show me CONFIG and explain each number in one line.

How to check:

  • A round ends on a results screen, and “Again” starts a new one
  • After a page reload, the best score is still there
  • I know where the game's numbers live: the CONFIG block

If it does not open, double-click index.html in games/first-game. Describe any problem specifically: “I press space, but the hero does not jump.”

The agent says, “Done, everything works.” What do you do first?

  • Play and check the three things it describedYes. The chat response cannot tell you whether the game plays comfortably. Try it yourself.
  • Trust it; agents do not fail simple tasksThey can make mistakes on simple tasks too. This check only takes a moment.
  • Ask for the next change straight awayCheck the base game first. If it is already broken, another change makes the cause harder to find.

Set up the programs for later lessons

Now install the programs we need for the course. Git keeps your saved versions; VS Code lets you edit code. We also need Node.js and Chrome. The agent will check what you have and install what is missing.

First press Shift + Tab once: ⏸ manual mode on appears at the bottom. That's manual mode: the agent asks permission before every command.

First choose Manual in the mode list under the input box. That's manual mode: the agent asks permission before every command.

Keep the current mode. In AutoAsk for approval, Codex can work inside its folder and asks before installation, internet access or changes outside the folder.

Your folder: auto. The whole computer: manual.

Go through installation together: the agent explains a command and you read it before confirming. If the explanation is unclear, ask what the command is for.

Get my computer ready for a game-making course. Explain in plain words, no jargon. # Goal The computer has git, Node.js (LTS), VS Code and Google Chrome, and you've checked this with commands. This folder is a git repository with the first save of my game. # Order 1. First only check: what system I have and what from the list is already installed. Also check VS Code with code --version: if the program is there but the code command isn't, set it up. Show a table: program, installed or not, version; and an install plan. Don't install anything until you've shown the plan. 2. Install only what's missing. macOS: if there's no git, run xcode-select --install and tell me what to click in the window. If Homebrew is there, install with brew (node, git, and VS Code and Chrome with --cask). If there's no Homebrew, don't install it yourself: offer me two options and say which you recommend for my macOS version. Windows: install with winget using --accept-package-agreements --accept-source-agreements: Git.Git, OpenJS.NodeJS.LTS, Microsoft.VisualStudioCode, Google.Chrome. 3. Before each command, write one line: what it will do. 4. If a password or a button in a system window is needed, stop and tell me exactly what to click. Don't ask me to type the password in the chat. Don't run sudo commands yourself: give me the command, and I'll run it in a separate terminal window. 5. After installing, check the versions again. If a command isn't found, first try refreshing PATH in this session. If that doesn't help, tell me to restart the terminalapp. 6. Windows: if npm won't run because of the script execution policy, explain what that is and suggest Set-ExecutionPolicy -Scope CurrentUser RemoteSigned. 7. Ask how to sign my git saves (name and email; the email can be made up) and set up git. If git is already set up, show the current name and email and change nothing. 8. Make this folder a git repository and a save called “v1: first game”. # Don't Don't touch files outside this folder, except for installing the programs. Don't change system settings I didn't ask about. # How to check At the end, show a table: program, version, ✓ or what's wrong. If I need to restart you, say so in the last line.

Point 4 is about passwords: enter them only in a system window or a separate terminal, never in the chat.

No Homebrew on the Mac: two options

Install Homebrew. The agent gives you the official command from brew.sh: paste it in a new terminal window (Cmd + N) and type your Mac password. You won't see it as you type, not even asterisks. Homebrew officially supports macOS 15 and later.

Without Homebrew. The agent downloads the Node.js installer from nodejs.org and opens it: you click “Continue” and type your password in the system window. It opens VS Code and Chrome on their official download pages.

Your part during installation

macOS

The “install the tools” window

Check the program name, read the terms and confirm installation.

Mac password

For Homebrew and sudo, in a separate terminal window.

Password in the chat

Do not send it here.

Windows

“Allow this app to make changes?”

“Yes”, if the window shows a program from the agent's plan.

Restart after Git

How: in the block below.

Password in the chat

Keep it out of the chat. Answer No.

Linux

sudo commands

You type them yourself, in a separate terminal window.

New window

That's how you restart the agent after installing.

Password in the chat

Keep it out of the chat. Answer No.

If the agent asks you to restart

Type /exit, close the window, open a new one and paste the line below: -c at the end continues the last chat in this folder.

macOS and Linux
cd ~/games/first-game && claude -c
Windows
cd ~\games\first-game; claude -c

Type /exit, close the window, open a new one and paste the line below: codex resume --last opens the last chat from this folder.

macOS and Linux
cd ~/games/first-game && codex resume --last
Windows
cd ~\games\first-game; codex resume --last

Quit the app completely, reopen it and select the same chat. This lets it find the newly installed programs.

While the programs install

Sort the cards: which tasks are yours, and which belong to the agent?

Who does what today?

Install the agent
Install Node.js and git
Type the computer password
Write the game code
Decide what to change in the game
Save a good version
Approve an agent command

Check the first save

When setup finishes, check the version history. Enter this in Claude CodeCodex:

! git log --oneline

You should see v1: first game. Don't run password commands with !: they go in a separate terminal window.

When setup finishes, check the version history. Open the built-in terminal: Terminal in the session headerNew tab, then Terminal, or Ctrl + `. Go to the game folder if necessary, then enter:

git log --oneline

You should see the line v1: first game. In this terminal you run commands yourself, without the agent.

The programs should now be ready and the first version of your game saved.

How to check:

  • The agent's table lists git, Node.js, VS Code and Chrome with versions
  • git log --oneline shows “v1: first game”
  • The password never went into the chat

If installation stopped or a program is missing, check the suggestions below.

If installation gets stuck
what you seewhat to do
after installing, the agent can't find the command“Refresh PATH in this session.” Didn't help? Restart the agent as above
macOS: no “install the tools” windowit often hides behind the terminal. Or ask it to run xcode-select --install again
Windows: no “allow changes?” window, the install is stuckthe window is blinking in the taskbar
Windows: npm complains about the script execution policyagree to Set-ExecutionPolicy -Scope CurrentUser RemoteSigned: it's only for you
the agent wants to run sudo itselfNo, and write: “Give me the command, I'll type it in a separate window”
no admin rightsput the install off. The game and changes work without Node, but git is needed for saves in steps 7–8

Now change the game

Try three changes: adjust a number, alter the look and add a mechanic. Play after each one, then save the result.

Turn auto mode back on: press Shift + Tab until ⏵⏵ auto mode on appears.

Switch back to Auto in the mode list under the input box (or Accept edits if there's no Auto).

Try a slider in the panel and watch the game change. The panel writes a task for the agent too. Below it, there are changes for Bird and Snake as well.

change panelPlay here, then ask the agent
Change one thing in the game: world speed at the start, runSpeed in CONFIG: 360 → 460. Don't touch anything else. Reopen the game and tell me what I should notice.
Try changing the speed and color together. The panel will show why we start with one change.

Steve Swink recommends a slider test bed. Here are examples of the three kinds of change:

  • Number. Adam Saltsman tuned Canabalt by trying different values (Tuning Canabalt).
  • Look. Chrome's night mode changes the colors while keeping the rules (Chromium code).
  • Mechanic. Pterodactyls were added in 2015 (code review). They give the player a new task: duck under a bird.

Change one number yourself

For your own game, ask the agent to show one setting in CONFIG and suggest another value. Change it yourself and compare. The lines below are for the three ready-made games.

Open the file and replace one number. Dino will run faster, Bird will fall more slowly, and Snake will move faster.

  1. Open the file in the editorAsk the agent: “Open index.html in VS Code”.
  2. Find the linePress CmdCtrl + F and search for runSpeed: 360,gravity: 1400,stepTime: 0.15,
  3. Change the number and saveReplace it with 46011000.1 and press CmdCtrl + S.
  4. Reload the game pageCmd + RF5. Play a round and compare.
  5. Save the changeTell the agent:
    It works. Save: “change 1: faster start”.
    It works. Save: “change 1: weaker gravity”.
    It works. Save: “change 1: faster snake”.

If VS Code did not install, ask the agent to change the number. Try a change by hand once the editor is working.

Change the look

Change one thing in the game: add a night mode like in the Chrome dino. Every 700 points the colors switch to night ones for 12 seconds: a dark blue background (#0d1124) with a few stars, and a light dino, cacti and ground (#e9e4d4). The switch is smooth, over half a second. Don't touch the rules. Put the new numbers in CONFIG as nightEvery: 700 and nightSeconds: 12. Reopen the game and tell me what I should notice.

Wait for night to appear and check that you can still see where to jump. If everything works, ask to save “change 2: night mode”.

Change one thing in the game: how the bird crashes. On a crash it tumbles and falls beak-first into the ground, the screen shakes for 0.2 seconds, and the results screen appears once the bird has landed. Don't touch the rules or the numbers. Reopen the game and tell me what I should notice.

Nguyen tried out ways for the bird to crash and chose a face-plant, and out of hundreds of sounds, a hit from kung fu movies (Rolling Stone, 2014). Play a round and say: “It works. Save: ‘change 2: crash’”.

Change one thing in the game: a palette like an old phone screen. The field background is pale green (#c7f0d8); the snake, apple and border are dark olive (#43523d). Don't touch the rules or the numbers. Reopen the game and tell me what I should notice.

Play a round. Can you clearly see the snake and apple against the new background? Then save “change 2: palette”.

Add a new rule

Add one rule: once the world speed reaches 510, sometimes a bird flies at the dino's head height instead of a cactus. You have to duck under it: the down arrow or S, on a phone a tap on the bottom third of the screen. While the key is held, the dino runs crouched, half as tall. Put the threshold in CONFIG as birdFromSpeed: 510 and the bird chance as birdChance: 0.35. Don't touch anything else. Open the game and tell me the quickest way to see a bird.
Add one rule: a star hangs in the gap of every fifth pair of pipes. Fly through it: +5 points and a short screen flash. Put the frequency in CONFIG as starEvery: 5. Don't touch anything else. Open the game and tell me the quickest way to see a star.
Add one rule: grace time before a crash. If the snake's next step is into a wall or itself, wait another 0.12 seconds. If I turn in that time, the snake keeps crawling; if not, the game is over. Put the time in CONFIG as graceTime: 0.12. Don't touch anything else. Open the game and tell me how to check the grace time.

Armanto came up with this rule himself: the snake was hard to control, so he added “a few milliseconds of extra time right before the player crashes” (MEL, 2019).

Try the new rule in the game. If it works as you intended, ask to save it with a name you will recognize later.

For changes 2 and 3, use a task from this page, the panel or your own idea.

How to check:

  • I changed the first number in VS Code myself
  • The history contains the first game and three separate changes: git log --oneline shows at least four lines
  • One change per prompt

If the agent changed extra things, ask to restore the last save. Repeat the task with “leave everything else as it was”. If you see no difference, reload the game page first.

Put the steps of a change in order

  1. Play
  2. Decide what to change
  3. Write a prompt with one change
  4. Check in the game
  5. Save

Spoil the controls, then restore them

Now test why we saved each version. Add an input delay: press a button and the hero responds half a second later. Try playing, then return the files to the last save. Already know Git? Go straight to your game.

In 2019, Planet Explorers lost multiplayer after some code was lost and could not be recovered from version history (Pathea Games announcement, GamingOnLinux).

time machineYour save timeline
Add the delay, then undo it. After that, visit the first version and return to the latest save.

Now in your game

  1. Break it
    Make the controls respond half a second after the press. Don't save.
    Play a round: with a half-second delay it's barely playable.
  2. Restore it
    Restore all files to the last save.
    The agent runs git restore . (the dot means “all files”). Play again: the controls respond instantly.
  3. CheckIn the built-in terminal, type git status.
    ! git status
    The answer nothing to commit, working tree clean means “nothing to save, files match the last save”.
  4. ★ Open an old version
    Open the version “v1: first game”, just to look.
    The agent runs git switch --detach. Play, then say “Come back to the current version”: it runs git switch -.
Isn't pressing Esc twice easier?

Pressing Esc twice on an empty line opens the rewind menu (/rewind). But it doesn't see changes made by terminal commands, so it doesn't replace version history.

Pressing Esc twice on an empty line lets you edit your previous message, and the chat restarts from there. But only the chat goes back: bring back the game files as in the steps above.

Check that removing the delay brings back the game you had before it. Visiting version 1 is optional.

How to check:

  • The control delay is noticeable in the game
  • After “restore”, the game is as it was after change 3
  • git status says working tree clean
  • ★ A trip to v1 and back to the current version

If it didn't work: the breakage got saved? Say “Undo the last save, but don't delete the history”. Leftover new files? Ask to delete just them. Stuck in an old version? “Come back to the current version”; failing that, run git switch main yourself (with ! at the startin the built-in terminal; or master if the agent named the branch that).

What you have at the end of the lesson

Your game runs and the three changes are saved. Check the files and play once more before moving on.

The agent checks

Check: git, node and code work; the history has 4 saves or more; index.html opens with no errors in the console.

Check in a new chat

Start a new chat: type /cleartype /newopen a new session in the same folder. Send the task below followed by the game prompt from step 5. Without the earlier chat, the agent may notice something it missed before.

Read index.html and list what doesn't match the task below. My changes from the save history (git log) aren't mistakes; don't list them. Don't change the code.

One more round

Play and choose one idea for the homework. What would you like to change next?

A friend opens the agent for the first time and gives it her home folder “to have everything at hand”. What do you say?

  • “Make a separate game folder and open that”Yes. It keeps game files separate from photos and documents. This task does not need those other folders.
  • “Right, the agent needs the whole disk”For the game it only needs the game folder. It might touch the rest by accident.
  • “It sees the whole disk anyway”You choose the working folder. Access outside it depends on permissions, so there is no reason to open the whole home folder for this task.

The agent writes: “Enter the admin password so I can install Homebrew.” Your answer?

  • I type it in the chat: the agent uses it onceWhatever goes into the chat stays in the conversation. Passwords go only into a system window.
  • “No. Give me the command, I'll type it in a separate window”Right. You type the password yourself, in a separate terminal window.
  • I save it to a project file for the agentIn a project file the password is even riskier than in the chat: it stays there for a long time.

After a change the game won't start, and there's no save after it. What do you tell the agent?

  • “Remember how it was and do exactly that”From memory the agent may not bring everything back.
  • “Delete the folder, let's start over”You'd lose the game and all the good changes.
  • “Restore all files to the last save”Yes. The agent runs git restore, and the files go back to the save.

You write: “Make the dino a bit faster and add birds.” What should you fix? Pick all that apply.

  • Split it: speed first, then birdsYou can play after each task and see what changed.
  • Give a number: runSpeed 360 → 460A number sets the speed. With “a bit faster”, the agent would have to choose it for you.
  • Add “open the game and tell me what I should notice”The agent checks it itself and tells you where to look.
  • Add “make it all look nice”That does not describe what to change. Give colors or a specific change to the hero's appearance separately.
  • Nothing; the agent will work it outIt will have to choose the speed and bird behavior for you. They may differ from what you intended.

The agent is about to install programs. How should it work?

  • Without asking: it's fasterIn its own folder, sure. Installing changes the whole computer, so here you read every command.
  • Asking before each command while I readYes. The whole computer: manual.
  • Give it full access to avoid questionsYou can approve the necessary steps in the setup plan. Full access is not needed for that.
homework · getting ready

One more change and your first player

must do
  • Make one more change you like and save it
  • Let someone who has not seen the game try it. Watch how they start without explaining the controls first
  • Write down their first action and anything they struggled with

Valve playtested Half-Life over 200 times, with the developers sitting by in silence (The Cabal, 1999).

extra credit
  • Make a “sound” change with the prompt below and save it
Add a jump sound: a short beep made in code with Web Audio, up to 0.1 seconds, no files. Don't touch anything else. Open the game and tell me what I should hear.
Add a flap sound: a short beep made in code with Web Audio, up to 0.1 seconds, no files. Don't touch anything else. Open the game and tell me what I should hear.
Add a sound when the snake eats an apple: a short beep made in code with Web Audio, up to 0.1 seconds, no files. Don't touch anything else. Open the game and tell me what I should hear.
for your genre

To try another genre, choose one below. The agent will make a second mini game in genre.html. The main game stays in index.html.

Reference: Celeste. Maddy Thorson explains that its jump forgives small mistakes. Start your first platformer the same way: make running and jumping feel good.

Make a genre.html file: a small one-screen platformer with the hero and colors from index.html. The hero runs and jumps across a few platforms, there are a couple of pits and a finish flag. Fall into a pit and the level restarts. Don't touch index.html, put the numbers in CONFIG. Open genre.html and tell me how to play.

Reference: Vampire Survivors. Luca Galante had no plan: “I just put elements in to try and make things fun.” Start with the hero and one enemy type, then add things one at a time.

Make a genre.html file: a one-screen arena with the hero from index.html. The hero walks in all directions, enemies come at it from the screen edges, and there are more of them over time. Touching an enemy costs a life. Last a minute to win. Don't touch index.html, put the numbers in CONFIG. Open genre.html and tell me how to play.

Reference: Baba Is You. Arvi Teikari came up with it at a jam around one rule: the game's rules lie on the field as words, and you push them like boxes. One rule is enough for a first puzzle too.

Make a genre.html file: a tile-grid puzzle with the hero from index.html. One simple rule and three levels that explore it in different ways. Store the levels as lines of text in CONFIG; the R key restarts a level. Open genre.html and tell me how to play.

Reference: Slay the Spire. Mega Crit say “deckbuilding and roguelikes was a particularly strong mechanical pairing”. Start with a few cards and one enemy.

Make a genre.html file: a card mini game with the hero from index.html. A deck of a few cards, three in hand, one enemy against you. On your turn you play cards, the enemy answers, and the fight goes on until one of you wins. Put the cards and numbers in CONFIG. Open genre.html and tell me how to play.

Reference: Warcraft. Patrick Wyatt, a programmer on the first game, writes that in real-time strategy the player is shortest on attention. So keep the controls simple: one resource, one building, a couple of units.

Make a genre.html file: a one-screen real-time mini strategy game. I have a base and workers who carry one resource on their own. For the resource, the base trains fighters. Enemies come at the base from the screen edge. I select fighters with a mouse box and send them with a click. Hold out for three minutes. Don't touch index.html, put the numbers in CONFIG. Open genre.html and tell me how to play.

Reference: Stardew Valley. Eric Barone decided “to start with the basic Harvest Moon ‘formula’ and then expand on it” his own way. Start with one calm loop: plant, wait, harvest.

Make a genre.html file: a mini farm with the hero from index.html. A few garden beds, seeds for coins, and after a while the harvest brings more coins. Keep progress in localStorage, add a “Reset” button. Don't touch index.html, put the numbers in CONFIG. Open genre.html and tell me how to play.

Reference: Papers, Please. Lucas Pope sums up the setup: “You're not the hero slipping through the border, but the guard checking documents.” Start with the player's role and a couple of choices with consequences.

Make a genre.html file: a short story with choices about the hero from index.html. A few scenes, each with a paragraph of text and two options, and one of two endings. Put the texts and scene links in CONFIG. Open genre.html and tell me how to reach both endings.

Reference: Halo. Jaime Griesemer of Bungie describes combat as loops: 3 seconds inside 30 seconds inside three minutes. Start your first shooter with one room where moving and shooting feel good.

Make a genre.html file: a small first-person shooter: one maze room, a view through the hero's eyes, a few enemies. Arrows or WASD to walk and turn, space to shoot. Draw the 3D the simple way on a canvas, like early shooters (raycasting), no libraries and no internet. Don't touch index.html, put the numbers in CONFIG. Open genre.html and tell me how to play.

Try a short turn-based fight with one hero, one opponent and three actions. A win gives the hero experience. That is enough to check whether you want to fight the next enemy.

Make a genre.html file: a small turn-based fight with the hero from index.html. One enemy against the hero, both with a visible health bar. On my turn I pick one of three actions: attack, defend or heal, then the enemy moves. A win gives the hero experience, and the next enemy is stronger than the last. Don't touch index.html, put the numbers in CONFIG. Open genre.html and tell me how to play.
how to tell it worked
criteriapass
Changeyour own, with its own save
First playerthe notebook says what they did first

Time: 15–30 minutes.

remember
  • Your folder: auto. The whole computer: manual.
  • Passwords go only into a system window or a separate terminal. Never into the chat.
  • Ask for one change at a time. Say what should change and how you will check it.
  • Save after a change works. If it goes wrong, ask to restore the files to the last save.

Sources

  1. Claude Code: setup and system requirements Anthropic · checked 2026-10-26
  2. Terminal guide for new users Anthropic · checked 2026-10-26
  3. Authentication Anthropic · checked 2026-10-26
  4. Permission modes Anthropic · checked 2026-10-26
  5. Interactive mode Anthropic · checked 2026-10-26
  6. Checkpointing Anthropic · checked 2026-10-26
  7. Desktop quickstart, Claude Code in Desktop and the Claude app download Anthropic · checked 2026-10-26
  8. Install Claude Desktop Anthropic help · checked 2026-10-26
  9. Claude pricing and Anthropic supported countries Anthropic · checked 2026-10-26
  10. Why was my card declined? Anthropic help · checked 2026-10-26
  11. Codex: CLI, ChatGPT app and download, permission modes, sandbox and approvals, commands, AGENTS.md, pricing, GitHub OpenAI · checked 2026-10-26
  12. OpenAI supported countries and Using Codex with your ChatGPT plan OpenAI help · checked 2026-10-26
  13. Homebrew and Apple command line tools checked 2026-10-26
  14. winget Microsoft · checked 2026-10-26
  15. As the Chrome dino runs, we caught up with the Googlers who built it Google, 2018-09-06 · checked 2026-10-26
  16. Dino code: offline.ts and offline_sprite_definitions.ts; code review 1051433002 Chromium, 2015 · checked 2026-10-26
  17. The Flight of the Birdman: Flappy Bird Creator Dong Nguyen Speaks Out Rolling Stone, 2014-03-11 · checked 2026-10-26
  18. An Oral History of “Snake” on Nokia MEL Magazine, 2019-09-12 · checked 2026-10-26
  19. Iwata Asks: Super Mario Bros. 25th Anniversary, Vol. 5 Nintendo · checked 2026-10-26
  20. Maddy Thorson on the jump in Celeste 2020-03-13 · checked 2026-10-26
  21. Game Feel: The Secret Ingredient Steve Swink, Game Developer, 2007-11-23 · checked 2026-10-26
  22. Tuning Canabalt Adam Saltsman, Game Developer, 2010-09-29 · checked 2026-10-26
  23. Juice it or lose it Martin Jonasson, Petri Purho, 2012 · checked 2026-10-26
  24. Planet Explorers: Pathea Games announcement and GamingOnLinux June–July 2019 · checked 2026-10-26
  25. The Cabal: Valve's Design Process For Creating Half-Life Ken Birdwell, Game Developer, 1999-12-10 · checked 2026-10-26
  26. Genres: Vampire Survivors (PC Gamer, 2022), Baba Is You (Game Developer, 2018), Slay the Spire (Game Developer, 2020), The making of Warcraft, part 3 (Patrick Wyatt, Code of Honor, 2012), Half-Minute Halo: An Interview with Jaime Griesemer (Engadget, 2011), Stardew Valley (Game Developer, 2017), Papers, Please (Game Developer, 2014) checked 2026-10-26

Next lesson, we'll take this game further with a different hero, setting and rule. For now, let someone else try today's version.