This is an advanced virtual pet with a detailed behavior and status system, minigames, multiple locations, dynamic weather, in-game store (with earned credits), wireless playdates, vacations, and lots of toys and food to keep your pet happy.
And lots of cute art.
Take a look at the wiki for a lot more information about how to build the project, care for your pet, and use all the various systems.
Your pet needs your help to have a healthy, fulfilling, affectionate life.
There a 18 different stats that affect the quality of your pet's life. Your pet will help communicate some of these needs through vocalizations and behavior. You can also go to the pet stats screen in the game to see them all at any time:
Read the Pet Care page for more information about these stats, and helpful information for maintaining them and caring for your pet.
Your pet has an advanced behavioral system with dozens of behaviors. The behaviors allow your pet to express themselves, explore, and communicate and interact with you.
By keeping an eye on their behavior you can better understand their needs and wants.
Read more about understanding your pet's behaviors.
There are several minigames to keep both you and your pet occupied.
Playing these games provides different stat rewards for your pet, depending on the game type. And they provide coins which you can spend at the in-game store to help care for your pet even better.
Spend coins at the store to buy toys, food, snacks, vacations, services, and medicine for your pet.
You can earn coins through the minigames, and sometimes your pet will find a few coins randomly when they're in the mood to do a little hunting.
Read more detailed store information.
Within your pet's home there are a few different spaces for them to hang out.
- Living room
- Bedroom
- Kitchen
- Outside (Back yard)
- Treehouse
Some of these have special perks too.
There are also some vacation spots such as the park, forest, aquarium, and beach you can take your pet on trips to as well!
There's more location information on the wiki.
There's a dynamic weather system that progresses over time.
The weather has some effects on your pet. For example, you don't want to let them sit outside in the rain or their comfort will rapidly plummet!
Read more about the weather system.
If you save up some coins you can take your pet on vacations.
You can take them to:
- The park
- A forest
- The aquarium
- The beach
The game has a gardening mechanic where you can buy pots, seeds, tools, and fertilizer to add some plants to your pet's environment.
Having healthy plants around will give extra boosts to your pet's satisfaction.
One really special thing you can do with your pet is let them go on playdates with other pets!
If two Catode32 devices are near each other and both access the social menu, then you can start wireless a playdate.
Both cats will appear on both devices, and the pets will interact and build social connections. Cats will start to remember friends they've spent a lot of time with.
Your pet's device will use WiFi to get a rough sense of the world around it. If it starts to see the same wireless networks frequently then it will feel at home and will be more comfortable.
The intent is that a pet left at home is calmer, sleeps better, and plays more freely, while a pet taken somewhere unfamiliar becomes more anxious and restless.
Your pet can become sick if they aren't taken care of. For example, if you feed them too many snacks in a row, leave them outside in the rain/snow, or don't maintain their fullness and cleanliness, then your pet may become increasingly sick.
Read more about sickness to learn more about helping them recover.
For information about the hardware requirements, the software requrements, or to learn how to configure and wire your ESP32, take a look at the wiki.
It also has detailed information for installing code and flashing your device.
Once everything is setup and the firmware is flashed, the game starts automatically on power-up or reset.
To flash a fresh build and drop into the serial monitor:
cargo run --release- D-pad: Navigate / Move camera
- A: Select/confirm
- B: Back/cancel
- Menu button 1: Global menu options (always the same)
- Menu button 2: Contextual menu options (based on the current scene)
The game can also be run on your desktop. That allows you to experiment and play with the project without needing to setup a real ESP32.
Read the desktop version instructions for details on how to use the emulator.
The project supports several different languages. Specifically:
- English
- Dutch
- Italian
- Spanish
- French
- German
Take a look at the instructions for building with different languages for more details.
For the fastest iteration, run the game directly on the desktop. See the Desktop Emulator section above for the command that matches your machine (Apple Silicon, Intel Mac, or Linux). The desktop build uses the same catode32-core crate that the firmware uses, so most gameplay changes can be tested without touching hardware.
When you need to test on the device itself, use cargo run from the workspace root. It builds the firmware crate (the default workspace member), flashes it via espflash, and opens a serial monitor:
cargo run --releaseDebug builds work too and are faster to compile, but release builds are strongly recommended for on-device testing because the binary is much smaller and the game runs closer to full speed.
[TODO] Add a rust version of the test_hardware script.
It's helpful to open an issue prior to making a PR to allow discussion on the changes.
It's also helpful to keep PRs small and targeted.









