A small browser game where the score is also the floor.
SCOREFLOOR started as a way for me to experiment with agentic coding workflows. I wanted a small project where I could try ideas, test my harness setup, and see how quickly a web game could go from a rough concept to something playable.
Somewhere along the way, the test project became a game I actually enjoyed playing. So I kept it. This repo is part game, part workflow experiment, and mostly a fun byproduct of figuring out how I want to build with agents.
gameplay-recording.mp4
Watch or download the full 78-second gameplay recording
This is a full, uncut play session. If the video player does not appear in your Markdown viewer, the link above opens the same recording directly.
Normal and flipped moments from the play session above.
The large four-digit score display is the level. Every lit segment is solid ground, and every dark segment is a gap. When the score changes, the digits change shape underneath the ball.
Your job is to keep the ball moving as long as possible. You can ask for the next score or flip the whole counter to kick the ball upward. The trick is choosing the right moment, because a safe piece of floor can disappear on the next number.
The first version was much too easy: the ball could settle inside a zero while the player kept pressing the score button. I added the flip kick, side rails, a short landing gate between score changes, and a way for the ball to escape closed digits. It is still a small prototype, but now there is an actual timing game in there.
| Input | Action |
|---|---|
Space, Enter, or click |
Move to the next score; restart after game over |
F, Shift, or middle/right click |
Flip the counter and kick the ball upward |
| One-finger tap | Move to the next score; restart after game over |
| Two-finger tap | Flip the counter |
Backquote |
Show or hide the developer overlay |
The small lamp in the top-right tells you when the next score input is ready. Your best score and sound settings stay in your browser.
- The playable TypeScript, Phaser, and Vite game
- Procedural seven-segment terrain and a small custom collision system
- Desktop and landscape-mobile Playwright tests
- The original game spec, progress notes, acceptance checks, and playtest notes
I left the iteration notes in the repo on purpose. They show the less tidy part of the process: what I first thought would work, what felt bad once I played it, and what changed afterward.
You will need a recent version of Node.js and npm.
npm install
npm run devThen open http://127.0.0.1:5173.
The Makefile provides the same common entry points:
make # start the local development server
make build # typecheck and build the static app
make smoke # run the Playwright smoke suite
make verify # diff check, build, and smoke suiteFRESH_PLAYER_PLAYTEST.md contains the lightweight playtest checklist I used while working on the game.
SCOREFLOOR_MVP_SPEC.md- the original game planMVP_ACCEPTANCE_AUDIT.md- what was checked and what was still uncertainFRESH_PLAYER_PLAYTEST.md- the first-time-player checklistprogress.md- the running build and iteration notesdocs/gameplay-recording.mp4- the uncut play session embedded abovedocs/screenshots/- the screenshots used in this README
These are working notes rather than polished documentation. That is part of why I kept them here.
The game is playable on itch.io, and the repository is public for anyone curious about the game or the process behind it.
I am not treating it as a commercial release or planning a big roadmap for it. It did what I wanted it to do: it gave me a small, real project for working out my agent workflow, and it turned into something fun along the way.
The package remains private in package.json because this is a browser game, not an npm package.







