Inspiration

Virtual pets were part of my youth in the 90s. In Brazil they're called bichinho virtual: a little egg-shaped pet on a keychain that beeped when it was hungry. I thought it would be super cool to bring something of my youth back, today, on the phone. Not a pet game that pauses when you leave, but the real thing: a pet that keeps living while your phone is in your pocket.

What it does

  • Feed it, play with it, clean up after it, and turn the lights off at night. Ignore it and it gets sick. Ignore that and it dies.
  • It runs in real time with no pause. It hatches in about a minute and grows from Pingo (baby) to Bolota (child) to Zóio (teen).
  • How well you raise it decides the adult: Jubão (sun-maned, lives 21 days), Sossegado (chill, 17 days) or Rabugento (grumpy, 14 days).
  • A care mistake is a call for attention ignored for 30 minutes. The game teaches that rule instead of hiding it.
  • Notifications when it needs you, weight that matters, rare colours passed down between pets, and a Jokenpô (rock-paper-scissors) mini-game.
  • Talk to him: hold the mic, ask anything, and he answers out loud.
  • Bichinho World: walks that count your real steps, a food camera (snap real food and he eats it), and a dream diary.
  • Siri shortcuts ("Hey Siri, feed Bichinho") and a Live Activity in the Dynamic Island.
  • Two looks: a smooth colour world with day and night, or the classic green pixel LCD.
  • English and Portuguese. No account, no ads, works offline.

How it makes money

The pet, the care loop and the classic LCD are free forever. The colour world is free for the first 3 days. Bichinho Pro is a one-time $1.00 purchase through RevenueCat. It keeps the colour world and unlocks the Hall of Past Pets, which remembers every pet you've raised, synced through iCloud. The death screen points to the Hall: the moment you lose a pet is the moment you want to keep it.

How I built it

The whole game is one Codable value plus pure rules for time passing and actions, with no timers inside the rules, so a pet can be simulated across the hours the app was closed. Notifications are scheduled by dry-running that simulation forward. The pixel art is generated from a Python sprite script, and the sounds are square-wave beeps with haptics. The rules are covered by XCTest. 78 commits since 8 Sep, built solo around two day jobs, alongside Chapadão and Kasure, my other two Shipaton entries.

Challenges

  • Real time is hard. The app must work out everything that happened while it was closed, in one step, and get the same answer every time.
  • The first mini-game was blind guessing. It became a Simon Says, then Jokenpô.
  • The trial clock can't be reset by changing the phone's date. It's judged against the latest time the app has ever seen.

What I learned

Nostalgia gets the download, but consequences keep people coming back. A pet that can die is a pet you check on.

What's next

  • Already global. Bichinho speaks 8 languages (English, Portuguese, Spanish, French, German, Italian, Japanese and Chinese), so it can grow outside Brazil from day one.
  • More mini-games and more rare colours to collect.

Built With

Share this project:

Updates

Submission history