🐟 Planning Workbook: Fishy

How to use this workbook: work top to bottom. It walks you through planning Fishy with the method from 01-How-to-Plan-a-Game, then gives you a build order. It says what each piece is and which technique to reach for — you open the Technique Playground and write the code. Wherever you see ✍️ YOUR TURN or a checkbox, that's your work.


The game in a nutshell

You're a small fish in the sea. Swim around and eat fish smaller than you to grow bigger. But watch out — fish bigger than you will eat you. The bigger you grow, the more of the ocean becomes your lunch.

This game's special new idea is size that changes — your fish grows, and size decides who eats whom.


Step 1 — Say it in one sentence

Starting version — ✍️ YOUR TURN: make it yours.

"Swim around eating smaller fish to grow, while dodging fish bigger than me."


Step 2 — What's on the screen? (objects)

✍️ YOUR TURN: decide your shapes and colors. A neat trick: color fish by how dangerous they are (green = smaller than you, red = bigger than you). You could add that later.


Step 3 — What does each object DO? (behaviors)

✍️ YOUR TURN: fill in the blanks.


Step 4 — The rules ("when ___, then ___")

The heart of Fishy is a size comparison. Fill in the blanks.

🔑 Key insight: every fish (including you) needs to know its own size as a number. The whole game is really just: "compare my size to the fish I touched — bigger number wins."


Step 5 — States (scenes)

TitlePlayingGame Over (eaten by a bigger fish) → back to Title.

✍️ YOUR TURN — DECISION: is there a win, or is it endless (go for a high score)? Two good options:

Pick one. (Technique 11 covers scenes.)


🧩 Your Architecture Map

Two rows filled in as examples. ✍️ YOUR TURN: complete the rest.

Object Shape & color What it does Collides with Components it needs Technique(s)
Player fish blue circle swims where you steer; grows other fish pos, circle, color, area, scale 4, 5, 8, 13
Other fish circle, random size drifts across; spawns over time player pos, circle, color, area, move, offscreen, tag "fish" 5, 9
Score/size text shows your size/score pos, text 12

Notice the player has a scale component — that's the growing part (Technique 13).


🏗️ Build order (your milestones)

Build one at a time. Run and check the "✅ works when" line before moving on.

Milestone 1 — Your fish swims

Put the player fish on screen and let it move. Fishy is a free-swimming game (no maze, no gravity), so this is the simplest movement of the three games.

Milestone 2 — The sea fills with fish

Spawn other fish over time (Technique 9). Each new fish should:

Milestone 3 — Eat the smaller fish

Give the player an onCollide with the "fish" tag (Technique 8). In the collision, compare sizes: if the other fish's size number is smaller than yours, eat it (destroy it) and add to your score (Technique 12).

Milestone 4 — Grow when you eat

Each time you eat, make the player a little bigger (Technique 13 — growing with scale). Also bump the size number you compare with, so as you grow you can eat bigger and bigger fish.

Milestone 5 — Getting eaten ends the game

Now handle the other half of the size comparison: if the fish you touch is bigger than you, it's game over (Technique 11).

Milestone 6 — Title, Game Over, and score

Wrap it in scenes: a Title screen ("Press SPACE to swim"), and a Game Over screen that shows your final size/score and lets you restart. If you chose a goal size, add the Win scene too.


🌟 Stretch goals (only after it works!)


✅ Fishy planning checklist

Start with Milestone 1 — get your fish swimming. Then let the sea fill up. 🌊