Log entry: day 6
In the morning the classmate walked around the school on his own for the first time. Only at the press of a key for now, but on his own: he opened the doors himself and flicked the lights himself.
In the afternoon I brought in a document called "The School Ghost: a book of hauntings". It's the concept for the whole game. The kid passes himself off as a ghost, and one rule holds it all together: nobody can see you at the moment you do it. If they saw you with the register in your hands, you're just a troublemaker. If the register vanished and nobody knows how, it's the ghost, and they believe in it more. I said the concept "doesn't cancel our pranks, they just need to be reworked to fit the new concept".
By three o'clock the demo was playable. Three hauntings: hide the class register, leave a message on the board, flood the restroom. A lap of the school was 171 meters. Along the way it turned out that four of the five outside doors were open, and you could get around the demo by walking off across the lawn.
I also said: "Feels like I can already turn on the tap from about 2 meters away". The flight engineer measured it: the kid was turning the water on while standing 2.15 meters from the wall. The reach had been measured with a sphere from the eye to the middle of the object. Now the hand reaches 90 centimeters forward.
Pranks of the first demo






In the evening people showed up in the classroom. Five at the desks and a teacher at the board. I didn't fill the whole class: five would do for now.

And I wrote down what it was all for: "something happened outside the window and everyone went to look, and you rushed over too. And while everyone's looking, you quietly went and moved the register, and came back to watch the show with everyone, and then everyone went back to their seats, and the register's gone! That's the whole point and the philosophy".
The rest of the evening went into putting the register in the teacher's desk drawer. Five commits. The register landed in the drawer one time in five: an invisible shelf hung over the drawer. And I wanted something simple: "Hop, and it lands in its special spot, all set up in advance". The task also counted when I did everything in front of the class: "Weird that the task counted as done when I didn't even close the cabinet and did the whole thing in front of everyone! Weird!!!!"
I also aimed at the desk drawer, and the game offered "take globe": "But weird, in some classroom somewhere it's fine". In three classrooms out of eight the ray hit the body of the desk, and the game offered whatever stood on top: the globe for me, the teacher's chair for the flight engineer, a mug in classroom 2G.
Log entry: day 7
In the morning the mannequins got bodies. Before that a chair went through a student, and a desk through the teacher. I asked straight out: "WHY CAN I WALK THROUGH NPCs?" And while I was at it: "Why did you put five mop cabinets in the classroom?" The cabinets went. And I wrote down for the flight engineer, for the future: "never forget about physics like this".
It also turned out that the kid got taller when he sat down. The seat was higher than his hip joint, so the top of his head was 12 centimeters higher sitting than standing, and his feet hung 30 centimeters off the floor. The chair was lowered to the norm for heights from 1.15 to 1.30 meters.
I sent a turnaround of the kid, and a model was built from it: "this character will be our starting point, like the default skin in Roblox". A schoolgirl and a cat were made on the same skeleton. Yes, a cat goes to this school.

The teacher got up and started walking. I put together the looks of the woman teacher and the janitor myself. The janitor walks around, sweeps and notices everything.
In the afternoon the aha moment appeared. I described it like this: "the teacher walks up to the desk, 'Where's the register????', the class goes 'Wha-wha-what'… and that'll be the start of the aha moment". And I asked for music: "It'd be good to make a ten-second drum and bass, lively and upbeat". It came out at 11 seconds, 174 beats per minute. The camera pushes in, there's a ghost on the kid's T-shirt, and the screen says "Now you're the Ghost of this school to everyone".
The school got sped-up time: a lesson lasts 40 game minutes in three real ones, and the school closes at 14:00. "That's how it is in GTA too." The school got attention, five notches of it, and getting hauled off to the deputy head. We didn't have a deputy head yet, so I suggested the janitor: "he can stand in for the deputy head for now".
In the evening the flight engineer wrote down that characters that bend on a skeleton are something we "don't have and won't have". A week later we'd move to a skeleton.
Log entry: day 8
In the morning I couldn't finish the demo: "why can't I finish the hide-the-register mission now? I hid it and sat down without being noticed! And the teacher came back and put the register back where it was". The day before, the students had been given habits and chatting with the kid next to them. Every frame the chatting turned the head back into place, the class stopped turning toward the window, and all three missions broke.
The same day the log scrap that used to lie in the world went missing. I wrote: "And why isn't this in a test at all, or why are we losing features during development? We absolutely can't allow that".
The cause turned out to be funny. The player's interface lived in the shared body scene, so the eight teachers and the janitor had it too, just hidden. A finished line's name is handed out only once, and nine other people's invisible scraps took it before mine. The same nine bodies took turns stealing the camera from the player.
A glam girl, a quiet one, a nerd and a punk sat down at the desks. I came up with their looks in ChatGPT: I kept at it until each one was recognizable and had character. Back then the flight engineer still built them in code right in Godot. They'd move to Blender later. Kick them, and the punk answers out loud 60 times out of a hundred, the quiet one 16.
Faces of the class







I pointed out: "Notice that in Goose Game there's nothing extra on screen, just the game and a caption". Now for the first half minute the screen shows only the school and one caption. We called it the primer.
And the main thing that day. I needed a show outside the window to make the class turn away: "For example, a big Pac-Man should fly past the window. Or a unicorn. Or a big poop. I love the absurd". The same day all three flew.



Pac-Man's mouth wasn't facing the camera. I said: "forget it". But while we were setting up the wonders, it turned out the thunderstorm outside the window was silent: its table listed the sound "thunder", and there was no thunder in the catalog. Along the way three voices got baked: "waka" for Pac-Man, a neigh for the unicorn, a "plop" for the poop.
The teacher was fun too. At first her gaze was aimed at the room's "origin", which sits in a corner, so she stared at the wall. Then she turned only her head toward the window, but the neck and waist give 120 degrees, and the desk with the register still stayed in her view. Now she actually walks over to the window.
Then I thought: "But I don't control when the unicorn and the storm get launched". So how does the school find out about a prank? "And how do they find out the flood happened? The alarm goes off! Right! They'll say over the PA that there's a flood in the bathroom". That's how the school finds out about a flood. And the first event the player starts himself became, that same evening, the movie: lower the blinds and the class watches a film.
Log entry: day 9
The projector was hung from the ceiling, and half an hour later moved to the wall above the board. And there was no way to start the movie at all. The blind cords ended 2.7 meters above the floor, "a total pain to reach up there". Then I traced the bug down to the link myself: "While I was lowering the blinds, the lesson ended. But I sat down in my seat anyway. The break ended, the lesson started and… nothing". The movie only started in the one frame when the last blind came down. Now darkness is measured by light: a black blind lets through four percent.

I played and wrote: "The teacher said 'there's a Pac-Man outside the window' and went to look at the closed blinds. LOL."
The flight engineer was going over its checks and found three that couldn't turn red. The water check was failing but printed "all good". It wrote down: a silent check is worse than no check.
The icons on the attention bar were little schoolmarms. I asked: "Change the icons already, dang, you know with what: a raised index finger, yeah. Cool." The finger won't stick either, but that's later.
And about the first task: "The first task shouldn't have the word 'spirit' in it yet, because the player isn't a spirit yet". The task was renamed "hide the class register". And I wrote down something important: "Onboarding is extremely important".
The first minute



In the evening the flood got an ending. I wanted it like this: "Like 'yeeeah, the ghost'. And everyone's like! In the class. Whispering: ghost, ghost". Now the class chants: "Ghost! Ghost!"
The game starts with a flyover of the school, with three lines of setup over it. The flyover was meant to last nine seconds, but any key cut it short, and players saw one and a half.

Log entry: day 10
I brought in a breakdown of Untitled Goose Game: what works in it and why. The flight engineer took six rules from it into the plan. There's no losing. Readable rules matter more than how many there are. Things remember their place.
I wrote down a dream: "the deputy head could chase you right there in the corridor, like the police in GTA. Oh, and when you've got 4 notches, then two deputy heads are chasing you".
And the working rules got a line I was ready to fight for: "we absolutely can't let features go missing during development". If I noticed something before a check did, there's a hole in the checks.
I also wrote: "I want to put the chair back at the desk, otherwise everything gets cluttered fast". Now a chair set down roughly in place squares itself up to the desk on its own. A thing got a home.
And the chair creaked loud enough for the whole school. The scrape on the floor counted as noise four and a half times a second, so you'd drag a chair along a desk for half a second and the school was already sending someone to look. Now drawn-out sounds have a price per second.
And one observation: "When I look down, I see my bones, like I'm the Invisible Man". Fixed.


Log entry: days 11 and 12
Not a single commit.
Where it came from
The document "The School Ghost: a book of hauntings". Untitled Goose Game: a clean screen, no losing, a teacher whose head turns wherever you go. GTA 5, which I played as a kid: "it was really cozy… And for this game, school is your life". Bully, a school game by the same makers. Roblox for the hero's look. Pac-Man for the show outside the window.
The week in numbers
- 137commits
- 1 in 5times the register landed in the drawer
- 11 sof drum and bass, 174 beats per minute
- 1.5 of 9 sof the flyover that players saw
- 60% and 16%how often the punk and the quiet one answer a kick
- 2.15 mthe distance the tap turned on from
- 12 cmhow much taller he was sitting than standing
- 0commits on Thursday and Friday
