Inspiration

I love daily puzzle games like Wordle - that "one puzzle per day" format creates a unique shared experience where everyone worldwide tackles the same challenge. I wanted to bring that magic to physics-based puzzles!

The idea struck me: what if solving a puzzle wasn't just about logic, but about understanding real-world physics? Ramps, gravity, bounce angles - concepts that feel intuitive but require clever thinking to master.

What it does

Daily Drop is a physics puzzle game where players guide a ball to a target using placement tools:

  • 🔺 Ramps - Rotate to control the ball's trajectory
  • Bumpers - Bounce the ball in any direction
  • 💨 Fans - Push the ball upward with wind force

Every day, a new puzzle is generated - and it's the same puzzle for everyone in the world. Compete with friends to see who solves it fastest!

There's also a Practice Mode with unlimited procedurally-generated levels, ranging from Easy to Expert difficulty.

How I built it

The game runs entirely in the browser using:

  • Matter.js for realistic 2D physics simulation
  • Vanilla JavaScript for game logic and UI
  • HTML5 Canvas for rendering
  • CSS3 with modern animations and gradients for a polished look

The daily puzzle uses a seeded random generator based on the current date - ensuring everyone gets the same puzzle each day while keeping it fresh.

Challenges I faced

  1. Physics tuning - Getting the bounce angles and ramp physics to feel "fair" took many iterations. Players should be able to predict behavior intuitively.

  2. Procedural level generation - Creating puzzles that are always solvable but still challenging required careful algorithm design.

  3. Mobile responsiveness - Making drag-and-drop tool placement work smoothly on touch devices was tricky!

What I learned

  • Deep dive into physics engines and collision detection
  • Seeded randomness for reproducible "daily" content
  • The importance of visual feedback - particles, animations, and sound make physics feel satisfying!

What's next

  • 🏆 Global leaderboards
  • 📊 Statistics tracking (streaks, solve times)
  • 🎨 Custom themes and ball skins
  • 📱 Native mobile apps

Built With

Share this project:

Updates