DuckGo is a high-octane, side-scrolling arcade game built with the Phaser 3 engine. It features a rubber duck lost in deep space, navigating through a futuristic space station. This project was created to explore procedural asset generation, parallax scrolling, and physics-based game loops.
| Main Menu | Gameplay Action |
|---|---|
![]() |
![]() |
| Glass-morphic UI and Starfield | Astro-Duck navigating silver girders |
-
Astro-Duck Physics: Custom-tuned gravity (
$1400$ ) and flap impulse ($-440$ ) for a snappy, high-stakes feel. - Procedural Girders: Instead of using static images, the pipes are drawn via code with metallic gradients, bevels, and glowing cyan strips.
- Infinite Starfield: Three independent layers of stars moving at different speeds to create a 3D sense of depth.
- Twinkle Logic: Randomized tweens make the stars flicker in the background, making the space feel alive.
- Ghostly Death Effect: When the duck hits a pipe, it triggers a custom "spirit" animation using scale and alpha tweens.
- Engine: Phaser 3.88.2 (Arcade Physics)
- Design Philosophy: Dark & Silver aesthetic using the 60-30-10 color rule.
- Graphics: Generated via Phaser's Graphics API for crisp, scalable textures.
- Storage: Saves your
spaceQuackBestscore to your browser's LocalStorage.
Since this is a local hobby project, you can run it using any simple local server:
- Clone the files to your local machine.
- Open with Live Server: If you use VS Code, right-click
index.htmland select "Open with Live Server." - Alternative (Node.js):
npx serve . - Navigate to
http://localhost:3000and start quacking!
- [SPACE BAR] or [MOUSE CLICK]: Trigger the thrusters to flap upward.
- Goal: Survive as long as possible! Passing through a pair of pipes grants 1 point.
- Project Started: March 1, 2026
- The Resolution: Migrated from 480p to a full 1280x720 HD layout.
-
The Hitbox Fix: Manually adjusted the physics body to
$40 \times 40$ to ensure fair collisions with the duck sprite.
This project is licensed under MIT License

