JunoJR Learning
Skip to learning content
← Bounce Lab: Build a Web Game
Mission 1 of 6Public first mission

Choose the player and make the first bounce

Run Bounce Lab and turn a game idea into a testable promise.

Architect skill: A brief connects a player, a repeating loop, and a visible finish.

The full mission is planned for 90 minutes. Split it into short activities and take breaks. Laptop or desktop with a modern browser for editing. Phones can read the guide and observe or try the preview. Start with fictional data.

Your place, at your pace

Stop after any activity. Ticks are your own notes, not an assessment. Remembering your place is optional and does not sync to another device.

Checklist changes stay in this page unless you choose to remember them.

Jump to the coding workspace ↓

A small activity is enough

Before adding anything, give a small game a clear promise and play its first bounce.

Parent prep · before you start
  • Run the untouched preview and keep a baseline export.
  • Provide paper for three platforms and a four-line brief.

Activity 1 of 4 · 5 minutes

Write a player promise

Child · driver & designer
Choose an invented player and one improvement.
Parent · thinking partner
Ask what a win looks like on screen.
  1. Write move/jump → three stars → gold → restart.
  2. Sketch three platforms and choose one future improvement.
  3. Name one feature you will leave for later.
Look for this: The brief has a repeating loop, finish and bounded change.

Walk through an example

Predict before revealing the result, then try the change in the real workspace. This explanation does not run or test your code.

Before

createState starts with jumps: 2 and stars: [].

One change

Collect a star, then fall past y = 400 without Restart.

Demo prompt 1 of 2

One bounce

Begin with working baseline play.

Try in the workspace: Show two jumps and one collected star.

Check what actually happened

Run each check yourself. Mark it only after comparing the actual output with the expectation; a tick does not automatically test your code.

Signs to discuss together

  • The game loop and one-change brief are saved.
  • The child distinguishes a fall from a whole-run restart.

Stuck? Make the problem smaller

Read the output together. Undo your last small change and run again. Export a copy before resetting files. If this device cannot run the project, read the full reference below and use the parent guide to prepare another computer.

Blank page or module error.

Use the local http:// server rather than double-clicking index.html; confirm the terminal folder.

Explain together

  • Which visible event proves a star was collected?
  • Why does a fall keep stars?

Before you pause: A running baseline, four-line brief, and system sketch. Export workspace files for a portable backup and remember this activity or write its name on paper.

Build, run, observe

Full lesson reference ↓

Use Run in the workspace after one small edit. Browser output is evidence of this browser run; native devices and physical robots need separate checks.

Bounce Lab workspace

Opening the original starter…

Full authored lesson · setup, code, checks & extensions

The complete original lesson is preserved here. Its downloaded-project instructions describe the local development path; the browser introduction above needs no installation. Longer and native/hardware tasks may need the adult-prepared tools listed in the course overview.

By the end, you can…

  • Write a four-line brief
  • Run the included starter
  • Map the system

Keep your starter project and builder notebook open. Make one change at a time and save a working copy before trying the next idea.

1. Write a four-line brief

Your first version fits on one screen.

  1. Name a fictional player and what they enjoy.
  2. Write move and jump → collect three stars → reach gold platform → restart.
  3. Name one improvement and one idea left for later.

2. Run the included starter

Download /lab-starters/arcade-games.zip and unzip; no private repository is needed.

  1. Have an adult open a terminal in the folder and run python3 -m http.server 8080 --bind 127.0.0.1.
  2. Open http://localhost:8080; keep the server terminal open.
  3. Try arrows/A/D, two Space jumps, and the on-screen buttons.

3. Map the system

Rules/state live in model.js; main.js translates input and draws Canvas.

  1. Draw input → step(state, input) → updated state → picture.
  2. Find stars, jumps, and phase in createState().
  3. Save the brief and first observation in design-notes.txt.

Ask your AI coach

Use the JR Playground if configured, or ask an adult to operate their approved coding assistant. These prompts also work as questions for a human partner.

Coach my three-platform game brief. Ask for one measurable success condition and help me choose one bounded improvement. Do not write the entire game.

Before accepting its answer

  • Predict an observable result before accepting the suggestion.
  • Inspect the changed lines; run the relevant check, explain the outcome, and keep or revert using evidence.

Prove it works

  1. Test 1: Collect the first star.

    Expected: The count increases once and the star disappears.

  2. Test 2: Explain the system map.

    Expected: The learner identifies state/rules separately from input/drawing.

If you get stuck

Blank page or module error.

Use the local http:// server rather than double-clicking index.html; confirm the terminal folder.

Choose your challenge

Build together · guided
Arrange printed input/state/rule/picture cards with a partner.
Take the controls · independent
Run the starter and explain its files.
Go deeper · architecture challenge
Explain how another renderer could use the same model.

Save your evidence

A running baseline, four-line brief, and system sketch.

Reflect: What evidence would convince your player that version one works?

Try this with your camp team

Pairs trade briefs and check whether each promise can be demonstrated.

After the public first mission, a parent or guardian uses the existing access flow to open later authored missions. Your workspace remains available.