Inspiration

FiruFiru began as a dog care and training app with lessons, quizzes, vaccine tracking and walk logging.

While planning how to grow the brand beyond the app, I noticed one important gap: people opened FiruFiru when they needed to learn, track or remember something — but not simply because they wanted to have fun.

That became the idea behind FiruFiru Games.

Instead of creating an unrelated mobile game, I wanted to turn Firu — the dog at the center of the original app — into the character connecting a larger ecosystem of care, training, games and eventually physical products.

FiruFiru Games is the first major step toward that vision.

What it does

FiruFiru Games is a growing collection of casual mobile games connected through the same character, progression and reward systems.

It currently includes two games:

Paw Jump A vertical platformer inspired by classic endless-jump games. Players climb through changing environments, avoid hazards, collect rewards and deal with different platform types, enemies and debuffs.

Bubble Paws A Bubble Trouble-inspired arcade game featuring 50 levels across five worlds: Park, Pool, Cyberpunk, Clinic and Galaxy. New mechanics and enemies are introduced throughout the journey, with a recurring boss encounter against Zeytin, Firu's black-cat rival.

Both games feed into the same progression system.

Players earn rewards, unlock achievements and improve Firu's home base, with different themes and character styles including Base, Cowboy, Cyberpunk, Pirate and Dream.

The goal is simple: every game should feel different, while still feeling like part of the same FiruFiru world.

How we built it

FiruFiru Games is built with Flutter and Flame, allowing the games and the surrounding app experience to live inside one cross-platform project.

The games are kept modular, while shared systems handle progression, rewards, persistence and monetization.

The main stack includes:

  • Flutter + Flame
  • Riverpod
  • Hive
  • RevenueCat
  • Codemagic
  • Sentry

RevenueCat sits outside the individual game logic, allowing future games to connect to the same monetization and entitlement system without rebuilding it each time.

That modular structure is important because FiruFiru Games is designed to grow beyond the two games available today.

Challenges we ran into

One of the biggest challenges was making the games feel smooth on real mobile devices, not just technically functional.

Performance profiling revealed unnecessary allocations and repeated entity filtering inside the game loop. This led to a deeper refactor toward typed entity registries and more predictable frame times.

Animation also required more work than expected. Some movements were technically correct but still looked unnatural, so parts of the walking system were rebuilt to create more convincing character motion.

We also learned to remove mechanics that worked in code but were not enjoyable in playtesting.

For example, an early teleport mechanic in Bubble Paws was replaced with destructible crates and trapped bubbles because the new system created clearer goals and more satisfying interactions.

One lesson kept repeating throughout development:

If it works but doesn't feel good, it isn't finished.

What's next

The immediate goal is to finish polishing Paw Jump and Bubble Paws, complete the remaining performance work and release FiruFiru Games publicly on both Android and iOS.

After that, the goal becomes much larger.

I want FiruFiru to grow into a connected ecosystem around dog ownership:

Care → Training → Games → Rewards → Physical products

One future example is a starter box for new puppy owners containing useful physical essentials together with QR access to the FiruFiru app, games and digital guidance.

The idea is that someone could meet Firu on the first day they bring a puppy home — and continue interacting with the same character across training, care, play and products.

Paw Jump and Bubble Paws are not the final destination.

They are the beginning of the FiruFiru ecosystem.

Built With

  • codemagic
  • dart
  • flame
  • flutter
  • revenuecat
  • riverpod
Share this project:

Updates

Submission history