Back to projects
Game · 2026 In progress

Shelter Game

A cosy 3D management game for phones where you run an animal shelter. You take in strays and surrendered pets, feed and groom them, keep their rooms clean, and match them with the right adopters. Once a shelter runs itself you move on to a new one, from a market town to the seaside to the snowy mountains. Every pet, person and building is generated in code.

Screenshot of Shelter Game

The idea

It’s inspired by an old Flash game about running an animal shelter, crossed with the idle “run your own hotel” games on phones. It’s a cosy management game, but everything you do is about looking after animals and finding each one the right home.

Each chapter is a new shelter somewhere different: a market town, the countryside, a city, the seaside and the snowy mountains. You start small, taking in the first few pets and doing everything by hand. Then you hire staff and build new rooms until the place runs itself, and you move on to the next one.

The approach

I wanted to be able to try lots of ideas quickly without waiting on an artist, so every model in the game is generated by Python scripts in Blender. There are 18 dog, cat, rabbit and hamster breeds, each with recolourable coats and their own animations, plus the player, six kinds of staff and twelve kinds of visitor. The scripts build whole scenes too, so I can try a new shelter layout and see it in the game in minutes.

The game itself runs in Babylon.js. Pets, staff and visitors find their way around with a Recast navigation mesh, so a queue of adopters walks around the furniture instead of through it. Because it’s meant for phones, I built a stress test that fills the shelter with animated characters and reports frame rate and draw calls, and I tried four different on-screen joysticks to see which felt best with one thumb.

Where it’s up to

It’s a playable prototype. You can walk around the shelter, carry food, build new rooms and watch visitors queue up to adopt. The design is written up in detail, from what each chapter costs to a rule that no problem ever turns up before you can build the thing that fixes it. Next I’m turning the prototype into the real game and choosing a name.

GALLERY

A closer look

TECH STACK

Built with

TypeScriptBabylon.jsRecast NavigationViteBlenderPython
Next project The Weekend Painter →