A complete, finished carrom board game built with Flutter and Flame. It runs entirely offline: no backend, no login, no server bill, and nothing to keep running once you have shipped it. Everything a player earns is stored on their own device.
This is not a demo or a starter template. It is the game, with the rules, the AI, the economy, the shop, the ads and the documentation finished, and a test suite that covers them.
Try it on a real device before you buy. The game is published on Google Play, so you can play the actual build rather than watch a video:
This item was developed with AI assistance. The code, the documentation, the Canvas-drawn artwork and the synthesised sound effects were produced with AI tooling and reviewed by the author.
The app itself contains no AI or machine-learning features, and makes no calls to any AI service. It runs entirely offline. The robot opponent is a deterministic simulation search over the included physics engine — it generates candidate shots, plays each one out, scores the result and picks one — so it needs no model, no network and no API key, and it behaves identically on every device.
A custom 2D engine in pure Dart rather than a general physics library. Carrom is only circles, walls and pockets, and writing it directly buys two things a general engine cannot:
Every feel constant — striker speed, friction, restitution, pocket size, the shot gesture — is collected in configuration files rather than scattered through the code, so you can retune the game without touching logic.
The opponent generates ghost-ball shots at each coin toward each pocket, prunes them, simulates what is left on a background isolate, and scores the resulting board. Easy, Medium and Hard differ in three separate ways — how wide it looks, how loosely it picks from what it found, and how cleanly it plays the shot — because a robot that is weak in only one way reads as a machine with a handicap.
It is seeded, so a match is reproducible. The search runs off the UI thread, and the thinking pause runs during the search rather than after it.
Coins are virtual only: they cannot be bought, cashed out or transferred. There is no in-app purchase code and no billing dependency.
kReleaseAds = false. Your own IDs go in one file.The game logic is pure Dart with no Flutter imports, which is what lets it be tested without a screen. Colours are handed to the drawing code as a palette rather than imported as constants, so a new look is one object rather than an edit spread across ten files. Changing the app name, the package id, the icon and the palette is a documented half-hour.
So you know before you buy, this item does not include: online multiplayer, user accounts, leaderboards, chat, in-app purchases, or any backend. It is a single-player and same-device game by design. Local peer-to-peer multiplayer is designed for and documented as a future direction, but it is not built.
The iOS target is included and the code is platform-neutral. Building for iOS needs a Mac, and publishing there needs your own Apple developer account and a separate AdMob app. Also Google Play store submission requires a Play console developer account.
Any cost, account, approval or policy obligation attached to a third-party service is yours, and none of it is covered by the price of this item. None of it is unusual for a mobile app, but it is better known before you buy than after:
The game itself is offline: no server, no subscription, and no running cost of its own. And if you would rather ship without advertising at all, it reaches the game in only two screens.
pubspec.lock$17 |
Download |
0 average based on 0 ratings.
| Last Update | 2026-11-11 |
| Created | 2026-11-11 |
| Sales | 0 |
| Discussion | Comments |
| Software Version | Flutter 3.x |
| Files Included | Dart |
| Video Preview Resolution |