A Flappy Bird-style game where a floppy disk navigates through gaps between drive read/write heads. Built with Solidion (SolidJS + Phaser 3).
Pre-built version is in dist/. Serve it with any static file server:
npx serve dist
# → http://localhost:3000- Click / Space — flap (fly upward)
- Avoid the drive heads and the ground
All game state is managed through SolidJS Signals:
| State | Signal | Updates |
|---|---|---|
| Disk Y position | diskY |
Every frame via gravity + velocity |
| Disk tilt | diskAngle |
Lerped toward velocity-based target |
| Score | score |
When passing a head pair |
| Best score | best |
On death if score > best |
| Game phase | phase ("ready" / "play" / "dead") |
On state transitions |
- Gravity physics: Velocity accumulates via
GRAVITY * dt, capped atMAX_VEL - Object pooling: 4 head pairs are recycled — deactivated when off-screen left, respawned on the right
- Composite visuals: The floppy disk is built from 4 rectangles (body, metal slider, label, hub window), all positioned relative to the disk center with rotation
- Idle animation: In "ready" phase, the disk bobs with
Math.sin(t * 2.5) * 8
npm install
npm run buildFor development with hot reload:
npm run devSee src/main.ts — single file, ~300 lines.