Hello there!
“Marigotchi” is a physical virtual-pet game where you care for my significant other, Mari.
Made using an Adafruit PyGamer board with a 3D-printed atomic purple case and buttons, coded with Static TypeScript and the Microsoft MakeCode Arcade libraries.
Art by: @airi_2222, @allyflavored, Microsoft and me
Story
For her 31st birthday, my old lady announced to our group of friends and me that she didn’t want any gifts. If anyone wished to give her a present, it had to be something handmade (typical for a Leo like her).
A few years ago, I had the idea to create a Tamagotchi version of her, and this seemed like the perfect occasion to do so. However, I had no idea how to create something of this sort!
Fortunately, I was able to find suitable hardware, the Adafruit PyGamer, and program the game using MakeCode Arcade, devoting between 15 to 40 hours to the task, from research, to creating the assets and coding, always in secret when she was away (we both live and work from home).
Images and videos
Gameplay
The title screen has a full sized portrait of Marigotchi with twinkling stars, a title animation (stolen from the Pigeon game). If you press B, she blinks! If you press A there’s an old-timey animation to her eye, she blinks and then you get to the Shake-to-Wake screen.
Because of the 512 kb size limitation this is basically just a “quote pet”. Based on the time of day, the day of the week, the season, etc. it says some quotes that IRL Mari always says. To do this I had to code a DateTime class from scratch and ask for the current time on boot since the PyGamer has no RTC. This is done in the Shake-to-Wake screen where I use the PyGamer’s accelerometer to detect shakes. If Marigotchi touches the walls there’s a special sprite! Then I ask for the current date and time (I save the last date and time of the last time it was on) using a hacked version of askForNumber
that allows placeholders and pressing “start” to confirm.
There’s a day-night cycle, the sun and moon rotate based on the time of day and the sky changes between 3 stages (day, sunset and night). At night there’s also a custom starfield using effects.ScreenEffect
.
Marigotchi has 100 HP when she wakes up, her health decreases during the day and it’s faster to go down during lunchtime and dinnertime. You can just feed her to raise the HP. If it reaches 0 she just goes back to sleep.
Everything I could compress I did, the title transition is made with code, no full-screen images except the 3 sky backgrounds, the wink in the title screen uses just a little closed-eye sprite on top on her portrait image, etc.
What I wish I could add
If I had more space I would add way more fun stuff to do. WarioWare like minigames involving her where she could gain coins to use in a virtual gashapon machine that could unlock prizes in real life, I could add sounds and music, I could add our pet and myself to the game.
If I had networking… wow. I could send her messages, sync the time to a reliable time server, sync the background based on the weather, I could remotely trigger custom events, you know.