Overview
DotDrop was the technical assignment for my Indeed interview—a deceptively simple challenge with room to impress. Given basic specifications and two weeks, I delivered a fully-featured, polished game in just 10 days that went far beyond the requirements.
What started as "make dots fall and track score" became a responsive, configurable arcade game with dual modes, dynamic difficulty, colorized canvas effects, background music, debug instrumentation, and production-quality code architecture. The game works flawlessly on both desktop and mobile, demonstrating frontend polish, game design thinking, and clean object-oriented JavaScript.
Gallery
Image 1 Placeholder
Image 2 Placeholder
Image 3 Placeholder
Video
Video Player Placeholder
Key Features
- Standard Mode: Adjustable speed slider with relaxed, endless gameplay
- Game Mode: Progressive difficulty—speed increases with each dot popped, game ends if any dot reaches bottom
- Three difficulty levels controlling hit detection radius (Easy, Normal, Hard)
- Inverse scoring system: smaller dots = higher points, larger dots = lower points
- Colorized Canvas: Background slowly fades to the color of each popped dot
- Background music with volume control and sound effects for dot pops
- Debug Mode: Live display of FPS, game frames, elapsed time, dot positions, and point values
- FPS settings (60, 30, 10) with precision timing via requestAnimationFrame
- Fully responsive UI working equally well on desktop and mobile with touch support
- Clean, minimal three-file architecture (index.html, index.js, style.css)
Highlights
10 days
Completed
2 weeks
Given
Production-ready
Code Quality
Got the job
Result
Technologies
JavaScript (ES6)HTML5 CanvasCSS3RequestAnimationFrameObject-Oriented DesignTouch EventsWeb Audio API