One lesson, one room, no prior coding. Students write a short story in a plain-language script called VXLScript; a 3D game builds live next to the text as they type. Nothing to install, no student accounts, no email addresses collected. Every game is handed in to your class page, and the last seven minutes are the class playing each other's games.
Before they arrive — 5 minutes, once
- Go to
vxlverse.com/class, sign in with Google (teacher only), name the class (e.g. Tuesday P4) and press Create class. You get a code that looks like ZEUS-K7M2Q. - Write the code on the board, large. It is the only thing students need. (Or put
vxlverse.com/class/YOUR-CODE/board on the projector — it shows the code and the three joining steps at back-row size.) - Open a second tab at
vxlverse.com/studio-live on the projector machine. Click into the code panel, press Ctrl+A then Backspace, and type (or paste) the six-line hook game below. Leave it there. Do not play it yet. - Plan groups of three. Pair programming beats one-kid-one-Chromebook for a first lesson: they argue about the story instead of typing in silence, and three keeps everyone within reach of the keyboard. A free class holds 30 hand-ins, so thirty students in threes leaves you plenty of room — and if your students work alone, thirty of them still fit.
The six-line hook game
Title: The Lost Crown
World "forest":
Character "Mara":
say I lost my crown somewhere in these woods. Find it for me!
item 👑 crown
Win when: player has 👑 crown
That is a complete, winnable 3D game. Read it downward: where (World), who (Character), what she says (say), what is out there (item), how you finish (Win when).
Timing
| Minutes | Teacher does | Students do | Why it matters |
| 0–5Hook | Plays the six-line game on the projector — walks to Mara, presses E, finds the crown, wins. Then points at the code panel and reads the six lines out loud. Changes one word; the world rebuilds. | Watch. Guess how many lines it took. Read the six lines back. | The game is not a black box. Everything on screen came from text they can read — so text is worth writing. |
| 5–10Join | Reads the five join steps to the class. Circulates for the two kids who typed the code wrong. | Open Chrome, go to vxlverse.com/class, type the code, pick a nickname, land in the editor. | No accounts, no passwords, no email. Five minutes is the whole cost of entry, and nothing personal is collected. |
| 10–20First world | Types three lines on the projector, one at a time, pausing after each so the room sees what changed. Asks the swap question. | Clear the sample code, type World, Character, two say lines. Click the world and walk up to their character. | Sequencing. Lines run in the order they are written, and the order is visible in the world — swapping two say lines changes what the character says first. |
| 20–30Make it a game | Adds wants:, gives:, an item and a Win when: line. Deliberately leaves Win when: out first and reads the compiler's message aloud. | Add the same four ideas to their own story. Play until they see the win screen. | Goal state and debugging. A world with a person in it is not yet a game. The compiler proves the game can be finished — or says it cannot, before anyone plays it. |
| 30–38Make it yours | Stops talking. Circulates. Writes three "try one" prompts on the board: change the world word, add an Enemy, add a choice. | Rename everything, change the biome, add an enemy, add an if choice is branch, keep playing. | Selection and iteration. A choice is a fork in the program. Every change is tested by playing it three seconds later. |
| 38–45Arcade | Calls hand-in at 38 exactly. Opens vxlverse.com/class/YOUR-CODE on the projector and presses Start the arcade — the class's games play one after another, author narrating, award read out. | Press 🎒 Hand in, then See your class →. Then watch the big screen and shout instructions at whoever is holding the keyboard. | The work is finished, playable by someone else, and named: every child has a game on the class page and an award earned from what she wrote. That is what makes them come back. |
Stage 1 — 0–5 min: the hook
The projector tab already has the six lines in it. Do not show the code first.
Say: "Nobody touch anything. Watch this for one minute."
Click the 3D world on the right. You are now in the game. W A S D walks, hold the left mouse button and drag to look around, E talks to whoever you are standing in front of. Walk to Mara, press E, let her line finish, then go and find the floating crown. Take it. The win screen appears.
Say: "That was a 3D game. Somebody guess — how many lines of code is that? Hands."
Take three guesses. They will say hundreds. Now point at the left-hand panel.
Say: "Six. And here they are. Read them with me."
Read each line and say what it does, in these words:
World "forest": — "where it happens." Character "Mara": — "who is in it." say … — "what she says when you talk to her." item 👑 crown — "a thing lying in the world that you can pick up." Win when: player has 👑 crown — "how you finish. Without this line it is not a game yet — hold that thought."
Now the concept question. Click into the code and change forest to volcano. Do not press anything else — the world rebuilds by itself in about a second.
Ask: "I changed one word. What just happened to the world? … So what is the code actually for?"
You want someone to say out loud that the text is the game, not instructions about the game. Change it back to forest and move on. Do not explain anything else.
Stage 2 — 5–10 min: joining
Read these five steps to the class, one at a time, and wait for hands down after each. Point at the code on the board every time you say it.
- "Open Chrome. Go to vxlverse.com/class — that is v-x-l-verse dot com slash class."
- "On the left there is a box that says I have a class code. Type ZEUS-K7M2Q — it's on the board. Press Join."
- "You should see our class name at the top. Press the big dark Make your game button."
- "It asks for a nickname. Not your real name. A game name — Astronaut, Pancake, Ravenclaw. That is the name your game shows up under on our class page."
- "Press Let's go. You should now see writing on the left and a little 3D world on the right. Thumbs up when you're there."
Say once, plainly: "There is no password, there is no account, and nobody is asked for an email address. If you close the tab your work is still here when you come back on this same computer."
Then clear the decks:
Say: "There is some example code already in there. Click on it, press Ctrl and A together, then Backspace. Make it completely empty. We start from nothing."
The three things that go wrong here, and the fix in one sentence each:
- "Class not found" — the code is mistyped; the dash matters, the letters are not case-sensitive.
- Sharing a Chromebook with a partner who joined earlier — tap the nickname in the yellow
🎒 chip at the top to switch to a different student. - Nothing on the right-hand side — the editor is empty, which is correct at this point. The world appears with the first line.
Stage 3 — 10–20 min: your first world
Type on the projector one line at a time and have the room type it with you. Pause after every single line and look at the right-hand side.
Say: "Line one. Where does your story happen? Type World, space, then the place in quotes, then a colon."
World "snow":
Say: "Look right. You are standing in it. Try a different word — desert, jungle, dungeon, volcano, beach, city. Ten seconds. Go."
Let the room shout out the worlds they found. Then:
Say: "Line two. Somebody has to be in there. Type Character, space, a name in quotes, colon."
Say: "Line three matters — watch my fingers. Press space space first, so the line starts further in than the one above it. Then say and whatever they say. The indent is how the computer knows this line belongs to that character."
World "snow":
Character "Bo":
say Hello! Who are you?
say I have been standing in this snow all morning.
Say: "Click the world. W A S D to walk, hold the left mouse button and drag to look, walk up to Bo and press E. Somebody you invented is talking to you. Go."
Give them four minutes. Circulate. Then bring them back for the question that makes the concept land.
Ask: "Everyone look at your two say lines. If I swap them over — put the bottom one on top — what will change in the game? Say it before you do it."
Take a prediction, then have them do it and talk to their character again. Confirm it out loud: "The computer does your lines in the order you wrote them. Top to bottom. Nothing clever, nothing hidden — the order on the screen is the order it happens. That has a name: sequencing, and it is true of every program ever written."
They will notice a message at the bottom of the editor saying the game has no way to win yet. Do not fix it. Say: "It's right. This isn't a game yet. That's the next ten minutes."
Stage 4 — 20–30 min: make it a game
Say: "You have a world and a person. Why is that not a game? What is missing?"
Push until someone says something like you can't win or there's nothing to do. That is the whole idea of the stage.
Say: "A game needs three things: something you have to get, someone who wants it, and a rule that says you've finished. Three lines. Watch."
Type these on the projector, in this order, saying what each one is:
World "snow":
Character "Bo":
say I have been standing in this snow all morning.
say My dog ran off. Bring me a bone and I will call him back.
wants: 🦴 bone
gives: 🐕 puppy
item 🦴 bone
Win when: player has 🐕 puppy
wants: — "Bo will ask you for this and won't stop asking until you bring it." gives: — "what he hands you when you do." item 🦴 bone — "the bone actually exists in the world now. Notice this line is all the way to the left, not tucked under Bo. It belongs to the world, not to him." Win when: — "the finish rule."
The deliberate mistake — do this, it is the most valuable 60 seconds of the lesson. Before you type the last line, stop with only wants: and gives: in place and point at the status line under the editor:
💡 Your game has no way to win yet — add a `Win when:` line at the far left, or `win` under a choice.
Say: "Nobody has played this. Nobody has tested it. The computer has already read it and told me it cannot be finished. That is what a compiler is — a machine that reads your work and finds the hole before your player does."
Now type the Win when: line. The message flips to:
💡 Add a second `World "…"` and a glowing portal links the two.
✓ Looks good — click the game to play it.
Say: "Now go and win yours. Talk to your character first — the thing they want only appears once they've asked you for it."
While circulating, the two errors you will actually see:
- The item is indented under the character. If
item 🦴 bone sits under Character with spaces in front of it, it belongs to the character and quietly disappears from the world. Symptom: the status line says it "auto-placed" the item. Fix: delete the spaces so the word item starts hard against the left edge. - The
Win when: line is indented. Same cause, same fix — it is a rule for the whole game, so it lives at the left edge.
Say this to whoever you help, every time, because it is the transferable idea: "Where the line starts tells the computer who it belongs to."
Stage 5 — 30–38 min: make it yours
This block is theirs. Write three prompts on the board and then stop talking.
- Change the place. Change the word in
World and see what you get. - Add an enemy. Three lines, and the second and third are indented:
Enemy "Frost Wolf":
kind: wolf
tier: 2
Say this out loud when you write it up: "kind: goes on its own line, indented. If you put it on the same line as the name, you get a monster called Frost Wolf: kind: wolf — the computer thinks that whole thing is its name. Try it if you don't believe me." Kinds worth knowing: wolf dog bat spider skeleton zombie ghost slime robot drone golem raider wyrm. tier: is difficulty, 1 to 50 — start at 2.
- Give the player a choice. The
say lines under each choice are indented one more step: if choice is "I will find him":
say You are a good one. Hurry!
if choice is "It is too cold out there":
say ...Then I will wait a little longer.
Put together, a finished 38-minute game looks like this — this is the version to leave on the projector while they work:
Title: Bo and the Frost Wolf
World "snow":
Character "Bo":
say My dog ran off into the storm.
say Bring me a bone and I will call him back.
wants: 🦴 bone
gives: 🐕 puppy
if choice is "I will find him":
say You are a good one. Hurry!
if choice is "It is too cold out there":
say ...Then I will wait a little longer.
Enemy "Frost Wolf":
kind: wolf
tier: 2
item 🦴 bone
Win when: player has 🐕 puppy
Two things to say to the room during this block, and nothing else:
- At 34 minutes: "If you have not played your own game in the last two minutes, play it now." (Iteration. They forget.)
- To anyone stuck: "Read the message at the bottom of your editor to me." (Not "what's wrong?" — make them read the compiler. By the third time they do it without you.)
For fast finishers, point at the What can I add? chip above the editor (or ⌘K / Ctrl+K) rather than teaching anything new — it lists everything you can put in a game and drops the words straight into the story. Examples opens finished games they can take apart, and Guide in the toolbar opens the whole command list in a second tab.
Stage 6 — 38–45 min: hand in, then the arcade
Call it firmly at 38. Nobody is finished; that is fine and is in fact the point.
Say: "Hands off. Everyone press the 🎒 Hand in button at the top. Confetti means it worked. You can press it again later from this computer — it updates your game, it does not make a second one."
If a game cannot be finished, Hand in says so instead of taking it. The child gets a card — "Almost there! Your game needs a way to win before your class can finish it." — with one button: Add a finish line. One tap writes the missing goal into her script and hands the game in. Tell the room once: "If it says Almost there, press the yellow button — that is the computer giving you the last line." It is the reason nothing on your class page is a game nobody can finish.
A child who has handed in is not left staring at a message. Confetti, then a card with See your class → on it — one tap and she is on the class page playing what her classmates made. Inside a classmate's game the button reads ▶ Next classmate’s game, so she keeps moving through the class on her own, with no adult retyping a URL.
The class arcade
Then, on the projector, go to vxlverse.com/class/YOUR-CODE. Every handed-in game is there as a card with the author's nickname and the award their game earned. (These pages are not listed in search and student games never appear in the public gallery — the code is what opens the page.)
Press Start the arcade. The page goes full screen and plays the class's games one at a time: Next game moves on, Back returns, ✕ leaves. The order is the same on every screen in the room, so "everyone go to game four" means the same game on the projector and on a Chromebook at the back — which is what makes this a whole-class activity rather than a demo.
For the projector itself: vxlverse.com/class/YOUR-CODE/board is the broadcast screen — the join code at a size the back row can read, the three joining steps under it, then the class's games cycling by themselves with each child's nickname and award. Arrow keys change the game, space pauses. No nav, no sign-in, nothing to mis-click while thirty children watch.
The awards
Each game carries an award: Storyteller, World Builder, Cast Director, Quest Weaver, Boss Maker, Maze Maker, Path Weaver, Monster Maker or Game Maker. Read it out with the nickname as each game comes up — "Pancake, Cast Director". It costs four seconds and it gives every child one sentence to take home.
The award comes from the game, never from the class: how many characters she wrote, how much they say, how many worlds she built, whether she invented a boss. Nothing counts plays, votes or who was most popular — no such number exists on the page — and no child is ranked above another. Two children who both wrote a cast both get Cast Director, and a child whose game is still six lines is Game Maker, which is a true thing to be called. Every child gets one.
Closing the lesson
The arcade decides the order for you, so you can watch the room instead of the mouse. One rule makes this part work:
Say: "Author does not touch the keyboard. Author sits there and says nothing. I play it. If I can't work out what to do, that's information."
Play for 60–90 seconds each. Then ask the author one question — always the same one:
Ask: "What did you have to fix to make it finishable?"
That question closes the lesson on the right idea. Everybody hit something that did not work, everybody read a message, everybody changed a line and tried again. That is the thing you are actually teaching, and it is worth naming in the last thirty seconds:
Say: "Nobody in this room wrote a working game first try. You all wrote a broken one and fixed it. That is not the bad part of programming. That is programming."
If the room falls behind
- Joining ate 12 minutes. Cut Stage 5 to five minutes and keep the arcade. The arcade is the part they remember; the customisation is the part they will do again at home.
- Half the class hasn't got a win by minute 30. Put the finished eight-line Bo game on the projector and leave it there. Copying it and then changing the names is a legitimate route through — most of them will diverge within two minutes anyway.
- No time for the arcade. Hand-in still takes ten seconds; do it, and open the class page at the start of the next lesson. The games do not expire.
What was actually taught
Named honestly, without dressing it up: sequencing (lines run top to bottom, and Stage 3's swap proves it), selection (if choice is — the program takes one path or another), state (the player either has the bone or does not, and the win rule reads that), decomposition (a game is a world, plus characters, plus things, plus a rule), and debugging as the normal case (the compiler reports, the student reads it, changes one line, re-tests). This maps onto the sequencing and selection strands of most computing curricula; check the wording of your own scheme of work rather than trusting a number quoted by a website.