Water Sort Puzzle
A downloadable game
Water Sort Puzzle is a complete, production-ready mobile game built with Flutter. Clean code, no backend required, ready to publish on Google Play or App Store with minimal setup.
This is a full source code package, not a template or snippet. Everything is already working, tested, and polished.
What's included
The game ships with 50 hand-tuned levels that are procedurally generated and validated by a built-in DFS solver, so every level is provably solvable. Difficulty curves from a 2-color tutorial up through 8-color, 15-jar boards with hidden layers and a tall "big jar" milestone. Each level number is deterministic, so the same number always produces the same puzzle.
Gameplay is the classic water sort flow tap a jar to pick it up, tap another to pour. Pouring obeys real rules: only matching colors stack, partial pours are split correctly, and the move counter tracks par for a 3-star rating. Locked bonus jars start the level greyed-out and can be opened by watching a rewarded ad, giving the player extra workspace without ever gating the solution.
AdMob is fully integrated with three placements ready to go: a banner anchored on menu and game screens, a rewarded ad for the "Watch" button that unlocks an extra empty jar, and an interstitial that shows between levels once the player has cleared level 5 (rate-limited to once per 60 seconds so chain-wins never spam ads). You just paste your unit IDs into lib/water_sort/services/ad_service.dart - separate Android and iOS slots for app ID, banner, rewarded, and interstitial. iOS App Tracking Transparency is requested at the correct time in the app lifecycle, before MobileAds initializes, with NSUserTrackingUsageDescription pre-filled in Info.plist.
Language support covers English, Arabic, French, Spanish, and Turkish. The switcher is built into the home screen and changes everything instantly. Arabic is RTL aware - the MaterialApp picks up directionality from the locale automatically.
Sound effects are included for pours, level wins, taps, and a soft background music loop you can mute from the menu. Audio respects the user's mute preference across sessions.
Tech stack
Flutter and Dart, google_mobile_ads for AdMob, app_tracking_transparency for iOS ATT, audioplayers for sound. No Firebase, no Supabase, no internet connection required. State persists locally with shared_preferences.
Setup
Three commands and it runs:
flutter pub get flutter gen-l10n flutter run
Works on Android and iOS. A detailed setup guide PDF is included covering AdMob IDs, changing the interstitial cadence, the procedural level generator, adding languages and sounds, and troubleshooting.
Who this is for
Developers who want a ready-made puzzle game to reskin and publish, or want to learn Flutter game architecture with proper ad integration done right, or need a polished water-sort mini-game to drop into an existing app.
Live demo
Try it before buying at Live Demo
License
Single purchase, use in unlimited personal or commercial projects, no attribution required.
Questions are welcome in the comments and I respond within 24 hours.
| Updated | 21 days ago |
| Published | 22 days ago |
| Status | Released |
| Author | KodaMonroezz_Games |
| Genre | Puzzle |
| Tags | Casual, flutter, match, sort |
| AI Disclosure | AI Assisted, Text |
Purchase
In order to download this game you must purchase it at or above the minimum price of $15 USD. You will get access to the following files:




Leave a comment
Log in with itch.io to leave a comment.