Building Nova Drop · A Flutter dev series
Building Nova Drop — a Flutter dev series
TL;DR — Six posts on how I built Nova Drop, a cosmic physics merge puzzle (think Suika Game, in space), in pure Flutter — no game engine, no Box2D. A bespoke ~600-line 2D solver runs the merges at a fixed 120 Hz, the whole scene is drawn by a single CustomPainter, and the "oddly satisfying" feel is a particle system, screen shake and reactive audio folded into one game loop. Then: cosmic storms and obstacles, a 200-level star-map campaign with an in-engine creation myth, monetization that doesn't wreck a relaxing game, and shipping in 18 languages.
Nova Drop is a casual puzzle: you drop cosmic bodies into a well, two of a kind merge into the next tier, and you chain your way up to a screen-clearing Supernova. Under that calm surface is a physics engine I wrote by hand, because the genre lives and dies on how the collisions feel. This series is the full engineering teardown — every snippet below is from the shipping codebase.
The six parts
- Part 1 Building a physics merge puzzle in pure Dart — no engine, no Box2D A specialized circles-in-a-box solver: semi-implicit integration, an iterated impulse solver with positional correction, a fixed 120 Hz timestep, a sweep-and-prune broadphase, and merge detection folded into the same pass.
-
Part 2
Making merges feel oddly satisfying: juice on one CustomPainter
Particles, rings, floating text, screen shake and a white flash — plus chains, Fever and reactive audio — all driven by one
ChangeNotifiergame loop and painted by a singleCustomPainter. - Part 3 Beyond Suika: cosmic storms and a hand-rolled obstacle system One capsule collider that models rocks, bumpers, pistons, blades and conveyor belts, a pure testable "storm director" that escalates Endless mode, and unlockable physics verbs on a shared energy pool.
- Part 4 An infinite Odyssey: a star map, 200 levels and a hand-painted creation myth 200+ levels from one clamped parametric curve (proven beatable by a headless sim), a pure star map of real stars and constellations with 18-language astronomy, and a creation myth painted entirely in-engine.
- Part 5 Monetizing a relaxing game without wrecking the vibe: AdMob & IAP Rewarded as the primary format, interstitials paced behind a grace period, a remove-ads IAP, UMP consent — and the rewarded-format bug that shipped a dead "watch a video" button.
-
Part 6
Shipping Nova Drop in 18 languages with Flutter
The ARB +
gen-l10npipeline, an in-app language switch with zero restart, endonym language names, RTL for free, and what stays untranslated on purpose.
Nova Drop is a relaxing cosmic merge puzzle — drop cosmic bodies, chain reactions and chase the Supernova. Out now, free on iOS and Android.
Where to find Nova Drop
- Official site: novadrop.nurale.games
- iOS: App Store · Android: Google Play