You can build a first Scratch game in 30 minutes: pick a backdrop, add a bowl and an apple, move the bowl with the arrow keys, drop the apple from the top, count the score with a variable and end the game after 30 seconds with the timer. Below, every block is named exactly as it appears in the Scratch editor.
This tutorial is for children aged 8–12 opening Scratch for the first time, and for the parent sitting next to them. No coding experience is needed. By the end you will have a working game and the three ideas every game is built on: a loop, a condition and a variable.
What is Scratch and what do you need?
Scratch is a free block-based programming language created at the MIT Media Lab and now developed by the nonprofit Scratch Foundation. It is aimed mainly at ages 8–16. It runs in the browser at scratch.mit.edu, and there is a Scratch app for working offline.
What you need:
- a computer or laptop with a keyboard (arrow-key control is awkward on a tablet);
- 30 minutes and a little patience;
- optionally, a Scratch account if you want to save online and share.
To change the language, click the globe icon in the editor’s top menu. Scratch is available in many languages, including Georgian. Block colours and categories stay the same in every language, so you can find each block below by its colour even in another interface language.
Course at TDSRobotics and Electronics 7–9: from mBot to Your Own Otto Robot7 months · 3 phases · 72 h · Starts 21 NovDetailsStep 1: project, backdrop and sprites (5 minutes)
The idea is simple: apples fall from the top, a bowl waits at the bottom, and the player moves the bowl left and right to catch as many apples as possible.

Setting up the project takes four actions:
- Open scratch.mit.edu and click Create in the top menu. The editor opens with the cat sprite.
- Right-click the cat in the sprite list and choose delete.
- In the bottom-right corner, click Choose a Backdrop and pick Blue Sky.
- Click Choose a Sprite and search for Bowl. Repeat for Apple.
If the bowl looks too small, type 150 in the Size field of the sprite info. A bigger bowl makes the game easier; a smaller one makes it harder.
The stage is 480 pixels wide and 360 pixels tall. The centre is x: 0, y: 0; x runs from −240 on the left to 240 on the right, and y from −180 at the bottom to 180 at the top. You will need these numbers in a minute.
Step 2: move the bowl with the arrow keys (5 minutes)
Select the Bowl sprite and build this script in the code area. The blocks live in the Events, Control, Sensing and Motion categories.
when green flag clicked
go to x: 0 y: -140
forever
if <key right arrow pressed?> then
change x by 10
if <key left arrow pressed?> then
change x by -10Click the green flag and try the arrows. The bowl should glide smoothly.
Why “forever” plus “if” rather than the “when key pressed” block? With the second option, the computer starts repeating a held key only after a short pause, so the bowl stutters. The loop checks the keys many times a second, so the movement is smooth. That is your first lesson about loops: a command that repeats until the game ends.
Step 3: make the apple fall (10 minutes)
Now select the Apple sprite. The apple should appear at a random spot at the top and fall down. “Pick random” is in Operators; “y position” is at the bottom of Motion.
when green flag clicked
go to x: (pick random -220 to 220) y: 170
forever
change y by -5
if <touching Bowl?> then
change score by 1
start sound Chomp
go to x: (pick random -220 to 220) y: 170
if <(y position) < -170> then
go to x: (pick random -220 to 220) y: 170You don’t have the “change score by 1” block yet: we create it in the next step. The script has two conditions. If the apple touches the bowl, the score goes up and the apple reappears at the top. If it hits the ground (y below −170), it also goes back up, but without a point.
Why −220 and 220 rather than −240 and 240? So the apple never hides half off the edge of the stage. The −5 is the speed: try −3 and −10. A small number makes the game easier, a large one harder.
Step 4: the score variable (5 minutes)
A variable is a box where the computer keeps a number. We will call ours “score”.
- Open the Variables category and click Make a Variable.
- Name it “score” and keep For all sprites selected.
- A counter appears in the corner of the stage. If not, tick the box next to the variable.
- In the Apple script, insert “change score by 1” where shown above.
- In the Bowl script, right under “when green flag clicked”, insert “set score to 0”, so every new game starts from zero.
“For all sprites” matters: the apple raises the score and the bowl resets it, so both must see the variable.
Step 5: a 30-second timer and the end of the game (5 minutes)
A game needs an ending, and Scratch has a built-in timer for that. Add a second, separate script to the Bowl sprite:
when green flag clicked
reset timer
wait until <(timer) > 30>
say (join "Score: " (score)) for 2 seconds
stop allA sprite can have several scripts, and they all start together when the flag is clicked. The game is now complete: click the flag, catch apples for 30 seconds and see your result. Save the project with File, then Save to your computer.
Don’t dictate every block to your child. After step 4, ask: “What do you think happens if we change −5 to −15?” Guess first, then test. That way your child becomes the author of the code rather than a copier, and that is how they learn fastest.
The Scratch blocks in this game
| Block | Category | What it does |
|---|---|---|
| when green flag clicked | Events | Starts the script |
| forever | Control | Repeats endlessly |
| if … then | Control | Checks a condition |
| key … pressed? | Sensing | Checks a key |
| touching …? | Sensing | Checks contact |
| change x by … | Motion | Moves sideways |
| pick random … to … | Operators | Gives a random number |
| set … to … | Variables | Gives a variable a value |
| timer | Sensing | Counts seconds |
Common bugs and how to fix them
- One apple scores several points. You forgot “go to x… y: 170” inside the “if touching Bowl?” block, so the apple stays on the bowl and scores on every loop.
- A new game starts with the old score. The Bowl script is missing “set score to 0”.
- The apple fell once and vanished. Check that everything sits inside “forever” and that the second condition tests −170, not 170.
- The score variable is missing in the Bowl. You created it “For this sprite only”. Delete it and create it again “For all sprites”.
- The bowl stops at the edge. Not a bug: Scratch does not let a sprite leave the stage completely.
What your child learned, and how to share the game safely
In 30 minutes your child used the ideas that every video game is built on:
- Event: the program starts when something happens, here a click on the flag.
- Game loop: “forever” checks keys, movement and collisions many times a second, exactly as in professional engines.
- Condition: “if touching, then…”; every rule of a game is written as conditions.
- Variable: score, time, lives and level all live in variables.
Ask your child where they see these four ideas in their favourite game. That conversation is the start of moving from player to maker.
To share the game, you need a Scratch account and the Share button. Other users can then see the project, comment and remix it. The Scratch Foundation publishes community guidelines and moderates the site, but a few rules are still worth it: don’t use a real full name as the username, keep your child’s photo and voice out of projects, and read the guidelines together. If you don’t want to share yet, simply save the file to your computer.
How to improve the game: 6 ideas
Once the basic game works, the fun part begins. Pick one idea and try it yourself:
- Speed up. Create a “speed” variable and increase it every 5 points.
- Several apples at once. Use clones: “create clone of myself” and “when I start as a clone”.
- Lives. Three lives; a dropped apple costs one, and at zero the game ends.
- A rotten apple. A second sprite that takes points away, so the player has to choose.
- High score. A “record” variable that changes only when the score beats it.
- Music. Background music with the Music extension.
Frequently asked questions
How do you make a game on Scratch from scratch?
Pick a backdrop and sprites, give the player sprite a movement script with “forever” and “if” blocks, add an object that moves, and add a score variable. The five steps in this article follow exactly that order and give you a first game in 30 minutes.
Is Scratch free?
Yes. Scratch is completely free, runs in the browser and needs no installation. There is also a free Scratch app for offline work. An account is only needed to save online and share.
What age is Scratch for?
Scratch is aimed mainly at ages 8–16, though many 7-year-olds manage well with help from a parent or teacher. For ages 5–7 there is ScratchJr, a simpler version for tablets.
Where can I find more Scratch tutorials for beginners?
The Scratch editor has built-in Tutorials. For more ideas, read our guide to coding for kids, which includes a table of free resources.
What should we learn after Scratch?
If your child loved making games, the next steps are MakeCode Arcade, Roblox Studio and Godot, covered in game development for kids. From 11–13, Python is a great continuation: see from Scratch to Python.
Your next step
Game finished? Share it with the family and challenge them to beat the high score. If your child wants their code to drive a real robot instead of a sprite, read mBot and Scratch for kids and look at our Programming and Robotics: Scratch and mBot course for ages 7–10 in Tbilisi. Questions? Book a free consultation.
Sources
- Scratch: For Parents, Scratch Foundation
- Stage, Scratch Wiki
- Coordinate System, Scratch Wiki
- scratch-l10n: Scratch translations, Scratch Foundation on GitHub





