MOBILEGamingBY
Tocablox World
A virtual pet that works with no account, no connection, and nothing trying to pull the player back.
- Our role
- Game design · Mobile · Animation · Deployment
- Platforms
- iOS · Android
- Flutter
- Flame Engine
- Dart
- Hive
- OfflinefirstNo account, no connection, ever
- All agesby designNo dark patterns, no notification pressure
- On-devicesavesHive persistence, opens instantly
- Mid-rangeAndroid targetAnimation tuned for modest hardware
At a glance
- Business problem
- Most virtual pet games retain players with notification pressure, streak anxiety, and monetisation aimed at children. Tocablox World was built to hold attention through the game itself, with no account, no connection, and nothing engineered to create guilt.
- Technical challenges
- Tocablox World has to keep a care loop rewarding with no online hooks at all, persist every bit of progress on the device, and animate smoothly on mid-range Android hardware where a dropped frame is immediately visible in a slow, calm game.
- Engineering solution
- Tocablox World runs its pet state locally on a lightweight Flame game loop with Hive for on-device persistence, and paces content unlocks so there is always a visible next goal without any external prompt.
- Core features
- Real-time virtual pet with needs, moods and reactions. Home decoration with unlockable furniture and items. Progression loop with in-game currency. Fully offline play with on-device save persistence. Animation tuned for mid-range Android and iOS. Child-friendly interface with no dark patterns.
- Architecture
- FlutterFlame EngineLocal Hive Database
- Technical highlights
- No network layer at all, so there is no loading state anywhere in the game. Hive persistence means the game opens straight into its last state. One Flutter codebase renders identically on iOS and Android. The game loop is deliberately small, which is what keeps frames stable on modest hardware.
- Business value
- Tocablox World gives families a game that works on a plane, in a car, and on an old phone, and that no parent has to supervise for manipulative mechanics.
The problem
Most virtual pet games keep players through pressure. Notifications that imply the pet is suffering. Streaks that punish a missed day. Currency priced so the natural pace feels deliberately slow. It works, and it is aimed largely at children.
Tocablox World was briefed as the opposite. A calm care loop a player picks up for a few minutes, puts down without guilt, and comes back to because they want to. No account. No connection. Nothing engineered to create anxiety.
Which removes every standard retention lever at once, and leaves only the game.
The constraints
No network, at all. Not "works offline" as a degraded mode — no network layer in the app. That rules out remote config, server-side balancing, live events, and any tuning that is not baked into the build itself.
Mid-range Android is the target, not the fallback. A slow, calm game has nowhere to hide a dropped frame. There is no motion to mask it and no action to distract from it.
All ages means no dark patterns. No timers that punish, no currency pressure, no notifications engineered around guilt. A constraint on the design, enforced in the design, not a setting.
Take away notifications, streaks and monetisation pressure and you are left with one question: is the loop itself good enough?
How we built it
Flutter with the Flame engine for the loop and rendering, Hive for persistence.
That diagram being three boxes wide is the point. There is no backend, no API, no sync. The pet's state lives on the device and is written through Hive, which is why the game opens straight into its last state instead of showing a loading screen — there is nothing to load.
Flame handles the loop, deliberately small. On mid-range hardware the reliable path to stable frames is not optimisation, it is not doing much per tick in the first place.
The gameplay loop
- The pet reacts, not demandsState shows in the pet's expression rather than in a badge or an alert. Nothing on this screen nags.
- Needs decay slowlyTuned so a day away is recoverable in a minute. Missing a day is never a setback worth feeling bad about.
- Currency, no storeCoins come from play only. There is nothing to buy with real money, so pacing is a design choice not a paywall.
- Always a next unlockThe locked slots are visible from the first session. With no notifications, a visible goal is the only retention mechanic left.
The locked slots are the whole retention strategy. A player who can see the next thing does not need to be reminded it exists — and that is the only lever available once notification pressure is off the table.
What we built
- A real-time virtual pet with needs, moods and reactions
- A home decoration system with unlockable furniture and items
- A progression loop with in-game currency and rewards
- Fully offline play with on-device save persistence
- Animation tuned for mid-range Android and iOS
- A child-friendly interface with no dark patterns
The constraints all point the same way: with no network and no pressure mechanics, everything rests on pacing. The gap between unlocks has to be short enough to feel reachable and long enough to be worth reaching. That is a tuning problem with no server-side dial to adjust afterwards, which means it has to be right the first time.
If you are weighing a similar build, React Native versus Flutter covers the framework choice, and five UX decisions that make or break an MVP covers the pacing question in a broader form. Our mobile work is where these start.
In the client’s words
Affordable pricing without compromising quality. The project was delivered on time, and the entire process was transparent from beginning to end.
Questions buyers ask
Can a game make money without ads or in-app purchases?
Not on its own — an offline, ad-free game earns on purchase price or not at all. That is a business decision to make before the build, because it changes the design as much as the code.
Why Flutter for a game rather than a game engine?
For a 2D game with modest physics, Flutter with Flame keeps the app small, targets both platforms from one codebase, and avoids the overhead of a full engine. For 3D or heavy physics the answer would be different.
How do you keep an offline game engaging?
Pacing. There has to be a visible next unlock at all times, and the gap to it has to be short enough to feel reachable. That is a design problem, and no amount of engineering substitutes for getting it right.
What does it take to build a game like this?
Less than most people expect for the core loop, and more than they expect for the polish. We show you a working prototype of the loop first, because that is the part worth judging before committing.